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

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

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

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

Mecab

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

解決済

Mecabのnode.surfaceの結果が想定通りにならない

ttwiita
ttwiita

総合スコア16

Python 3.x

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

Mecab

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

1回答

0グッド

0クリップ

4984閲覧

投稿2018/12/07 05:16

前提・実現したいこと

Mecabのサンプルを動かしている際にnode.surfaceの結果が想定と異なります。

MeCabを使い parseToNodeでnodeに分割した場合に node.surface で表層ではなく
後半部分が取得されてしまいます。

バージョン

python: 3.7.1
mecab: 0.996

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

実際に実行した結果と想定している結果を記載致します。

実行結果

庭には二羽鶏がいる。 BOS/EOS,*,*,*,*,*,*,*,* 庭には二羽鶏がいる。 名詞,一般,*,*,*,*,庭,ニワ,ニワ には二羽鶏がいる。 助詞,格助詞,一般,*,*,*,に,ニ,ニ は二羽鶏がいる。 助詞,係助詞,*,*,*,*,は,ハ,ワ 二羽鶏がいる。 名詞,数,*,*,*,*,二,ニ,ニ 羽鶏がいる。 名詞,接尾,助数詞,*,*,*,羽,ワ,ワ 鶏がいる。 名詞,一般,*,*,*,*,鶏,ニワトリ,ニワトリ がいる。 助詞,格助詞,一般,*,*,*,が,ガ,ガ いる。 動詞,自立,*,*,一段,基本形,いる,イル,イル 。 記号,句点,*,*,*,*,。,。,。 BOS/EOS,*,*,*,*,*,*,*,*

想定結果

BOS/EOS,*,*,*,*,*,*,*,* 庭 名詞,一般,*,*,*,*,庭,ニワ,ニワ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ は 助詞,係助詞,*,*,*,*,は,ハ,ワ 二 名詞,数,*,*,*,*,二,ニ,ニ 羽 名詞,接尾,助数詞,*,*,*,羽,ワ,ワ 鶏 名詞,一般,*,*,*,*,鶏,ニワトリ,ニワトリ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ いる 動詞,自立,*,*,一段,基本形,いる,イル,イル 。 記号,句点,*,*,*,*,。,。,。 BOS/EOS,*,*,*,*,*,*,*,*

このように後半部分のみ取得されているように見えます

該当のソースコード

# coding: utf-8 import MeCab text = '庭には二羽鶏がいる。' mecab = MeCab.Tagger('mecabrc') mecab.parse('') node = mecab.parseToNode(text) while node: print(node.surface, node.feature) node = node.next

試したこと

http://thr3a.hatenablog.com/entry/20170806/1502002257
こちらを参考にさせていただいてそのままのソースコードですが結果が異なります。
nodeで分割した際に単語を取得したいのですが 単語を除いた後半部分が表示されてしまいます。

特殊なことはしていないつもりなので仕様が変わったのかと思いましたがそのような情報が見つからず困っています

どなたかお力添えいただけないでしょうか。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

ベストアンサー

mecabのPythonバインディングをダウンロードしてインストールしたのではなくて、
pipでmecab-python3をインストールしてると思います。

https://github.com/SamuraiT/mecab-python3/issues/19
報告されていて修正の途中(修正コードがあがったけどまだおかしいっぽい)ですね。

投稿2018/12/07 05:46

編集2018/12/07 06:06
quickquip

総合スコア10419

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

ttwiita

2018/12/07 06:27

>pipでmecab-python3をインストールしてると思います おっしゃるとおりです。 原因がわかって助かりました。 対いただいたリンク先からダウンロードして対応します ありがとうございます。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

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

Mecab

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