stanzaを使ってみる 5
以前の投稿でstanzaを使ってみたことをまとめた.
今回はその続きで日本語の形態素解析をstanzaで行ってみたい.
コードは下記.
import stanza
# 日本語モデルをダウンロード(初回のみ)
stanza.download('ja')
# 日本語のNLPパイプラインを構築
nlp = stanza.Pipeline('ja')
# 日本語テキスト
text = """
言語処理は人工知能の重要な応用分野の一つです。
特に自然言語処理の分野では、文章の意味を正確に理解し、
適切に応答するシステムの開発が進められています。
近年では、深層学習を用いたモデルが高い精度を示しており、
多くの企業や研究機関で活用が進んでいます。
例えば、音声認識、機械翻訳、要約生成などのタスクにおいて、
人間と同等、あるいはそれ以上の性能を達成するケースも報告されています。
"""
# 解析の実行
doc = nlp(text)
# 出力
for sentence in doc.sentences:
print("日本語の形態素解析:")
for word in sentence.words:
print(f"表層形: {word.text}, 品詞: {word.upos}, 原形: {word.lemma}")
Output例
日本語の形態素解析:
表層形: 言語, 品詞: NOUN, 原形: 言語
表層形: 処理, 品詞: NOUN, 原形: 処理
表層形: は, 品詞: ADP, 原形: は
表層形: 人工, 品詞: NOUN, 原形: 人工
表層形: 知能, 品詞: NOUN, 原形: 知能
表層形: の, 品詞: ADP, 原形: の
表層形: 重要, 品詞: ADJ, 原形: 重要
表層形: な, 品詞: AUX, 原形: だ
表層形: 応用, 品詞: NOUN, 原形: 応用
表層形: 分野, 品詞: NOUN, 原形: 分野
表層形: の, 品詞: ADP, 原形: の
表層形: 一, 品詞: NUM, 原形: 一
表層形: つ, 品詞: NOUN, 原形: つ
表層形: です, 品詞: AUX, 原形: です
表層形: 。, 品詞: PUNCT, 原形: 。
…