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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Mecab

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

Python

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

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

2865閲覧

mecab-ipadic-NEologd導入後にRuntimeError

KK-HighDo

総合スコア1

Mecab

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

Python

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

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2021/08/16 06:10

編集2021/08/16 23:10

前提・実現したいこと

プログラミング初心者です。Windows10でpythonを使っています。
形態素解析を行うため、書籍を参考にmecab-ipadic-NEologdを導入してMeCabを使用しようとしたところ、RuntimeErrorが出てしまいました。
しばらくネット上で調べたり、自分で解決しようしましたが解決できません。どなたかご教示いただけますでしょうか。
MeCabはこちらのmecab-0.996-64.exeを使用しました。
インストール時はpip install mecabでインストールしています。

mecab-ipadic-neologdの導入にはこちらを参考にしました(リンク先にあるsudo apt updateを入力する前に、sudo apt install gitと打っています)。MeCabのdicファイルには、mecab-ipadic-neologdが入っていることを確認しています。

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

Traceback (most recent call last): File "c:\Users\user-name\Analysis.py", line 2, in <module> tagger = MeCab.Tagger("-d /var/lib/MeCab/dic/mecab-ipadic-neologd") File "C:\Users\user-name\AppData\Local\Programs\Python\Python39\lib\site-packages\MeCab.py", line 355, in __init__ _MeCab.Tagger_swiginit(self, _MeCab.new_Tagger(*args)) RuntimeError

/var/lib/MeCab/dic/mecab-ipadic-neologdは書籍を引用しました。自分でもこのパスの意味は把握しきれていません。
ただ、C:/Program Files/MeCab/dic/mecab-ipadic-neologdをパス名にして指定してもエラーになってしまいます。

コード

Python

1import MeCab 2tagger = MeCab.Tagger("-d /var/lib/MeCab/dic/mecab-ipadic-neologd") 3result = tagger.parse("父の日のプレゼントを考える。") 4print(result)

試したこと

・MeCab,mecab-ipadic-neologdのインストールし直し
・パス名の変更(C:/Program Files/MeCab/dic/mecab-ipadic-neologdなど)
・他の質問者様のものも見ましたが、似た内容の質問がありません。

 Windows PowerShellでも、Anaconda3でも同じエラーが発生してしまいます。

補足情報

Windows10, Python3.9, Ubuntu 18.04 LTSを使用
MeCabのバージョンは64bit版、0.996.3

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

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

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

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

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

quickquip

2021/08/16 06:33 編集

参考にしたというページには具体的な手順がなにも書かれていないように見えますが、いったいどういう手順でなにをしたんでしょうか。 Pythonにインストールしたmecabバインディングのライブラリがなにかも書いた方がいいと思いました。
KK-HighDo

2021/08/16 10:08

返信ありがとうございます! 質問を編集しました。
KK-HighDo

2021/08/16 14:02

返信ありがとうございます。 Windows の Python を使用しています。このエラーはVSCodeでも、PowerShellでも、Anaconda3でも出てしまいます。 このコードは書籍を参考にしたこと、自分の理解がまだ足りていないことから、リンクの件については分からないです。大変申し訳ございません…。 新しい方のMeCabを紹介して頂き、ありがとうございます!MeCabのバージョンの違いで、エラーになっているのでしょうか…。
Bull

2021/08/16 14:53

恐らくそのエラーは指定された辞書がないためです。 "-d" は辞書のフォルダーを指定しますが、"/var/lib/MeCab/dic/mecab-ipadic-neologd" は存在しますか?
jbpb0

2021/08/16 16:13

> MeCabのdicファイルには、mecab-ipadic-neologdが入っていることを確認しています。 の、確認した実際にある場所が > C:/Program Files/MeCab/dic/mecab-ipadic-neologd ですか?
KK-HighDo

2021/08/16 23:04

返信ありがとうございます。 /var/lib/MeCab/dic/mecab-ipadic-neologdは存在していないっぽいです。ファイル検索しても出てきません。 実際にある場所はC:/Program Files/MeCab/dic/mecab-ipadic-neologdです。ただ、このパスで辞書を指定してもRuntimeErrorになってしまいます。
jbpb0

2021/08/17 00:18 編集

> このパスで辞書を指定してもRuntimeErrorになってしまいます。 もしかしたら、パスにスペースが含まれてるのがまずいかもしれません ためしに、「mecab-ipadic-neologd」をC:ドライブ直下にコピーして、そこを指定してみたらいかがでしょうか? 参考 https://www.pytry3g.com/entry/MeCab-NEologd-Windows#%E3%83%86%E3%82%B9%E3%83%88 上記Webページの例のように、パス区切りを「/」じゃなくて「\」にして「r」を付けた方がいいかも tagger = MeCab.Tagger(r"-d C:\mecab-ipadic-neologd") みたいな
KK-HighDo

2021/08/17 00:33

Cドライブ直下にコピーしたら解決しました!ありがとうございます! パスにスペースがあったのがまずかったみたいです。 先ほどのjbpb0様の修正依頼をBAにしたいと思うので、お手数をおかけしますが回答へもう一度書いて頂けますでしょうか。
jbpb0

2021/08/17 00:35 編集

パス区切りは「/」のままでも大丈夫でした? それとも、「\」に変えて「r」を付けました?
KK-HighDo

2021/08/17 01:06

「/」で大丈夫でした。
guest

回答1

0

ベストアンサー

試したこと

・パス名の変更(C:/Program Files/MeCab/dic/mecab-ipadic-neologdなど)

パスにスペースが含まれてるとダメかもしれないので、「mecab-ipadic-neologd」をパスのどこにもスペースを含まない場所にコピーして、そこを指定してみてください
たとえば、「mecab-ipadic-neologd」をCドライブ直下に置くとか

投稿2021/08/17 01:39

jbpb0

総合スコア7651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問