polm / fugashi

A Cython MeCab wrapper for fast, pythonic Japanese tokenization and morphological analysis.
MIT License
389 stars 31 forks source link

fugashiからのユーザー定義辞書の利用 #58

Closed ghost closed 2 years ago

ghost commented 2 years ago

今fugashiを使って形態素解析解析をしていますが、Mecabのようにユーザー定義辞書を使う必要が出てきました。ざっと検索はかけてみたのですが、以下の事項についての答えが見つかりません。 ①ユーザ定義辞書がそもそも使えるのか ②使えるとしたら、辞書の作り方とコード上でどのように指定すればよいか。

ご回答頂ければ幸いです。

polm commented 2 years ago

ユーザ辞書の使い方は基本的にMeCabと同じです。

①ユーザ定義辞書がそもそも使えるのか

はい、使えます。

tagger = fugashi.Tagger("-u hoge.dic")

この指定方法はmecab-python3や他のラッパーと同じです。

②使えるとしたら、辞書の作り方とコード上でどのように指定すればよいか。

作り方は、少し簡単に説明すると、システム辞書と同じ形式のCSVを用意して、fugashi-build-dictを使って辞書ファイルを作成します。 fugashi-build-dictmecab-dict-indexと使い方が同じです。この機能は他のPythonラッパーにはありません。(MeCab本家で作成されたユーザ辞書でも普通に使えます。) mecab-dict-index の使い方についてはMeCabの公式資料で説明されています。

https://taku910.github.io/mecab/dic.html

有料になりますが、現在執筆中の本でユーザ辞書の作成方法を細かく説明する節もあります。

https://www.japanesenlp.com/index-ja.html

ghost commented 2 years ago

ご回答ありがとうございます。追加でいろいろ調べてみますと、確かにfugashi-build-dictを使えば辞書ファイルが作成できるとあるものがありました。(例:https://stackoverflow.com/questions/67560234/add-new-words-to-the-fugashi-dictionary)。しかし私の方で試してみますと(具体的にはコマンドプロンプトにfugashi-build-dict -d "Path to システム辞書" -u "Path to .dic file" "Path to .csv file"と打ってます)コマンドプロンプトの画面に'fugashi-build-dict' is not recognized as an internal or external command, operable program or batch file. と表示されて、.dic fileが作成されないようでした。何か対処方法はございますでしょうか。

polm commented 2 years ago

PATH の問題ですね。fugashi はどうやってインストールしていますか? Windowsはほとんど使いませんけど、使うときvirtualenvでpip install fugashiをすると普通にそのまま実行できます。

polm commented 2 years ago

返事がないのでクローズしますが、もしなにかありましたら教えてください。