spaCyは、PythonとCythonで書かれたオープンソースのPythonの自然言語処理用ライブラリです。
単独で他の多くの言語で利用できた一方、日本語未対応だった頃のspaCyを日本語対応すべく登場?spaCyやsudachiPyも併せてインストール、利用されるGiNZAもありますが、既にspaCyも日本語対応しているのでspaCy単独で日本語の自然言語処理が可能となっています。
spaCyのインストールで必要な項目をチェックすると環境に応じた必要なインストール方法が提示されます。
自身は、Debian GNU/Linux、x86、pip、CPU版、train models(自分で用意した依存関係やデータを利用して学習させるモデル)、英語と日本語の辞書、efficiency(速度重視)を指定したところ、こうなりました(ただし、pipはpip3にしましたが)。
train modelsを選択しない場合は、[transformers,lookups,ja]は不要です。
これ以外のvirtual envやcondaを利用する場合、更にGPUの利用など詳細については、リンク先を参照ください。
pythonインタプリタを起動、import spacyとしてエラーが出なければ、インストール完了です。
辞書ja_core_news_smを使った固有名詞を抜き出すスクリプトだとこんな感じ。
液晶テレビの件は検出されていないですが、見事にテレビ局は全部抽出、ORG(辞書にないオリジナルって意味?)と認識。
実は、GiNZAも入れてみて辞書ja_ginzaもあったので試してみた同じく固有名詞を列挙させるスクリプトだとこんな感じ。
やっぱり、液晶テレビの件はないですが、見事に全てのテレビ局を検出し、Companyと認識。
この一文にするまで何度かやった中で、これらの辞書にとって良さげなのがこれだったってことで。
尚、アップデートと他のパッケージとの互換性チェックを行うには、このようにするとのこと。