Natural Language Processing
自然言語処理

10章のソースコードについて

ノック93

%matplotlib inline

は Google Colaboratory 用なので不要.p.267 最後の行の後に,

plt.show()

を追加すると動作する.

ノック94

p.269 の 1 行目の

!pip install mecab-python3 unidic-lite

はプログラムには書かない. Windows 左下の検索窓を使って Anaconda Prompt アプリを起動し(Mac はターミナルを起動する),

pip install mecab-python3 unidic-lite

を実行せよ.

p.269 の

words = tagger.parse(text).splitlines()

は,上のブロックの処理と違い最後に splitlines() メソッドの処理が加えられている. このメソッドはデータを改行コードを区切りとして分割し, リストとして返すメソッドである.

if i == 'EOS' : continue

はMeCabの処理結果の最後の行である EOS という行を読み飛ばす 処理である.

ノック95

p.270 の

part = i.split()[4].split("-")[0]

の説明をする.i を split() で分割した [4] 番目は例えば 「名詞-普通名詞-一般」のフォーマットで品詞情報が 書かれている.これを split("-") で 「-」を区切り文字として 分割し,[0] 番,つまり最初のものを取り出しているので '名詞','助詞'などの品詞種別が得られる.

if not (part in parts):continue

でそれが'名詞'でも'動詞'でもない場合にループの処理をスキップする.


Updated in January 16, 2024, index, Yamamoto Hiroshi