Search code examples
python-3.xnlpdata-sciencetokenizemecab

MeCab Not Parsing Correctly


I downloaded MeCab to parse some Japanese text. To test it out, I tried doing what some examples online showed.

For example, I followed this guy's tips verbatim: http://www.robfahey.co.uk/blog/japanese-text-analysis-in-python/

The code is as follows:

import MeCab

test = "今日はいい天気ですね。遊びに行かない?新宿で祭りがある!"
mt = MeCab.Tagger("-Ochasen -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd")
parsed = mt.parseToNode(test)

components = []
while parsed:
    components.append(parsed.surface)
    parsed = parsed.next

print(components)

The output that I'm expecting is:

['', '今日', 'は', 'いい', '天気', 'です', 'ね', '。', '遊び', 'に', '行か', 'ない', '?', '新宿', 'で', '祭り', 'が', 'ある', '!', '']

However, I'm getting this:

['今日はいい天気ですね。遊びに行かない?新宿で祭りがある!', '今日はいい天気ですね。遊びに行かない?新宿で祭りがある!', 'はいい天気ですね。遊びに行かない?新宿で祭りがある!', 'いい天気ですね。遊びに行かない?新宿で祭りがある!', '天気ですね。遊びに行かない?新宿で祭りがある!', 'ですね。遊びに行かない?新宿で祭りがある!', 'ね。遊びに行かない?新宿で祭りがある!', '。遊びに行かない?新宿で祭りがある!', '遊びに行かない?新宿で祭りがある!', 'に行かない?新宿で祭りがある!', '行かない?新宿で祭りがある!', 'ない?新宿で祭りがある!', '?新宿で祭りがある!', '新宿で祭りがある!', 'で祭りがある!', '祭りがある!', 'がある!', 'ある!', '!', '']

To anyone familiar with MeCab or parsing node in general, what exactly am I doing wrong? Thanks again for your help!


Solution

  • You're not doing anything wrong, there's a bug in the latest version of mecab-python3 that was released in November.

    The bug should be fixed soon, but for now please use version 0.7.