質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2432閲覧

MeCabを用いた形態素解析にNEologdを導入したい(Windows10/Python/MeCab/Anaconda)

PonZ123

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/08/08 14:59

編集2021/08/08 15:11

前提・実現したいこと

環境
・Windows10(64bit)
・Python 3.9.6
・mecab 0.996.3
・Anaconda

PythonでMeCabを使用した形態素解析を行うツールを作成しています。
より正確な分析を行うために、下記のサイトを参考にしてNEologdという辞書を導入したところ以下のエラーが発生しました。

https://qd-suriken.com/2020/04/22/widows%E3%81%A7mecabneologd/

ファイルが存在していないというエラーメッセージですが、Cドライブ直下にmecabrc-uは確かに存在しており、解決方法の見当がつかなかったため質問させて頂きました。

発生している問題・エラーメッセージ

------------------- ERROR DETAILS ------------------------ arguments: -r C:\mecabrc-u [ifs] no such file or directory: C:mecabrc-u ----------------------------------------------------------

該当のソースコード

Python

1import MeCab 2m=MeCab.Tagger("-r C:\mecabrc-u") 3print(m.parse("機械学習の説明をします"))

mecabrc-u

memo

1; 2; Configuration file of MeCab 3; 4; $Id: mecabrc.in,v 1.3 2006/05/29 15:36:08 taku-ku Exp $; 5; 6dicdir = $(rcpath)..\dic\ipadic 7 8; userdic = /home/foo/bar/user.dic 9 10; output-format-type = wakati 11; input-buffer-size = 8192 12 13; node-format = %m\n 14; bos-format = %S\n 15; eos-format = EOS\n 16 17; dicdir = $(rcpath)..\dic\ipadic 18; userdic = C:\Program Files (x86)\MeCab\dic\NEologd\Neologd.20200910.dic

試したこと

最初はサイトのサンプルコードに従い、以下のようにProgram Files (x86)以下のファイルを参照しましたが、[ifs] no such file or directory: C:Programというエラーメッセージが出てきました。
Program Files (x86)の間に存在するスペースが原因で読み込めていない可能性があったため、Cドライブ直下にmecabrc-uをコピーしてこちらを参照するコードに変更しました。
以下は変更前のコードとエラーメッセージです。

コード

Python

1import MeCab 2m=MeCab.Tagger("-r C:\Program Files (x86)\MeCab\etc\mecabrc-u") 3print(m.parse("機械学習の説明をします"))

エラーメッセージ

------------------- ERROR DETAILS ------------------------ arguments: -r C:\Program Files (x86)\MeCab\etc\mecabrc-u [ifs] no such file or directory: C:Program ----------------------------------------------------------

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2021/08/08 22:48 編集

> m=MeCab.Tagger("-r C:\\mecabrc-u") > arguments: -r C:\mecabrc-u > no such file or directory: C:mecabrc-u 上記三つを比べると、「C:」の次の「\」が、一つずつ減ってますよね 最後無くなって「C:mecabrc-u」となり、それは下記を指してないです > Cドライブ直下にmecabrc-uは確かに存在
PonZ123

2021/08/09 16:25

コード内の\\を/に変更したところ、なぜかコード内で指定していないファイルを参照してファイルが存在しないというエラーメッセージに変化したのですが、この場合何が問題だと考えられますでしょうか? コード import MeCab m=MeCab.Tagger("-r C:/mecabrc-u") print(m.parse("機械学習の説明をします")) エラーメッセージ ------------------- ERROR DETAILS ------------------------ arguments: -r C:/mecabrc-u [ifs] no such file or directory: .\..\dic\ipadic\dicrc ----------------------------------------------------------
jbpb0

2021/08/09 20:56 編集

> no such file or directory: .\..\dic\ipadic\dicrc は、「mecabrc-u」の「dicdir =…」で指定してるパスです 「mecabrc-u」の内容は正しいのでしょうか?
quickquip

2021/08/11 08:33 編集

mecabのバインディングライブラリはなにをいれましたか? Python3.9と書いてありますが、そのページで入れることになっている mecab-python-windows は3.9には入らないはずです。 https://pypi.org/project/mecab-python-windows/#files を見ると分かりますが、3.8以降のバイナリは提供していません。ソースからコンパイルして入れるためには、こんな質問をするはずがないぐらいmecabとC言語に詳しくないといけません。 したがって、あなたはあなたの独自の判断でなにか別のことをやったはずですが、その情報がありません。 「あなたが参考にしたページ」だけを質問に書いても、あなたの問題を解決する手助けにはなりません。 「あなたがやったこと」を質問に書いてください。
quickquip

2021/08/13 08:36

mecabのバインディングライブラリはなにをいれましたか? (再)
guest

回答1

0

m=MeCab.Tagger("-r C:\mecabrc-u")

arguments: -r C:\mecabrc-u

no such file or directory: C:mecabrc-u

上記三つを比べると、「C:」の次の「\」が、一つずつ減ってますよね

最後無くなって「C:mecabrc-u」となり、それは下記を指してないです

Cドライブ直下にmecabrc-uは確かに存在

投稿2021/08/15 10:09

jbpb0

総合スコア7653

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問