LoginSignup
6
2

More than 1 year has passed since last update.

Colabで日本語対応したspaCyを動かしてみる

Posted at

概要

自然言語処理用PythonライブラリのspaCyがv3.2から日本語対応し、公式の無料のオンラインコース (https://course.spacy.io/ja) も提供しています。

チュートリアルを見るだけではなくて、実際にGoogle Colaboratoryにて動かしてみましたが
執筆時のColabの環境ではすんなり動かなかったので、動くようにしたコードを共有します。

Version確認

単なるVerison確認なら
import spacy
print(spacy.__version__)
でも良いのですが、importすることによってupgradeがうまくできなかったので以下で確認します。

>>> !pip show spacy
Name: spacy
Version: 2.2.4
Summary: Industrial-strength Natural Language Processing (NLP) in Python
Home-page: https://spacy.io
Author: Explosion
Author-email: contact@explosion.ai
License: MIT
Location: /usr/local/lib/python3.7/dist-packages
Requires: srsly, requests, numpy, murmurhash, thinc, plac, wasabi, blis, cymem, catalogue, setuptools, tqdm, preshed
Required-by: fastai, en-core-web-sm

Versionが2.2.4なのでUpgradeが必要のようです。
(ちなみに下記コマンドの引数に関して、U:Upgrade, q:quietの略らしいです。)

Upgrade

>>> !pip install -U spacy -q
[K     |████████████████████████████████| 6.0 MB 4.5 MB/s 
[K     |████████████████████████████████| 42 kB 1.2 MB/s 
[K     |████████████████████████████████| 181 kB 58.8 MB/s 
[K     |████████████████████████████████| 451 kB 44.0 MB/s 
[K     |████████████████████████████████| 628 kB 48.1 MB/s 
[K     |████████████████████████████████| 10.1 MB 18.9 MB/s 
[?25h

再度Verison確認

>>> !pip show spacy
Name: spacy
Version: 3.2.1
Summary: Industrial-strength Natural Language Processing (NLP) in Python
Home-page: https://spacy.io
Author: Explosion
Author-email: contact@explosion.ai
License: MIT
Location: /usr/local/lib/python3.7/dist-packages
Requires: cymem, murmurhash, jinja2, typer, thinc, numpy, blis, tqdm, requests, packaging, preshed, langcodes, spacy-legacy, srsly, setuptools, pathy, pydantic, spacy-loggers, typing-extensions, wasabi, catalogue
Required-by: fastai, en-core-web-sm

無事にv3.2になりました。

追加のinstall

spaCyのUpgradeだけではうまく動かせず、エラー文にspacy[ja]について書いてあったので追加でinstall

>>> !pip install spacy[ja] -q
[K     |████████████████████████████████| 2.2 MB 5.3 MB/s 
[?25h  Building wheel for sudachidict-core (setup.py) ... [?25l[?25hdone

これで事前準備は完了です。

nlpオブジェクトの作成

# spaCyをインポート
>>> import spacy

# 日本語のnlpオブジェクトを作成
>>> nlp = spacy.blank("ja")

Docオブジェクトの作成、tokenの抽出

# nlpを用いて、テキストを処理することで作成
>>> doc = nlp("おはようございます!")

# Docからtokenを取り出す
>>> for token in doc:
        print(token.text)
おはよう
ござい
ます
!

これで簡単に動かすことができました!

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2