Taku Kudo
taku****@chase*****
2014年 5月 4日 (日) 11:27:57 JST
工藤です もし、辞書に該当単語が登録されているにもかかわらず、virtual node がたくさん出るのであれば、以下の原因が考えられます A. 辞書の文字コードが異なる。 コーパスと辞書のコードが正しく設定されているか確認して下さい。 B. eval-size と unk-eval-size が正しく設定されていない。 eval-size は、品詞情報 (feature) の CSVの前何個までが同一であれば正解とみなすかを指定しています。これが適切に設定されていない(大きい値)だと、 辞書に登録されていてもマッチできずに virtual node が追加されます。 以下が ipadic の設定です。 cost-factor = 800 bos-feature = BOS/EOS,*,*,*,*,*,*,*,* eval-size = 6 unk-eval-size = 4 config-charset = EUC-JP eval-size と unk-eval-size ですが、以下のように動作します。 1. 辞書引きをおこない、ラティスを構築する。この時未知語処理も行われるので、ラティス上には未知語ノードと既知語ノードが存在する。 2. 既知語の場合 => 正解データの形態素がラティス中に存在し素性の前 eval-size が合致する 3. 未知語の場合 => 正解データの形態素がラティス中に存在し素性の前 unk-eval-size が合致する 4. 2でも3でもない場合、virtual node として追加 ipadicの場合,unk-eval-size は4ですので、品詞の4階層までは見ますが、活用情報は無視します。 工藤 2014年5月2日 19:36 Yo Sato <yosat****@gmail*****>: > 独自コーパスによるトレーニングについての質問です。学習はウェブのマニュアル(これ↓)に沿って行っています。 > http://mecab.googlecode.com/svn/trunk/mecab/doc/learn.html > > パラメータ学習(mecab-cost-train)の段階で、非常に多くのvirtual > nodeが出ます。ほとんど全てではないかと思われます。説明によると「未知語処理を行っても処理できない」ものだということですが、これは全てが未知語扱い、つまり辞書にエントリが見出せない、ということなのでしょうか。だとしたら辞書とコーパスのミスマッチが問題だということでしょうか。 > > もっとも、見る限りそうしたミスマッチはなく、学習後走らせてみた場合のアウトプットでは、こうした語が未知語扱いになることもありません。もっともパフォーマンスはかなり悪いです。 > > とりあえずの質問としては、 > > virtual nodeが沢山出ることは大きな問題か > 原因は上記の推測で正しいか(辞書とコーパスのミスマッチによって未知語扱いになる) > そうでないとしたら何が原因か > > をお伺いしたいと思います。もう少し一般的には、virtual nodeの必要な理由を簡単に説明してもらえると助かります。よろしくお願いします。 > > 佐藤 > _______________________________________________ > mecab-users mailing list > mecab****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/mecab-users