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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

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

Q&A

解決済

1回答

2059閲覧

mecabがコマンドラインで使えません

shirofukuro1

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

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

0グッド

0クリップ

投稿2022/08/16 02:21

編集2022/08/16 03:27

前提

MeCabのユーザ辞書を作成しようと、mecab-dict-indexコマンドを探しています。
$mecab-config --libexecdir
でコマンドを探そうとしたのですが、mecabがコマンドラインで使えないようです。

実現したいこと

コマンドラインでmecabを使えるようにしたい

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

NameError: name 'mecab' is not defined

該当のソースコード

Python

1$mecab-config --libexecdir

試したこと

import MeCabはきちんと動くので、MeCabのインストール自体はできていると思います。

import MeCab print(MeCab.Tagger(ipadic.MECAB_ARGS).parse("すもももももももものうち").split("\n"))
['すもも\t名詞,一般,*,*,*,*,すもも,スモモ,スモモ', 'も\t助詞,係助詞,*,*,*,*,も,モ,モ', 'もも\t名詞,一般,*,*,*,*,もも,モモ,モモ', 'も\t助詞,係助詞,*,*,*,*,も,モ,モ', 'もも\t名詞,一般,*,*,*,*,もも,モモ,モモ', 'の\t助詞,連体化,*,*,*,*,の,ノ,ノ', 'うち\t名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ', 'EOS',

文頭に「!」「%」をつけても動きませんでした。

またMecabのインストールは以下のコマンドで行いました。

!pip install mecab-python3

補足情報(FW/ツールのバージョンなど)

mecab-python3-1.0.5
実行環境 : google colab

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

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

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

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

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

meg_

2022/08/16 03:05

> MeCabのインストール自体はできていると思います。 どのようにインストールしましたか?
shirofukuro1

2022/08/16 03:06

コメントありがとうございます。 !pip install mecab-python3 でインストールしました。
meg_

2022/08/16 03:23

質問は編集できますので情報は質問に追記しましょう。
shirofukuro1

2022/08/16 03:30

そうなんですね。 mecabとmecab-python3は、挙動になにか違いはあるのでしょうか? mecabはpythonでも使えるでしょうか。
jbpb0

2022/08/16 04:58 編集

> mecab-dict-indexコマンドを探しています。 $mecab-config --libexecdir でコマンドを探そうとした > 実行環境 : google colab google colabで !apt install mecab libmecab-dev mecab-ipadic-utf8 を実行した後は、 !mecab-config --help とか実行できます (行の先頭はどちらも「!」です)
guest

回答1

0

ベストアンサー

Pythonモジュールmecab-python3を入れてもmecabが入るわけじゃありません。

mecabは https://taku910.github.io/mecab/ で公開されているソフトウェアで、形態素解析のロジックの実体が入っているlibmecab(Linuxならso, macならdylib, WindowsならDLL)と、フロントエンドになるmecabコマンドと、各種ユーティリティコマンドから成っています。

Pythonのmecab-python3ライブラリを入れると、 https://pypi.org/project/mecab-python3/#files に載っているプラットフォームに関してはコンパイル済みのlibmecabが入ってきます。だから形態素解析ができるのです。
そこにはmecabコマンドやユーティリティコマンドは入ってません。


UbuntuのようなLinuxディストリビューションのパッケージ管理だと、さらに細かい単位で分割されています。
Google ColabのランタイムはUbuntuなのでUbuntuのパッケージでいうと

形態素解析器本体は libmecab
mecabコマンドは mecab
mecab-dict-indexコマンド(のようなユーティリティコマンド)は mecab-utils
mecab-config コマンド(のような、ほかの言語のバインディングをビルドする時に使うようなファイル群)は libmecab-dev

で提供されています。

!apt install mecab libmecab-dev mecab-utils

とするのがよいと思います。(libmecabは依存で入ります)


個人的には、辞書の場所とかこれから調べないといけないことはまだまだあって、Google Colab でこのまま作業するのは大変だと思います。ls するだけでもそれなりの時間待たされて効率が悪いです。

作業手順の確立まではUbuntuサーバを自分で用意して作業するか、Colabのランタイムにsshする環境を作ってしまうか(知ってはいませんができないことはないらしいです)がいいと思います。

投稿2022/08/16 05:27

編集2022/08/16 05:31
quickquip

総合スコア11038

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

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

shirofukuro1

2022/08/17 01:53

mecab-python3を入れてもmecabは入らないというコメントがとても腑に落ちました。 mecabをinstallしたところきちんとコマンドも動くようになりました。 お力添えいただいたおかげで、無事ユーザ辞書を追加することができました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問