【Python】janomeで形態素解析をしてもらう
こんばんは葛の葉です。
Pythonにはjanomeという形態素解析が出来るモジュールがあるみたいです。
親譲《おやゆず》りの無鉄砲《むてっぽう》で小供の時から損ばかりしている。小学校に居る時分学校の二階から飛び降りて一週間ほど腰《こし》を抜《ぬ》かした事がある。なぜそんな無闇《むやみ》をしたと聞く人があるかも知れぬ。別段深い理由でもない。新築の二階から首を出していたら、同級生の一人が冗談《じょうだん》に、いくら威張《いば》っても、そこから飛び降りる事は出来まい。弱虫やーい。と囃《はや》したからである。小使《こづかい》に負ぶさって帰って来た時、おやじが大きな眼《め》をして二階ぐらいから飛び降りて腰を抜かす奴《やつ》があるかと云《い》ったから、この次は抜かさずに飛んで見せますと答えた。
これをboc.txt
として保存し、pythonではこれをロードして使ってみます。
from janome.tokenizer import Tokenizer import re t = Tokenizer() moji = "" with open("./boc.txt", mode="r", encoding="utf-8") as text: moji = text.read() moji = re.sub("《[^》]+》", "", moji) moji_list = moji.split("。") moji_list.pop() s = [t.tokenize(sentence) for sentence in moji_list] # 全文の形態素解析の表示は辛いので一文だけという意味で[0] for i in s[0]: print(i) """ 親譲り 名詞,一般,*,*,*,*,親譲り,オヤユズリ,オヤユズリ の 助詞,連体化,*,*,*,*,の,ノ,ノ 無鉄砲 名詞,一般,*,*,*,*,無鉄砲,ムテッポウ,ムテッポー で 助詞,格助詞,一般,*,*,*,で,デ,デ 小 接頭詞,名詞接続,*,*,*,*,小,ショウ,ショー 供 名詞,サ変接続,*,*,*,*,供,キョウ,キョー の 助詞,連体化,*,*,*,*,の,ノ,ノ 時 名詞,非自立,副詞可能,*,*,*,時,トキ,トキ から 助詞,格助詞,一般,*,*,*,から,カラ,カラ 損 名詞,一般,*,*,*,*,損,ソン,ソン ばかり 助詞,副助詞,*,*,*,*,ばかり,バカリ,バカリ し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ て 助詞,接続助詞,*,*,*,*,て,テ,テ いる 動詞,非自立,*,*,一段,基本形,いる,イル,イル """
まず、ルビが不要なので正規表現で削除します。また、一文ずつのほうが解析として見やすいので一文にします。
tokenizeメソッドを使うことで文字列を形態素解析し、形態素を要素としてリストとして出力します。本当にこれ無料で使っていいのか?って思う。
わかち書きもしてもらう
janomeにはわかち書きにしてくれるモードもついているので、それも使ってみます。
from janome.tokenizer import Tokenizer import re t = Tokenizer() moji = "" with open("./boc.txt", mode="r", encoding="utf-8") as text: moji = text.read() moji = re.sub("《[^》]+》", "", moji) moji_list = moji.split("。") moji_list.pop() s = [t.tokenize(sentence, wakati=True) for sentence in moji_list] # 全文の形態素解析の表示は辛いので一文だけという意味で[0] print(s[0]) """ ['親譲り', 'の', '無鉄砲', 'で', '小', '供', 'の', '時', 'から', '損', 'ばかり', 'し', 'て', 'いる'] """