質問: MeCab.Tagger("-d ..\dic\ipadic-neologd") sentence="一番人気の" tagger.parse("") tagger.parse(sentence) #>>>一番人気 名詞,固有名詞,一般,*,*,*,1番人気,イチバンニンキ,イチバンニンキ,[:_:3726 3689 7806] #>>>の 助詞,連体化,*,*,*,*,の,ノ,ノ ``` ### 試したこと ・オプション-Ochasenでは正しく動作します。 ・他の事例について確認 >>>二種類 名詞,固有名詞,一般,*,*,*,2種類,ニシュルイ,ニシュルイ,[:_:2635 2609 8281] >>>一番手 名詞,固有名詞,一般,*,*,*,1番手,イチバンテ,イチバンテ,[:_:1817 1799 8281] >>>一階 名詞,固有名詞,人名,姓,*,*,一階,イッカイ,イッカイ 漢数字を含む単語の一部で発生しているようです。 ### 補足情報(FW/ツールのバージョンなど) Windows10 64bit Python 3.6.6 |Anaconda custom (64-bit) NEologd辞書はこちらを参考に導入しました。 よろしくお願いします。
回答: NEologdの`seed/neologd-quantity-infreq-dict-seed.20170224.csv.xz`のエントリにそのような素性が**登録されている**からそう出ているのであって、mecabからみたら正常の動作です。(辞書の素性は"入っている通りに出力する"ので) ``` % xzgrep -n 二番手 seed/neologd-quantity-infreq-dict-seed.20170224.csv.xz 199271:二番手,1288,1288,1234,名詞,固有名詞,一般,*,*,*,2番手,ニバンテ,ニバンテ,[:_:1246 1234 8281] ``` NEologdの方のseedを望むとおりに書き換えて辞書を作り直してもいいでしょうが、継続してNEologdを使おうと思っているならそういう解析結果がくると思ってプログラムを組んだ方が自然かと思います。 (ところで、NEologdは`-a`オプションか`--install_infreq_quantity`を付けてビルドしたのでしょうか。そうでないとこのseedは使われない気がします) 追記 多分参考になる(誰かが解説した)ページはないですね。 `install-mecab-ipadic-neologd -h`でinstall-mecab-ipadic-neologd のヘルプ(つまりはこのUsage)を見て、"seed/"の中身を見て、自分が必要なものを判断するしかないかと思います。 私はやったのは、デフォルトでは入らない事の確認、`-a`オプション付きで入る事の確認、"seed/"の中のどのファイルに含まれるかの検索、どのオプションが対応しそうかあたりを付けてテスト、という手順でした。 追記 もう一つ、mecabの出力フォーマットを制御する方法も考えられます。 dicrcの書き換えやコマンドラインオプション(Pythonの場合はTaggerの初期化パラメータ)で「素性の何番目をこういうフォーマットで出せ」と指定してしまうことで、プログラムの方を固定してしまうこともできますね。 `-Ochasen`の時の例がページの一番下に載っているので参考になるかと思います。