PythonでMeCabを使ってみます。
準備
MeCabを使うにはライブラリと辞書が必要になります。
私はライブラリとしてmecab-python3、辞書としてunidic-liteを使っています。
次のようにしてインストールします。
pip install mecab-python3
pip install unidic-lite
pip install unidic-lite
基本
MeCabを使うと分かち書きをしてくれます。文章を形態素に分解することです。
parseを使うとスペース区切りの文字列を返します。
これをsplitでリストにします。
import MeCab
src = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
wakati = MeCab.Tagger("-Owakati")
dst = wakati.parse(src)
terms = dst.split()
print(dst)
print(terms)
src = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
wakati = MeCab.Tagger("-Owakati")
dst = wakati.parse(src)
terms = dst.split()
print(dst)
print(terms)
【実行結果】
吾輩 は 猫 で ある 。 名前 は まだ 無い 。 どこ で 生れ た か と んと 見当 が つか ぬ 。
['吾輩', 'は', '猫', 'で', 'ある', '。', '名前', 'は', 'まだ', '無い', '。', 'どこ', 'で', '生れ', 'た', 'か', 'と', 'んと', '見当', 'が', 'つか', 'ぬ', '。']
['吾輩', 'は', '猫', 'で', 'ある', '。', '名前', 'は', 'まだ', '無い', '。', 'どこ', 'で', '生れ', 'た', 'か', 'と', 'んと', '見当', 'が', 'つか', 'ぬ', '。']
詳細
MeCab.Taggerのところで出力モードを指定します。
-Owakati とすると、分かち書きします。
指定しないと、元の文字列、読み、品詞など全体を出力します。
import MeCab
src = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
wakati = MeCab.Tagger("")
print(wakati.parse(src))
src = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
wakati = MeCab.Tagger("")
print(wakati.parse(src))
【実行結果】
吾輩 ワガハイ ワガハイ 我が輩 代名詞 0
は ワ ハ は 助詞-係助詞
猫 ネコ ネコ 猫 名詞-普通名詞-一般 1
で デ ダ だ 助動詞 助動詞-ダ 連用形-一般
ある アル アル 有る 動詞-非自立可能 五段-ラ行 終止形-一般 1
。 。 補助記号-句点
名前 ナマエ ナマエ 名前 名詞-普通名詞-一般 0
は ワ ハ は 助詞-係助詞
まだ マダ マダ 未だ 副詞 1
無い ナイ ナイ 無い 形容詞-非自立可能 形容詞 終止形-一般 1
。 。 補助記号-句点
どこ ドコ ドコ 何処 代名詞 1
で デ デ で 助詞-格助詞
生れ ウマレ ウマレル 生まれる 動詞-一般 下一段-ラ行 連用形-一般 0
た タ タ た 助動詞 助動詞-タ 終止形-一般
か カ カ か 助詞-終助詞
と ト ト と 助詞-格助詞
んと ント ウント うんと 感動詞-フィラー 0
見当 ケントー ケントウ 見当 名詞-普通名詞-一般 3
が ガ ガ が 助詞-格助詞
つか ツカ ツク 付く 動詞-非自立可能 五段-カ行 未然形-一般 1,2
ぬ ヌ ズ ず 助動詞 助動詞-ヌ 終止形-一般
。 。 補助記号-句点
EOS
は ワ ハ は 助詞-係助詞
猫 ネコ ネコ 猫 名詞-普通名詞-一般 1
で デ ダ だ 助動詞 助動詞-ダ 連用形-一般
ある アル アル 有る 動詞-非自立可能 五段-ラ行 終止形-一般 1
。 。 補助記号-句点
名前 ナマエ ナマエ 名前 名詞-普通名詞-一般 0
は ワ ハ は 助詞-係助詞
まだ マダ マダ 未だ 副詞 1
無い ナイ ナイ 無い 形容詞-非自立可能 形容詞 終止形-一般 1
。 。 補助記号-句点
どこ ドコ ドコ 何処 代名詞 1
で デ デ で 助詞-格助詞
生れ ウマレ ウマレル 生まれる 動詞-一般 下一段-ラ行 連用形-一般 0
た タ タ た 助動詞 助動詞-タ 終止形-一般
か カ カ か 助詞-終助詞
と ト ト と 助詞-格助詞
んと ント ウント うんと 感動詞-フィラー 0
見当 ケントー ケントウ 見当 名詞-普通名詞-一般 3
が ガ ガ が 助詞-格助詞
つか ツカ ツク 付く 動詞-非自立可能 五段-カ行 未然形-一般 1,2
ぬ ヌ ズ ず 助動詞 助動詞-ヌ 終止形-一般
。 。 補助記号-句点
EOS
別の方法
import MeCab
src = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
wakati = MeCab.Tagger("")
node = wakati.parseToNode(src)
while node:
feature = node.feature.split(',')
print(feature)
node = node.next
src = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
wakati = MeCab.Tagger("")
node = wakati.parseToNode(src)
while node:
feature = node.feature.split(',')
print(feature)
node = node.next
【実行結果】
['BOS/EOS', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']
['代名詞', '*', '*', '*', '*', '*', 'ワガハイ', '我が輩', '吾輩', 'ワガハイ', '吾輩', 'ワガハイ', '混', '*', '*', '*', '*', 'ワガハイ', 'ワガハイ', 'ワガハイ', 'ワガハイ', '*', '*', '0', '*', '*']
['助詞', '係助詞', '*', '*', '*', '*', 'ハ', 'は', 'は', 'ワ', 'は', 'ワ', '和', '*', '*', '*', '*', 'ハ', 'ハ', 'ハ', 'ハ', '*', '*', '*', '"動詞%F2@0', '名詞%F1', '形容詞%F2@-1"', '*']
['名詞', '普通名詞', '一般', '*', '*', '*', 'ネコ', '猫', '猫', 'ネコ', '猫', 'ネコ', '和', '*', '*', '*', '*', 'ネコ', 'ネコ', 'ネコ', 'ネコ', '*', '*', '1', 'C4', '*']
['助動詞', '*', '*', '*', '助動詞-ダ', '連用形-一般', 'ダ', 'だ', 'で', 'デ', 'だ', 'ダ', '和', '*', '*', '*', '*', 'デ', 'ダ', 'デ', 'ダ', '*', '*', '*', '名詞%F1', '*']
['動詞', '非自立可能', '*', '*', '五段-ラ行', '終止形-一般', 'アル', '有る', 'ある', 'アル', 'ある', 'アル', '和', '*', '*', '*', '*', 'アル', 'アル', 'アル', 'アル', '*', '*', '1', 'C3', '*']
['補助記号', '句点', '*', '*', '*', '*', '', '。', '。', '', '。', '', '記号', '*', '*', '*', '*', '', '', '', '', '*', '*', '*', '*', '*']
['名詞', '普通名詞', '一般', '*', '*', '*', 'ナマエ', '名前', '名前', 'ナマエ', '名前', 'ナマエ', '和', '*', '*', '*', '*', 'ナマエ', 'ナマエ', 'ナマエ', 'ナマエ', '*', '*', '0', 'C2', '*']
['助詞', '係助詞', '*', '*', '*', '*', 'ハ', 'は', 'は', 'ワ', 'は', 'ワ', '和', '*', '*', '*', '*', 'ハ', 'ハ', 'ハ', 'ハ', '*', '*', '*', '"動詞%F2@0', '名詞%F1', '形容詞%F2@-1"', '*']
['副詞', '*', '*', '*', '*', '*', 'マダ', '未だ', 'まだ', 'マダ', 'まだ', 'マダ', '和', '*', '*', '*', '*', 'マダ', 'マダ', 'マダ', 'マダ', '*', '*', '1', '*', '*']
['形容詞', '非自立可能', '*', '*', '形容詞', '終止形-一般', 'ナイ', '無い', '無い', 'ナイ', '無い', 'ナイ', '和', '*', '*', '*', '*', 'ナイ', 'ナイ', 'ナイ', 'ナイ', '*', '*', '1', 'C3', '*']
['補助記号', '句点', '*', '*', '*', '*', '', '。', '。', '', '。', '', '記号', '*', '*', '*', '*', '', '', '', '', '*', '*', '*', '*', '*']
['代名詞', '*', '*', '*', '*', '*', 'ドコ', '何処', 'どこ', 'ドコ', 'どこ', 'ドコ', '和', '*', '*', '*', '*', 'ドコ', 'ドコ', 'ドコ', 'ドコ', '*', '*', '1', '*', '*']
['助詞', '格助詞', '*', '*', '*', '*', 'デ', 'で', 'で', 'デ', 'で', 'デ', '和', '*', '*', '*', '*', 'デ', 'デ', 'デ', 'デ', '*', '*', '*', '"動詞%F2@0', '名詞%F1"', '*']
['動詞', '一般', '*', '*', '下一段-ラ行', '連用形-一般', 'ウマレル', '生まれる', '生れ', 'ウマレ', '生れる', 'ウマレル', '和', '*', '*', '*', '*', 'ウマレ', 'ウマレル', 'ウマレ', 'ウマレル', '*', '*', '0', 'C2', '*']
['助動詞', '*', '*', '*', '助動詞-タ', '終止形-一般', 'タ', 'た', 'た', 'タ', 'た', 'タ', '和', '*', '*', '*', '*', 'タ', 'タ', 'タ', 'タ', '*', '*', '*', '"動詞%F2@1', '形容詞%F4@-2"', '*']
['助詞', '終助詞', '*', '*', '*', '*', 'カ', 'か', 'か', 'カ', 'か', 'カ', '和', '*', '*', '*', '*', 'カ', 'カ', 'カ', 'カ', '*', '*', '*', '"動詞%F2@0', '形容詞%F2@-1', '名詞%F1"', '*']
['助詞', '格助詞', '*', '*', '*', '*', 'ト', 'と', 'と', 'ト', 'と', 'ト', '和', '*', '*', '*', '*', 'ト', 'ト', 'ト', 'ト', '*', '*', '*', '"名詞%F1', '動詞%F1', '形容詞%F2@-1"', '*']
['感動詞', 'フィラー', '*', '*', '*', '*', 'ウント', 'うんと', 'んと', 'ント', 'んと', 'ント', '和', '*', '*', '*', '*', 'ント', 'ント', 'ント', 'ント', '*', '*', '0', '*', '*']
['名詞', '普通名詞', '一般', '*', '*', '*', 'ケントウ', '見当', '見当', 'ケントー', '見当', 'ケントー', '漢', '*', '*', '*', '*', 'ケントウ', 'ケントウ', 'ケントウ', 'ケントウ', '*', '*', '3', 'C2', '*']
['助詞', '格助詞', '*', '*', '*', '*', 'ガ', 'が', 'が', 'ガ', 'が', 'ガ', '和', '*', '*', '*', '*', 'ガ', 'ガ', 'ガ', 'ガ', '*', '*', '*', '"動詞%F2@0', '名詞%F1"', '*']
['動詞', '非自立可能', '*', '*', '五段-カ行', '未然形-一般', 'ツク', '付く', 'つか', 'ツカ', 'つく', 'ツク', '和', 'ツ濁', '基本形', '*', '*', 'ツカ', 'ツク', 'ツカ', 'ツク', '*', '*', '"1', '2"', 'C1', '*']
['助動詞', '*', '*', '*', '助動詞-ヌ', '終止形-一般', 'ズ', 'ず', 'ぬ', 'ヌ', 'ぬ', 'ヌ', '和', '*', '*', '*', '*', 'ヌ', 'ヌ', 'ヌ', 'ヌ', '*', '*', '*', '動詞%F4@0', '*']
['補助記号', '句点', '*', '*', '*', '*', '', '。', '。', '', '。', '', '記号', '*', '*', '*', '*', '', '', '', '', '*', '*', '*', '*', '*']
['BOS/EOS', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']
['代名詞', '*', '*', '*', '*', '*', 'ワガハイ', '我が輩', '吾輩', 'ワガハイ', '吾輩', 'ワガハイ', '混', '*', '*', '*', '*', 'ワガハイ', 'ワガハイ', 'ワガハイ', 'ワガハイ', '*', '*', '0', '*', '*']
['助詞', '係助詞', '*', '*', '*', '*', 'ハ', 'は', 'は', 'ワ', 'は', 'ワ', '和', '*', '*', '*', '*', 'ハ', 'ハ', 'ハ', 'ハ', '*', '*', '*', '"動詞%F2@0', '名詞%F1', '形容詞%F2@-1"', '*']
['名詞', '普通名詞', '一般', '*', '*', '*', 'ネコ', '猫', '猫', 'ネコ', '猫', 'ネコ', '和', '*', '*', '*', '*', 'ネコ', 'ネコ', 'ネコ', 'ネコ', '*', '*', '1', 'C4', '*']
['助動詞', '*', '*', '*', '助動詞-ダ', '連用形-一般', 'ダ', 'だ', 'で', 'デ', 'だ', 'ダ', '和', '*', '*', '*', '*', 'デ', 'ダ', 'デ', 'ダ', '*', '*', '*', '名詞%F1', '*']
['動詞', '非自立可能', '*', '*', '五段-ラ行', '終止形-一般', 'アル', '有る', 'ある', 'アル', 'ある', 'アル', '和', '*', '*', '*', '*', 'アル', 'アル', 'アル', 'アル', '*', '*', '1', 'C3', '*']
['補助記号', '句点', '*', '*', '*', '*', '', '。', '。', '', '。', '', '記号', '*', '*', '*', '*', '', '', '', '', '*', '*', '*', '*', '*']
['名詞', '普通名詞', '一般', '*', '*', '*', 'ナマエ', '名前', '名前', 'ナマエ', '名前', 'ナマエ', '和', '*', '*', '*', '*', 'ナマエ', 'ナマエ', 'ナマエ', 'ナマエ', '*', '*', '0', 'C2', '*']
['助詞', '係助詞', '*', '*', '*', '*', 'ハ', 'は', 'は', 'ワ', 'は', 'ワ', '和', '*', '*', '*', '*', 'ハ', 'ハ', 'ハ', 'ハ', '*', '*', '*', '"動詞%F2@0', '名詞%F1', '形容詞%F2@-1"', '*']
['副詞', '*', '*', '*', '*', '*', 'マダ', '未だ', 'まだ', 'マダ', 'まだ', 'マダ', '和', '*', '*', '*', '*', 'マダ', 'マダ', 'マダ', 'マダ', '*', '*', '1', '*', '*']
['形容詞', '非自立可能', '*', '*', '形容詞', '終止形-一般', 'ナイ', '無い', '無い', 'ナイ', '無い', 'ナイ', '和', '*', '*', '*', '*', 'ナイ', 'ナイ', 'ナイ', 'ナイ', '*', '*', '1', 'C3', '*']
['補助記号', '句点', '*', '*', '*', '*', '', '。', '。', '', '。', '', '記号', '*', '*', '*', '*', '', '', '', '', '*', '*', '*', '*', '*']
['代名詞', '*', '*', '*', '*', '*', 'ドコ', '何処', 'どこ', 'ドコ', 'どこ', 'ドコ', '和', '*', '*', '*', '*', 'ドコ', 'ドコ', 'ドコ', 'ドコ', '*', '*', '1', '*', '*']
['助詞', '格助詞', '*', '*', '*', '*', 'デ', 'で', 'で', 'デ', 'で', 'デ', '和', '*', '*', '*', '*', 'デ', 'デ', 'デ', 'デ', '*', '*', '*', '"動詞%F2@0', '名詞%F1"', '*']
['動詞', '一般', '*', '*', '下一段-ラ行', '連用形-一般', 'ウマレル', '生まれる', '生れ', 'ウマレ', '生れる', 'ウマレル', '和', '*', '*', '*', '*', 'ウマレ', 'ウマレル', 'ウマレ', 'ウマレル', '*', '*', '0', 'C2', '*']
['助動詞', '*', '*', '*', '助動詞-タ', '終止形-一般', 'タ', 'た', 'た', 'タ', 'た', 'タ', '和', '*', '*', '*', '*', 'タ', 'タ', 'タ', 'タ', '*', '*', '*', '"動詞%F2@1', '形容詞%F4@-2"', '*']
['助詞', '終助詞', '*', '*', '*', '*', 'カ', 'か', 'か', 'カ', 'か', 'カ', '和', '*', '*', '*', '*', 'カ', 'カ', 'カ', 'カ', '*', '*', '*', '"動詞%F2@0', '形容詞%F2@-1', '名詞%F1"', '*']
['助詞', '格助詞', '*', '*', '*', '*', 'ト', 'と', 'と', 'ト', 'と', 'ト', '和', '*', '*', '*', '*', 'ト', 'ト', 'ト', 'ト', '*', '*', '*', '"名詞%F1', '動詞%F1', '形容詞%F2@-1"', '*']
['感動詞', 'フィラー', '*', '*', '*', '*', 'ウント', 'うんと', 'んと', 'ント', 'んと', 'ント', '和', '*', '*', '*', '*', 'ント', 'ント', 'ント', 'ント', '*', '*', '0', '*', '*']
['名詞', '普通名詞', '一般', '*', '*', '*', 'ケントウ', '見当', '見当', 'ケントー', '見当', 'ケントー', '漢', '*', '*', '*', '*', 'ケントウ', 'ケントウ', 'ケントウ', 'ケントウ', '*', '*', '3', 'C2', '*']
['助詞', '格助詞', '*', '*', '*', '*', 'ガ', 'が', 'が', 'ガ', 'が', 'ガ', '和', '*', '*', '*', '*', 'ガ', 'ガ', 'ガ', 'ガ', '*', '*', '*', '"動詞%F2@0', '名詞%F1"', '*']
['動詞', '非自立可能', '*', '*', '五段-カ行', '未然形-一般', 'ツク', '付く', 'つか', 'ツカ', 'つく', 'ツク', '和', 'ツ濁', '基本形', '*', '*', 'ツカ', 'ツク', 'ツカ', 'ツク', '*', '*', '"1', '2"', 'C1', '*']
['助動詞', '*', '*', '*', '助動詞-ヌ', '終止形-一般', 'ズ', 'ず', 'ぬ', 'ヌ', 'ぬ', 'ヌ', '和', '*', '*', '*', '*', 'ヌ', 'ヌ', 'ヌ', 'ヌ', '*', '*', '*', '動詞%F4@0', '*']
['補助記号', '句点', '*', '*', '*', '*', '', '。', '。', '', '。', '', '記号', '*', '*', '*', '*', '', '', '', '', '*', '*', '*', '*', '*']
['BOS/EOS', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*', '*']
コメント