SamuraiT / mecab-python3

:snake: mecab-python. you can find original version here:http://taku910.github.io/mecab/
https://pypi.python.org/pypi/mecab-python3
Other
541 stars 51 forks source link

mecab-unidic-neologd辞書を利用して、tagger.parseがうまく作動しません #90

Closed Jinghaoma closed 1 year ago

Jinghaoma commented 1 year ago

初めまして

windows10を利用しております。

以下のURLでmecab 64 bit UTF-8でインストールし https://github.com/ikegami-yukino/mecab/releases

UniDic for Contemporary Written Japanese (ver.3.1.1)(https://clrd.ninjal.ac.jp/unidic/) 辞書をダウンロードしました。

そしてUniDicを用いて、mecab-unidic-neologd辞書(https://github.com/neologd/mecab-unidic-neologd) をutf-8にコンパイルしました。

そこでこの辞書を利用したところ

import MeCab
tagger = MeCab.Tagger('-Owakati -d "C:/Program Files/MeCab/dic/unidic" -u "C:/Program Files/MeCab/dic/unidic/NEologd.dic"')
print(tagger.parse('私が最近見た映画は、約束のネバーランドでした。'))

にすると、この結果が得ます。

私 が 最近 見 た 映画 は 、 約束のネバーランド でし た 。

しかし

tagger = MeCab.Tagger('-d "C:/Program Files/MeCab/dic/unidic" -u "C:/Program Files/MeCab/dic/unidic/NEologd.dic"')
print(tagger.parse('私が最近見た映画は、約束のネバーランドでした。'))

の場合は

None

となりました。

-Owakatiの結果から正常に動作しているようですが、tagger.parseがうまく作動していないのようですが。 助けていただければ幸いです。

よろしくお願いいたします。

ちなみに

tagger = MeCab.Tagger()
print(tagger.parse('私が最近見た映画は、約束のネバーランドでした。'))

の場合はUniDic辞書で動作したようです。

私   代名詞,,,,,,ワタクシ,私-代名詞,私,ワタクシ,私,ワタクシ,和,"","","","","","",体,ワタクシ,ワタクシ,ワタクシ,ワタクシ,"0","","",11345327978324480,41274
が   助詞,格助詞,,,,,ガ,が,が,ガ,が,ガ,和,"","","","","","",格助,ガ,ガ,ガ,ガ,"","動詞%F2@0,名詞%F1","",2168520431510016,7889
最近  名詞,普通名詞,副詞可能,,,,サイキン,最近,最近,サイキン,最近,サイキン,漢,"","","","","","",体,サイキン,サイキン,サイキン,サイキン,"0","C2","",3758964001088000,13675
見   動詞,非自立可能,,,上一段-マ行,連用形-一般,ミル,見る,見,ミ,見る,ミル,和,"","","","","","",用,ミ,ミル,ミ,ミル,"1","C1","M4@1",10148500981555841,36920
た   助動詞,,,,助動詞-タ,連体形-一般,タ,た,た,タ,た,タ,和,"","","","","","",助動,タ,タ,タ,タ,"","動詞%F2@1,形容詞%F4@-2","",5948916285711041,21642
映画  名詞,普通名詞,一般,,,,エイガ,映画,映画,エーガ,映画,エーガ,漢,"","","","","","",体,エイガ,エイガ,エイガ,エイガ,"0,1","C2","",1000839082811904,3641
は   助詞,係助詞,,,,,ハ,は,は,ワ,は,ワ,和,"","","","","","",係助,ハ,ハ,ハ,ハ,"","動詞%F2@0,名詞%F1,形容詞%F2@-1","",8059703733133824,29321
、   補助記号,読点,,,,,,、,、,,、,,記号,"","","","","","",補助,,,,,"","","",6605693395456,24
約束  名詞,普通名詞,サ変可能,,,,ヤクソク,約束,約束,ヤクソク,約束,ヤクソク,漢,"","","","","","",体,ヤクソク,ヤクソク,ヤクソク,ヤクソク,"0","C2","",10495396866564608,38182
の   助詞,格助詞,,,,,ノ,の,の,ノ,の,ノ,和,"","","","","","",格助,ノ,ノ,ノ,ノ,"","名詞%F1","",7968444268028416,28989
ネバー 名詞,普通名詞,一般,,,,ネバー,ネバー-never,ネバー,ネバー,ネバー,ネバー,外,"","","","","","",体,ネバー,ネバー,ネバー,ネバー,"1","C1","",22987498225541632,83628
ランド 名詞,普通名詞,一般,,,,ランド,ランド-land,ランド,ランド,ランド,ランド,外,"","","","","","",体,ランド,ランド,ランド,ランド,"1","C1","",10950044924649984,39836
でし  助動詞,,,,助動詞-デス,連用形-一般,デス,です,でし,デシ,です,デス,和,"","","","","","",助動,デシ,デス,デシ,デス,"","形容詞%F2@-1,動詞%F2@0,名詞%F2@1","",7051468750332545,25653
た   助動詞,,,,助動詞-タ,終止形-一般,タ,た,た,タ,た,タ,和,"","","","","","",助動,タ,タ,タ,タ,"","動詞%F2@1,形容詞%F4@-2","",5948916285711019,21642
。   補助記号,句点,,,,,,。,。,,。,,記号,"","","","","","",補助,,,,,"","","",6880571302400,25
EOS
polm commented 1 year ago

ご報告ありがとうございます。

tagger.parseNone を返すことは以前見たことありますが、 #73 のように入力文が長過ぎることが原因だったので、今回の原因は別にあるようです。

まず確認ですが、neologd無しの場合の動作は正常でしょうか。CLIから実行するとどうなりますか。

-O wakati と普通の実行の違いから考えると、もしかして出力形式になんらかの問題があります。

また、問題解決とは直接繋がりませんが、neologdは2020年から更新がない、現状でも変な項目が多い(「ヤバい」が固有名詞とか)などの理由から非推奨です。(非推奨でも、正常に動作するはずですが…)

Jinghaoma commented 1 year ago

ご返事いただき誠にありがとうございます。

CMDを利用して実行したところ、以下のように文字化けになってしまいました。 おそらくこれが問題だと思います。 多分CMDはshift-jisを利用しているに対して、返事がutf-8によって文字化けになっておりました。

辞書の意見もありがとうございました。今のところ、色んな辞書を試してみたいと存じて、やってみました。できれば動作してみたいです。

宜しくお願い致します。

私が最近見た映画は、約束のネバーランドでした。

私が    陬懷勧險伜捷,荳闊ャ,,,,
ナ       蜷崎ゥ・譎ョ騾壼錐隧・荳闊ャ,,,
゚見た   陬懷勧險伜捷,荳闊ャ,,,,
f       險伜捷,譁・ュ・,,,,繧ィ繝・・ヲ,f,繧ィ繝・f,繧ィ繝・險伜捷,"","","","","","",險伜捷,繧ィ繝・繧ィ繝・繧ィ繝・繧ィ繝・"1","","",1098695718347264,3997
        陬懷勧險伜捷,荳闊ャ,,,,
謔ヘ     蜷崎ゥ・譎ョ騾壼錐隧・荳闊ャ,,,
        陬懷勧險伜捷,荳闊ャ,,,,
A       險伜捷,譁・ュ・,,,,繧ィ繝シ,・。,A,繧ィ繝シ,A,繧ィ繝シ,險伜捷,"","","","","","",險伜捷,繧ィ繝シ,繧ィ繝シ,繧ィ繝シ,繧ィ繝シ,"1","","",1180884279632384,4296
約束の  陬懷勧險伜捷,荳闊ャ,,,,
l       險伜捷,譁・ュ・,,,,繧ィ繝ォ,・ャ,l,繧ィ繝ォ,l,繧ィ繝ォ,險伜捷,"","","","","","",險伜捷,繧ィ繝ォ,繧ィ繝ォ,繧ィ繝ォ,繧ィ繝ォ,"1","","",1129482043924992,4109
        陬懷勧險伜捷,荳闊ャ,,,,
o       險伜捷,譁・ュ・,,,,繧ェ繝シ,・ッ,o,繧ェ繝シ,o,繧ェ繝シ,險伜捷,"","","","","","",險伜捷,繧ェ繝シ,繧ェ繝シ,繧ェ繝シ,繧ェ繝シ,"1","","",1507988921786880,5486
        陬懷勧險伜捷,荳闊ャ,,,,
[       陬懷勧險伜捷,諡ャ蠑ァ髢・,,,,,・サ,[,,[,,險伜捷,"","","","","","",陬懷勧,,,,,"","","",15951575785984,58
ラン    陬懷勧險伜捷,荳闊ャ,,,,
h       險伜捷,譁・ュ・,,,,繧ィ繧、繝・・ィ,h,繧ィ繧、繝・h,繧ィ繧、繝・險伜捷,"","","","","","",險伜捷,繧ィ繧、繝・繧ィ繧、繝・繧ィ
繧、繝・繧ィ繧、繝・"1","","",1014308200915456,3690
        陬懷勧險伜捷,荳闊ャ,,,,
ナ       蜷崎ゥ・譎ョ騾壼錐隧・荳闊ャ,,,
オた     陬懷勧險伜捷,荳闊ャ,,,,
B       險伜捷,譁・ュ・,,,,繝薙・,・「,B,繝薙・,B,繝薙・,險伜捷,"","","","","","",險伜捷,繝薙・,繝薙・,繝薙・,繝薙・,"1","","",8835684131545600,32144
EOS
polm commented 1 year ago

返事が遅くなってすみません。

mecab-python3はutf-8のみに対応しているので、CMDが文字化けしても問題ないと思います。また、CMDやPowershellのエンコードをUTF-8に変更することは可能だと思います。

こちらでmecab-unidic-neologdを試してみましたが、特に問題なく利用できました。

すみませんが、neologdが非推奨、且つ開発者から放置されている以上、こちらでサポートはいたしかねます。

Jinghaoma commented 1 year ago

不具合の理由が分てても大変助かりました。 ありがとうございました!