@snoopy55

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

pythonで指定した辞書(mecab-ipadic-neologd)を使う時のエラーを解決したい(windows)

解決したいこと

pythonで指定した辞書(mecab-ipadic-neologd)を使えるようにしたいです。
下記に実行したコード、エラー、自分で試したことを記載します。
アドバイスを頂けますと大変助かります。

実行環境

・windows10
・python3.8.5
・Mecab 0.996.2
・mecab-0.996.2(Pyhtonライブラリ)
・Ubuntu 20.04 LTS

自分で進めていたこと

下記サイトを参考に1~5まで実施したものの、6ができない状況です。
(以下「発生している問題・エラー」「該当するソースコード」にも関連します)
1.Mecabのインストール
2.PythonでMecabを標準の辞書で動かすこと
3.Ubuntuのインストール
4.mecab-ipadic-NEologd辞書のダウンロード
5.mecab-ipadic-NEologd辞書ファイルのコンパイル
6.PythonでNEologd辞書を指定してMecabを利用する

発生している問題・エラー

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-46-724e92af0b23> in <module>
      1 import MeCab
      2 
----> 3 mecab = MeCab.Tagger(r'-Owakati -d C:\Users\tyamada\OneDrive\デスクトップ\test\build\mecab-ipadic-2.7.0-20070801-neologd-20200910')
      4 target_str = "DOS窓では、基本的には日本語がアウトです"
      5 print(mecab.parse(target_str))

D:\anaconda\lib\site-packages\MeCab.py in __init__(self, *args)
    353 
    354     def __init__(self, *args):
--> 355         _MeCab.Tagger_swiginit(self, _MeCab.new_Tagger(*args))
    356 
    357     def parseToString(self, str, length=0):

RuntimeError: 

該当するソースコード

import MeCab

mecab = MeCab.Tagger(r'-Owakati -d C:\Users\tyamada\OneDrive\デスクトップ\test\build\mecab-ipadic-2.7.0-20070801-neologd-20200910')
target_str = "DOS窓では、基本的には日本語がアウトです"
print(mecab.parse(target_str))

自分でトライしたこと(解決に至らず)

●空白が入っているディクレトリに辞書を置かないこと
●使用するシステム辞書を指定するために、「-d」を用いること
●また、「build\mecab-ipadic-2.7.0-20070801-neologd-20170420」をディレクトリとして指定すること
●(pythonで)Mecabの標準辞書で動くことは確認済み
→実行結果
b.PNG
●コマンドプロンプト上では、NEologd辞書で動くことは確認済み
コード:mecab -d C:\Users\tyamada\OneDrive\デスクトップ\test\build\mecab-ipadic-2.7.0-20070801-neologd-20200910
→実行結果
a.PNG
●別のフォルダを参照先にしようとしたものの、「発生している問題・エラー」が同様にでてしまいます(写真の通り辞書は確かにあるはずなのですが…)。
別のフォルダ:C:\Users\tyamada\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs\opt\mecab\mecab-ipadic-neologd\build\mecab-ipadic-2.7.0-20070801-neologd-20200910
image.png

解決のために参考にしたサイト

0 likes

1Answer

ありがとうございます!
以下の通り、python、ipython同じ出力結果になりました。
いずれもアクセス権があるのかなと思います。

python
#入力内容
import glob

files = glob.glob(r"C:\Users\tyamada\OneDrive\デスクトップ\test\build\mecab-ipadic-2.7.0-20070801-neologd-20200910")
for file in files:
    print(file)

#出力結果
C:\Users\tyamada\OneDrive\デスクトップ\test\build\mecab-ipadic-2.7.0-20070801-neologd-20200910

ipython
#入力内容
import glob

files = glob.glob(r"C:\Users\tyamada\OneDrive\デスクトップ\test\build\mecab-ipadic-2.7.0-20070801-neologd-20200910")
for file in files:
    print(file)

#出力結果
C:\Users\tyamada\OneDrive\デスクトップ\test\build\mecab-ipadic-2.7.0-20070801-neologd-20200910

0Like

Your answer might help someone💌