Python 実践 データ加工/可視化 100本ノック に挑戦 ノック54

Python 実践 データ加工/可視化 100本ノック」を購入したので、

一通りやっているところです。今日はノック54を行います。

資料は以下から入手できます。

Python実践 データ加工/可視化 100本ノック|サポート|秀和システム

 

ノック54:形態素解析で単語に分解しよう

MeCabを使用して文章を最小単位に分解します。

 

1.MeCabのインストール方法

MeCabのURLに移動します。

taku910.github.io

 

下にスクロールするとダウンロードと記載されているので、mecab-0.996.exeをダウンロードします。

 

MeCab HP

 

mecab-0.996.exeを起動すると、以下の画面が表示されるのでOKをクリックします。

 

japanese

 

次の画面はそのまま「次へ」をクリックします。

次へ

 

文字コードは通常はSHIFT-JISを選択と書かれていますが、汎用性を考慮してUTF-8を選びました。

 

UTF-8

 

同意するで次へ

同意する

インストール先にこだわりがなければ次へ

インストール先

次もそのまま次へ

グループ指定

最後にインストールをクリックします。

インストール

 

以下のような表示が出てきます。問題なければOKを。

権限

すると1分ほどかかるとメッセージが表示されます。

ok

完了画面が表示されると完了です。

完了

 

VSCコードに移動してpip install mecab-python3を実行すれば完了です。

 

2.動作確認

ノック53で作成したデータbooklistに対して実行します。

先頭の4行のみ表示します。

import MeCab
body = booklist.iloc[0,4]
parsed = tagger.parse(body).split('\n')
print(parsed[:4])

 

実行結果

['メロス\t名詞,一般,*,*,*,*,*', 'は\t助詞,係助詞,*,*,*,*,は,ハ,ワ', '激怒\t名詞,サ変接続,*,*,*,*,激怒,ゲキド,ゲキド', 'し\t動詞,自立,*,*,サ変・スル,連用形,する,シ,シ']

 

単語に分解されました。

末尾4行を実行する場合はマイナスをつけます。

print(parsed[-4:])

 

実行結果

['メロス\t名詞,一般,*,*,*,*,*', 'は\t助詞,係助詞,*,*,*,*,は,ハ,ワ', '激怒\t名詞,サ変接続,*,*,*,*,激怒,ゲキド,ゲキド', 'し\t動詞,自立,*,*,サ変・スル,連用形,する,シ,シ']
['た\t助動詞,*,*,*,特殊・タ,基本形,た,タ,タ', '。\t記号,句点,*,*,*,*,。,。,。', 'EOS', '']

 

不要な最後の2行 ', 'EOS',  を削除します。

parsed = parsed[:-2]
print(parsed[-4:])

 

実行結果

['た\t助動詞,*,*,*,特殊・タ,基本形,た,タ,タ', '。\t記号,句点,*,*,*,*,。,。,。', 'EOS', '']
['赤面\t名詞,サ変接続,*,*,*,*,赤面,セキメン,セキメン', 'し\t動詞,自立,*,*,サ変・スル,連用形,する,シ,シ', 'た\t助動詞,*,*,*,特殊・タ,基本形, 
た,タ,タ', '。\t記号,句点,*,*,*,*,。,。,。']

 

 

 

 

/* -----codeの行番号----- */