LoginSignup
5
5

More than 3 years have passed since last update.

Stanzaの実行

Last updated at Posted at 2020-03-25

StanzaというNLPライブラリがでたので、installして処理を実行してみた。

パイプラインというのは、入力テキストを前処理、トークン化、レンマ化、品詞タギング、依存関係解析、ラベルづけのようなフローである。Stanzaではそれら一連のパイプライン処理を組み立てる。

READMEには英語しかなかったので、日本語のケースでの実行を試した。

download可能な言語としては、こちら。66の言語についてモデルが用意されている。

install

に従えば良い。

import stanza

stanza.download('ja')

で、日本語のモデルをdownloadしよう。

downloadがすみ次第、以下で日本語の文章の解析が可能。

nlp = stanza.Pipeline('ja') # stanza.Pipeline()だと'en'のモデルを呼び出そうとするので注意。
doc = nlp("幼時から父は、私によく、金閣のことを語った。")
print(doc.sentences[0].print_dependencies())

以下のように出力される。

2020-03-25 23:35:09 INFO: Loading these models for language: ja (Japanese):
=======================
| Processor | Package |
-----------------------
| tokenize  | gsd     |
| pos       | gsd     |
| lemma     | gsd     |
| depparse  | gsd     |
=======================

2020-03-25 23:35:09 INFO: Use device: cpu
2020-03-25 23:35:09 INFO: Loading: tokenize
2020-03-25 23:35:09 INFO: Loading: pos
2020-03-25 23:35:09 INFO: Loading: lemma
2020-03-25 23:35:10 INFO: Loading: depparse
2020-03-25 23:35:11 INFO: Done loading processors!
('幼時', '3', 'nmod')
('から', '1', 'case')
('父', '8', 'nsubj')
('は', '3', 'case')
('、', '3', 'punct')
('私', '8', 'iobj')
('に', '6', 'case')
('よく', '14', 'advcl')
('、', '8', 'punct')
('金閣', '12', 'nmod')
('の', '10', 'case')
('こと', '14', 'obj')
('を', '12', 'case')
('語っ', '0', 'root')
('た', '14', 'aux')
('。', '14', 'punct')
None

係り受けタグはこちらに詳しい。

あとで気づいたが、こういう記事もあった。
https://dev.classmethod.jp/articles/python-stanford-nlp/

pipeline

5
5
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
5
5