NEologd 連携¶
pygeonlp を NEologd (Neologism dictionary for MeCab) と 連携することで、テキスト中の固有表現の抽出精度を改善できます。
NEologd のインストール手順は 公式サイト を参照してください。
以下に手順の一例を示します。
$ mkdir -p ~/github
$ cd ~/github
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd --prefix ~/neologd -n -a
上の例では ~/github/mecab-ipadic-neologd/
に GitHub リポジトリを
clone し、 ~/neologd/
に全部入り (-a) の最新辞書 (-n) を
インストールします。
pygeonlp から NEologd を利用する¶
pygeonlp で mecab-ipadic-NEologd をシステム辞書として利用するには、
api.init() の解析オプション
system_dic_dir
で NEologd のカスタムシステム辞書のパスを
指定してください。
$ python
>>> import pygeonlp.api as api
>>> import os
>>> api.init(system_dic_dir=os.path.join(os.environ['HOME'], 'neologd'))
>>> [(x['properties']['surface'], x['properties']['node_type']) for x in api.geoparse('国立情報学研究所は千代田区にあります。')]
[('国立情報学研究所', 'NORMAL'), ('は', 'NORMAL'), ('千代田区', 'GEOWORD'), ('に', 'NORMAL'), ('あり', 'NORMAL'), ('ます', 'NORMAL'), ('。', 'NORMAL')]
「国立情報学研究所」が一語の固有表現として抽出されます。
比較のため、 system_dic_dir
を指定しない場合は次のようになります。
$ python
>>> import pygeonlp.api as api
>>> api.init()
>>> [(x['properties']['surface'], x['properties']['node_type']) for x in api.geoparse('国立情報学研究所は千代田区にあります。')]
[('国立', 'GEOWORD'), ('情報', 'NORMAL'), ('学', 'NORMAL'), ('研究所', 'NORMAL'), ('は', 'NORMAL'), ('千代田区', 'GEOWORD'), ('に', 'NORMAL'), ('あり', 'NORMAL'), ('ます', 'NORMAL'), ('。', 'NORMAL')]
Mecab 標準辞書として NEologd を利用する¶
この手順は非推奨です。
NEologd のカスタムシステム辞書をインストールする際に
--prefix
オプションを指定しないと、 Mecab 標準辞書を上書きします。
$ sudo ./mecab-ipadic-neologd/bin/install-mecab-neologd
この場合は api.init() で system_dic_dir
を指定しなくても
NEologd カスタムシステム辞書が利用されます。
ただしこの手順は、 OS のパッケージ管理機能がインストールした システム辞書を変更するため、パッケージ更新の際に問題が起こる 可能性があり、推奨しません。