プログラミング初心者です。
MeCabに作成したユーザー辞書を追加したのですが、Python上でエラーがおきてしまい困っています、、
utf-8で作成したcsvファイル(dic3.csv)から、
(例 J:COM,1288,1288,1000,名詞,固有名詞,一般,,,*,J:COM,ジェイコム,じぇいこむ)
以下のようにユーザー辞書(original2.dic)をコンパイル(?)しました。
mecab-dict-index -d "C:/Program Files/MeCab/dic/ipadic" -u original2.dic -f utf-8 -t utf-8 dic3.csv
その後、mecabrcへ以下のように記載を行い辞書の登録を行いました。
userdic = C:\Program Files\MeCab\dic\ipadic\original2.dic
※追記です
mecabrcは以下の場所にあります
C:\Program Files\MeCab\etc\mecabrc
その結果、以下のような状態となっています。
mecab -D filename: C:\Program Files\MeCab\etc..\dic\ipadic\sys.dic version: 102 charset: UTF-8 type: 0 size: 392126 left size: 1316 right size: 1316 filename: C:\Program Files\MeCab\dic\ipadic\original2.dic version: 102 charset: utf-8 type: 1 size: 305 left size: 1316 right size: 1316
PowerShell上で実行を行うと、以下のようになり、一応ユーザー辞書の内容が結果に反映されているようだということまではわかりました。
WindowsPowerShell
1PS C:\Users\lklng> mecab 2J:COM 3J 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* 4: 蜷崎ゥ・繧オ螟画磁邯・*,*,*,*,* 5COM 蜷崎ゥ・蝗コ譛牙錐隧・邨・ケ・*,*,*,* 6EOS 7 8PS C:\Users\lklng> mecab -u "C:\Program Files\MeCab\dic\ipadic\original.dic" 9J:COM 10J:COM 名詞,固有名詞,一般,*,*,*,J:COM,ジェイコム,じぇいこむ 11EOS
前提・実現したいこと
これらをふまえ、追加したユーザー辞書をPython上でのMeCabの実行へ反映したいのですが、以下のようなエラーがかえってきてしまい困っています、、
発生している問題・エラーメッセージ
Python - 辞書テスト.py:1 Traceback (most recent call last): File "C:\Users\lklng\anaconda3\lib\site-packages\MeCab\__init__.py", line 133, in __init__ super(Tagger, self).__init__(args) RuntimeError The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\lklng\AppData\Local\Temp\atom_script_tempfiles\2021929-61608-1ji56vg.013a", line 5, in <module> m=mc.Tagger("-Ochasen -u C:\Program Files\MeCab\dic\ipadic\original2.dic")# ここで作成した辞書を読み込む File "C:\Users\lklng\anaconda3\lib\site-packages\MeCab\__init__.py", line 135, in __init__ raise RuntimeError(error_info(rawargs)) from ee RuntimeError: ---------------------------------------------------------- Failed initializing MeCab. Please see the README for possible solutions: https://github.com/SamuraiT/mecab-python3#common-issues If you are still having trouble, please file an issue here, and include the ERROR DETAILS below: https://github.com/SamuraiT/mecab-python3/issues issueを英語で書く必要はありません。 ------------------- ERROR DETAILS ------------------------ arguments: -Ochasen -u C:\Program Files\MeCab\dic\ipadic\original2.dic ) [tokenizer_->open(param)] tokenizer.cpp(127) [d->open(dicfile[i])] dictionary.cpp(79) [dmmap_->open(file, mode)] no such file or directory: C:Program ----------------------------------------------------------
該当のソースコード
Python
1import MeCab as mc 2text ="J:COM" 3m=mc.Tagger(r"-Ochasen -u C:\Program Files\MeCab\dic\ipadic\original2.dic")#ここで作成した辞書を読み込む 4m1=m.parse(text) 5print(m1)
※追記です
システム辞書のみだと以下のような結果がかえってきます
Python
1import MeCab as mc 2text = "J:COM" 3m=mc.Tagger("-Ochasen")# ここで作成した辞書を読み込む 4m1=m.parse(text) 5print(m1) 6 7J J J 名詞-固有名詞-組織 8: : : 名詞-サ変接続 9COM COM COM 名詞-固有名詞-組織 10EOS
試したこと
ネット上にある似たような質問や解説サイトなどをあさり、
sysdicの指定(-d C:\Program Files\MeCab\dic\ipadic)やパスの省略(-u original2.dic)
等をためしたのですが、結局どうすればいいのかわかりませんでした。。
なにか解決策がありましたら、教えていただけますでしょうか。
(質問の形式の不備や、情報の不足などありましたらご指摘ください、、)
補足情報(FW/ツールのバージョンなど)
Windows10
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
mecab of 0.996