-
Notifications
You must be signed in to change notification settings - Fork 204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UniDic 2023に対応したい #1471
Comments
@takana-v さんとか辞書に詳しい印象があり、コメントなど頂けるととても心強いです! |
ざっくりと調べてみました。 実現方法現在VOICEVOXで使っている辞書は、r9r9氏のopen_jtalkリポジトリのreleaseにあります。 VOICEVOX Orgでは、既に自前でopen_jtalkを管理しているので、このリポジトリにファイルを置けば良さそうです。 なので、更新を掛ける時の流れとしては、
といった感じになります。 辞書の更新内容Winmergeを使ってUniDic 2.2.0(open_jtalkの使用バージョン)と2023_02(最新)を大まかに調べてみましたが、
問題点単に最新の辞書を配置するだけでOKとはならなさそうでした。 大きな問題は、UniDicとnaist-jdicで文脈IDの割り振りが異なることです。 しかし、naist-jdicの配布ファイルには、コスト推定に必要なファイル(UniDicだとmodel.def)が見つかりませんでした。 参考:mecabのコストの自動推定機能について(ページ下部に記載あり) その他、単語の選定についても少し問題があります。 |
おーーー ありがとうございます!!!
ここちょっとわかってないのですが、openjtalkはnaist-jdic用の文脈IDじゃないと動かないということでしょうか? 👀 |
openjtalkには、naist-jdicの品詞分類(文脈IDの割り振り方)に依存したコードがあるようです。 ちなみにnaist-jdicは1377種類の品詞がある(1376番まで文脈IDがある)ようですが、UniDicだと19067種類のようです。 |
なるほどです!! ちなみになのですが、単純に置き換えても何かしらのエラーが出て動かなかった感じでしょうか?👀 コストの振り直しはおっしゃる通り勿体無い気がします。 例えば、例に挙げてくださったコードにあるnjd2jpcommon_ctype_listの中身をunidic用に書き換えるとか…。 |
単に辞書を置き換えただけだと、下記のような警告が出て、うまく動作しませんでした。
もしかしたらそうかもしれません。 |
おーーーなるほどです!!! 全く存じませんでした。。。完全に同じファイルフォーマット+名前なのかと思ってました。
おっとなるほどです!! どうやって作ったのか、どうやってわかるんだろ・・・・・・・・ 😇 😇 😇 😇 😇 |
modelファイルはipadicの物が使えそうな気がしますね(ipadicを修正したものがnaistjdicなので、語句の増減だけの変更なら動きそう) 2つの辞書を混ぜて作ってるかについては辞書のmakefileを見る限り多分そうですね 上記のモデルファイルが使えるのなら、naist-jdicとunidicの対応表を作ってunidicを変換したほうが早いと思います。 |
コメントありがとうございます!! すみません、ちゃんと分かってないので一応確認させていただくと・・・ 実際にやるとしたらどういう流れになるんだろう・・・。こう・・・・・・?(抜け漏れいっぱいありそう)
どれぐらい精度が下がるのか(というより以前のものからどれぐらい変わるのか)が気になるところですね・・・。 |
辞書作成手順をmecabのドキュメントを参照しながらまとめると、 ①unidicの品詞分類情報をnaist-jdicの項目に合わせる。 ② ③モデルファイルでコストを推定する 単語コストについて具体的に説明すると単語とそれに似た単語、同形異音語など文字の一部を共有する場合の単語の出現率(でやすさ)です。 モデルファイルは単語コストがない場合やnaist-jdic(の元になったipa-dic)の単語コストを基準にしてコストを指定したい場合はいると思います。 |
内容
openjtalkで使われている辞書の大元はおそらくUniDicで、どうやらUniDicは更新されていることに気づきました。
https://clrd.ninjal.ac.jp/unidic/back_number.html#unidic_cwj
そのままではopenjtalkで使えない気がしますが、辞書さえ変換すれば使える・・・と思われます。
このissueはVOICEVOX ENGINEで新しいUniDicが使えるようになれば達成だと思います。
Pros 良くなる点
アクセントなどがより良くなる?
実現方法
新しくopenjtlak用のcsvファイルを作る必要があるのかがわからないのですが、新しく作らないといけない前提の工程を考えてみました。
VOICEVOXのバージョン
0.20.0
その他
The text was updated successfully, but these errors were encountered: