こんにちは。ksr_cyclです。
今日は私が良く使うNLPのライブラリであるGINZAを紹介します。
GINZAはMegagon Labsと国立国語研究所との共同研究成果をオープンソースで公開したことから始まった、日本語NLPライブラリです。
GINZAにはさまざまな機能がありますが、今回は私が日ごろよく使う機能をピックアップして紹介していきます。
Google Colab等で試す場合は、以下のパッケージをインストールしておきます。
pip install spacy==3.2.4 ginza==5.1.1 ja-ginza==5.1.0
PythonからGINZAを呼び出す場合はSpacyを使って、以下のようにロードします。
import spacy model = spacy.load('ja_ginza')
・文節区切り
GINZAは入力文章から文節を解析してくれます。
また入力文章によって、多少結果が変動しますが、句読点が無くとも文章を分けることができます。
sample0 = 'hogeさん。おはようございます。今日も1日頑張りましょう。' sample1 = 'hogeさんおはようございます今日も1日頑張りましょう' doc0 = model(sample0) for sentence in doc0.sents: print(sentence.text) print() doc1 = model(sample1) for sentence in doc1.sents: print(sentence.text)
[output] hogeさん。 おはようございます。 今日も1日頑張りましょう。 hogeさん おはようございます 今日も1日頑張りましょう
・類似度計算
文章ベクトルをコサイン類似度で類似度計算します。
doc0 = model('猛暑日が続きます。') doc1 = model('暑い日が続きます。') score = doc0.similarity(doc1) print(score)
[output] 0.9471960565762857
このように簡単に利用出来ます。
他にたくさんの機能があるので、興味がある方は使ってみてください。
以上でGINZAの紹介は終わりです。