Chienomi

Mozcdict-EXTの今後の方針

開発::application

先日公開したMozcdict-EXTはある程度注目されているようだ。

まぁ、現状ではMozc-UTをインストール済みの人は特に入れ替える必要性がないため、必要とされるのは後々の話になるだろう。

このソフトウェアはまずNEologdをMozcに組み込めるようにした。 fcitx-mozc-neologd-utのような感じだ。 そして、Fcitx5バインディングをビルドするAURパッケージ、fcitx5-mozc-ext-neologdを公開した。

これは、最初のゴールである。 NEologdが使えるようになれば語彙力が大きく強化され、実用性が増す。 fcitc5-mozc-ext-neologdの時点で、少なくとも要求されるところは満たしている。

では今後はどうなのか。

そのあたりを話していこうと思う。

Sudachi

現在、リポジトリ(Mozcdict-EXT)はNEologdに加え、クロスプラットフォーム形態素解析器のSudachiの辞書を取り込む作業をしている。

Sudachiについては品詞変換が非常に難しいため、NEologdのようにすんなりはいかない。 作業はそれなりに長期間かかる予定だ。

もともとMozc-UTもSudachiを採用していたが、一般名詞のみ採用であったため、このような品詞問題は発生していなかった。

ちなみに、Sudachiの品詞は189個、Mozcの品詞は2651個あり、全く異なった体系になっている。 これを手作業でマッピングしていく必要がある。

また、Sudachiのほうが品詞が少ないことからも分かるように、Sudachiのほうがより論理的な品詞体系をとっており、Mozcは実践的な品詞体系となっている。これはソフトウェアの性質的都合もあるが、Sudachiからすればそのように活用可能であることが自明であるように思われても、Mozcとしては例外的な変換をしてしまわないように分けられており、ひとつのSudachi品詞から複数のMozc品詞を生成する必要がある可能性が高い。

どちらもかなり最新に近い日本語学研究の観点になっており、私の日本語学のレベルだとこの品詞変換が結構きつく、実例を見ていかないと判断できない。 Sudachiの品詞「顔文字」をMozcでは品詞「感動詞」にするなど、慣例的なものもあり、なかなか厄介だ。

現在のMozcdict-EXTはSudachi品詞を動詞以外は定義しており、動詞以外は生成する。 ただ、名詞以外について十分に実用的な変換ができているかは分からない。 実際、この「動詞以外のSudachi辞書」を含めた状態で私は使っていて、特に不自由は感じていないが、再検証も必要だ。

こうしたことから、Sudachiの作業はかなり時間がかかることが想定される。

地名生成

地名生成については、現状とは少し方針を変える予定である。

現在、NEologd/Sudachiともに地名を除外しているが、最終的にdedupすることに頼ってこの処理をやめる予定である。 これは、ライセンス的な明瞭さの足りていない日本郵便のデータにあまり頼れないという判断がある。

詳細は次の章で話すので、地名生成についての予定を明らかにしよう。

他の辞書でも地名を生成するということを除けば、地名生成の方法は従来から大きな変更はなく、x-ken-all.csvJIGYOSYO.CSVから生成する。

これらは別のツールであり、x-ken-all.csvは地名を生成し、JIGYOSYO.CSVは事業所、企業名などの固有名詞を生成する。 恐らく、これらはすべての人に必要はないものだ。膨大な地名と事業所・企業名を入力する必要がある人はごく一部だろう。 このような人にはユーザー辞書として生成するほうが利益がある。

このことから、これらのツールはシステム辞書としての生成に加え、ユーザー辞書としての生成も可能にする。

OSS辞書とfcitx-mozc-ext-neologd

さて、名前からするとNEologdのみになりそうなfcitx5-mozc-ext-neologdだが、実際はNEologdとSudachiを組み込んだものになる予定である。

これはOSS辞書として配布できる範囲の問題だ。

まず、NEologdだが、mecab-ipadic-neologdはApache License 2.0であり、

NEologdのシードデータの著作権は私達が保有してます。また Apache License 2.0での配布については、NEologdを公開する前に株式会社はてな様に確認しており、快く許可頂いております。ご安心下さい。

というツイートがあり、問題なく利用できると判断できる。

SudachiDictもApache License 2.0である。 ちなみに、プレスリリースも出ている。

株式会社ワークスアプリケーションズ(本社:東京都港区、代表取締役最高経営責任者:井上直樹、以下 ワークス)は、この度、2020年10月9日(金)より、ワークス徳島人工知能NLP研究所(以下、同研究所)が開発した国内最大規模の日本語言語処理資源「SudachiDict」および「chiVe」をOpen Data on AWSにて公開を開始したことをお知らせいたします。

郵便番号のデータについては、郵便番号データの説明において

使用・再配布・移植・改良について

郵便番号データに限っては日本郵便株式会社は著作権を主張しません。自由に配布していただいて結構です。

との記載がある。 OSSとしては「不十分」だが、AURパッケージとしては受け入れられる範疇だ。

このため、この3つは取り込めるのだが、事業所名のほうは、事業所の個別郵便番号データダウンロード (zip形式)において、その利用に関するライセンスに言及がない。

このため、Mozcに組み込んで使うことが許容されるかどうかが判断できず、ツールは自己責任として良いにしても、それをパッケージングするものとなると支障がある可能性があり、パッケージに含めて良いかが微妙になる。

だが、AURパッケージと組み込むことにそれほど問題はない。なぜならば「このパッケージが新たな問題を生じないから」だ。

そもそもMozcにgen_zip_code_seed.pyというスクリプトがあり、これがx-ken-all.csvおよびJIGYOSYO.CSVのデータを取り込むようになっている。 デフォルトで組み込まれているわけではない、つまり「再配布はしない」が、「スクリプトによってユーザーがダウンロードして組み込むことはできる」という状態になっているのだ。

そして、communityパッケージであるfcitx5-mozcはこの組み込みを行っている。

このことから、JIGYOSYO.CSVの利用に問題があったとしても、その問題はMozc自体から発生している問題で、問題が追加されはしない。

このことから、AURパッケージには組み込めるが、「安全な」ディストリビューションとしては推奨はしない。 AURパッケージに組み込めるのは、「もともとの公式パッケージがそうだから」というところにもあるので、「オープンなプラットフォーム向けのオープンなパッケージ」として組み込みたいなら、NEologd/Sudachiのみに留めておくことをおすすめする。

さて、AURパッケージに「組み込める」と言ってきたが、実際は組み込まない。 なぜならば、組み込むことが多くのユーザーにとって利益にならないからである。 必要な人はユーザー辞書として生成して加えるといいだろう。

ニコニコ大百科とユーザー辞書

mozc-ut2において重要なポイントになっていたのが、「ニコニコ大百科」から生成する語彙群である。 これにより大幅に語彙が強化され、スムーズな変換が可能になっていた。

また、mozcdic-utにおいてはコメントアウトされているが、有効にしてリビルドすることは可能な辞書になっていた。

だが、Mozcdict-extにはこれを含まない予定である。 これは、「システム辞書」と「ユーザー辞書」の性質的な問題である。

ニコニコ大百科の語彙を組み込むことで強化されるのは、多くは固有名詞とスラングである。 もちろん、そうした固有名詞やスラングを多用する人はいるだろう。 だが、それは「非常に偏った語彙」であり、「使う人は多用するが、使わない人は全く使わない」の類である。

ある程度一般的なものはNEologdなどにも含まれているし、スラングやジャーゴン(専門用語)、テックスピーク(技術用語)の類はユーザー辞書でカバーするほうが良い。

ユーザー辞書はシステム辞書とどう違うのか。

Mozcのユーザー辞書はよりシンプルなフォーマットで、品詞の種類も少ない。 コストの項目もなく、常に高い優先度となる。

使う人(その文化圏の人)にとっては、ユーザー辞書で語彙を追加するのが最適だ。

実際、私は原神をプレイしているため、他では絶対に使わない大量の用語を多用するのだが、原神をプレイしない人にとっては全く無用なものだろう。 このようなものはユーザー辞書に適しており、原神のユーザー辞書は米蔵さん制作のものが有名だが、私もその追補用の辞書を公開している。

ニコニコ大百科をソースにして追加される語彙はそうした性質のものであると考えられる。 このため、Mozcdict-EXTに追加する予定はない。

ひょっとしたらユーザー辞書として取り組むためのツールを別に出すかもしれないが。

次なる辞書

では第五の辞書は何になるのか。

あくまで予定だが、web辞書になる予定だ。 だが、これは構想を含めてまだまだ先の話になる。

Mozcdict-UTで求められるレベルの語彙力を目標とするのは最初の4つで終わりであり、5つ目はより充実した語彙の辞書生成を目指す方向になるだろう。

必要な語彙、あるいは改善はどのようなものであるか、よく考えて進めることになる。