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

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

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

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Mecab

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

Python

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

自然言語処理

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

Q&A

4回答

7271閲覧

python-mecab3でOchasenオプションがエラーになる

taisei12232

総合スコア23

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Mecab

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

Python

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

自然言語処理

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

0グッド

0クリップ

投稿2021/11/28 08:15

pythonでMecabを使用したいと思い、以下のコードを実行したところ、

import MeCab m = MeCab.Taagger(-Ochasen)

下記のようなエラーが発生しました。

Traceback (most recent call last): File "/Users/ユーザー名/.pyenv/versions/3.9.4/lib/python3.9/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 "ファイル名", line 2, in <module> m = MeCab.Tagger ("-Ochasen") File "/Users/ユーザー名/.pyenv/versions/3.9.4/lib/python3.9/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 [!tmp.empty()] unknown format type [chasen] ----------------------------------------------------------

色々と調べてみたのですが、unidicを入れ直してみたり、dicrcを書き換えたりしてみたのですが、全く効果がありませんでした。
原因や解決方法わかる方いらっしゃいましたら、ご教授お願いいたします。

実行環境は
python ver3.9.4
mecab-python3 ver 1.0.4
maxOS Big Sur ver11.6 Apple m1チップ
です。

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

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

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

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

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

guest

回答4

0

あなたは本当にchasen形式の出力を必要としているのですか?

必要と考えていない、もしくはなにを言われているのかわからないなら、-Ochasenを指定する理由は特にないでしょう。
いまからなにかを始めるのであれば辞書はunidicを使えばいいと思います。
そしてMeCab.Tagger()を利用してください。


chasen形式の出力が必要なのだとすると、「chasen形式の出力を使ってなにかをするプログラムがすでにある」ぐらいしか思いつきません。

いま-Ochasenを指定してエラーになっているのであれば、(unidicやjumandicのような)IPA辞書とは品詞体系が異なるものが指定されているはずです。
あなたの手元にあるそのプログラムが品詞情報を取り扱っているなら、いま指定されている辞書の設定ファイルにchasenの出力形式を仮に設定したとしてもそのままのコードでは意図通りに動かないかもしれません。

あなたがchasenの出力形式を辞書の設定ファイルに追加する手間+そのコードがいまの辞書で意図通りに動くか検証する手間+意図通り動かない時に修正する手間

いま指定している辞書の出力形式を読み込めるように修正する手間
のどちらがマシかという話になります。

投稿2021/11/28 11:19

quickquip

総合スコア11038

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

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

taisei12232

2021/11/28 11:26

LSTMによる文章生成を最終的な目的としています。 すでに完成されたコードを使おうと考えていて、そのコードがOchasenオプションを使用しているため、必要となっています。 私にはこれをオプションなしに書き換える能力がないので、オプションを機能させる方が楽だと思います。
quickquip

2021/11/28 12:06 編集

とくに答えは変わりません。 そのコードがipadicあたりを前提にしていて品詞情報を使っているなら-Ochasenオプションが動くだけでは解決しません。品詞情報を使っている部分を結局自分で読んで改変しなければならないはずです。もしくはipadicを導入するかです。 そのコードが品詞情報を使っていないなら-Ochasenオプションを指定できなくてもあまり苦労せずに動かせるでしょう。"表層しか使わってない"か"原形しか使わってない"かのどちらかなはずですから。
quickquip

2021/11/28 12:27

けっきょく、環境を合わせるのか、コードをちゃんと見るのかを、決断するしかないんですよ……
guest

0

私もM1Mac(Monterey)ですが、chasen使えますよ。
環境構築の手順を見直してみては?
Python 3.9.7
mecab 0.996.3
mecab-python 1.0.0
mecab-python3 1.0.4

(test.py) import MeCab mecab = MeCab.Tagger('-Ochasen') malist = mecab.parse('鬼滅の刃進撃の巨人') print(malist)
$ uname -m arm64 $ python test.py 鬼滅の刃 キメツノヤイバ 鬼滅の刃 名詞-固有名詞-一般 進撃の巨人 シンゲキノキョジン 進撃の巨人 名詞-固有名詞-一般 EOS

投稿2021/11/28 11:47

technocore

総合スコア7200

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

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

0

自決しました。
諦めました。
ていうかOchasenなしでやります。
探さないでください。

投稿2021/11/28 11:29

taisei12232

総合スコア23

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

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

0

pythonでMeCabを使おうとするとエラーと同じエラーではないでしょうか。

投稿2021/11/28 08:39

ppaul

総合スコア24666

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

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

taisei12232

2021/11/28 08:47

2行目を m = MeCab.Tagger() にした場合は正常に機能します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問