Mozcを郵便番号対応にする

MozcとGoogle日本語入力の違いを調べてみると、辞書が違うということと(Mozcはgoogleのロボットが集めてきた辞書ではなく、IPAの辞書を使っている)、郵便番号から住所の変換がサポートされていないということがわかった。

とこらが、ソースのsrc/data/dictionary_ossにあるREADME.txtを読むと、郵便局のホームページからダウンロードしたデータを加工してソースに取り組むためのPythonスクリプトが準備されていた。

早速やってみました。mozc_base.exeというファイルが少し大きくなりましたが、地名のほか、事業者が登録することができる追加の郵便番号の情報も取り込むことができました。

前回同様にバイナリをこちらにおいておきました。

このREADME.txtを読むとWebからの大規模単語辞書は公開されませんでしたがMozc自体の性能を上げるために固有表現や「社員証」といった複合語などはIPA辞書から追加して強化してくれているようです。

MozcのWindowsでのビルド(コンパイル)

訳有ってGoogle日本語入力のソース公開版である、MozcをWindowsでコンパイルしました。

本家・参考サイトからの差分

  • VS2017ではコンパイルできない。ソース側が20190209時点では対応しているVisual Studioのバージョンは2015 Update 3まで。(VS2017を検出する仕組みが作り込まれていない)
    • Comunity 版の旧バージョンはこちらからダウンロードできます。
    • 頑張れば2017に対応できそうな気もするけど今後の課題としよう。
    • 参考サイト同様、mt.exe, rc.exeのために、C:Program Files (x86)Windows Kits8.1binx86等にパスを通す必要はあった
  • Qt5はMSVC 2015 32bitに合わせるために、5.6.3を使用。(いま時点で最新の5.12.1はMSVS 2015 32bit用DLLが内包されていなかった)
    • opensource版はユーザ登録しなくてもインストール可能(Skipできる)
  • インストールするためにPython 2.7を自分で入れる必要はなかった
    • dep_toolsにもPythonが準備されるため。 gclient実行時に自動的にDLされます。ただし、すでにPython3がインストールされている環境ではPATH環境変数の順に注意したほうがよいでしょう。
  • バイナリは src/outではなくsrc/out_winに作られます。

気をつけた方がいいところ

  • OSが32bit環境と64bit環境でインストール手順が違います。本家のビルドガイドは最初に32bit環境でのインストール方法が記載されていて、あとに64bit環境でのインストール方法が記載されています。
  • Windows 8以降とそれ以前でも、インストールの手順が少し違います。
  • regsvr32等しても、タスクバーに現れないときは、以下のどちらかを試すべし
    • 一度、再起動やサインアウト・サインインを試すべし
    • (Windows10の場合)Windowsの設定 -> 時刻と言語 ->(左部メニュー)言語 -> 「優先する言語」欄の「日本語」をクリック -> オプション ->「キーボード」欄 キーボードの追加 でmozcを追加

カスタムバイナリ

  • 日付変換で「YYYYMMDD」形式が出るようにしました。
  • バイナリ(インストーラはないので手動でお願いします)
  • 改変部分ソースdate_rewriter.cc
  • 郵便番号からの住所の変換に対応したバージョンを作りこちらに置きました。