と言う話です。なお実際の成果物はこちら:
nyarla/tinydictgen: Makefile and scripts for make model files for TinySegmenter
前提となる知識
そもそも Neologd とか TinySegmenter とか何やねんと言うと、
Neologdは今時の新語などを良い感じに処理するための辞書TinySegmenterは元は JavaScript で書かれたわかち書きのライブラリ
で、TinySegmenterMaker はその TinySegmenter のモデルを作り、
カスタマイズされた TInySegmenter を作るためのツールチェイン一式、という感じです。
なお、それぞれのリンクは以下:
neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic shogo82148/TinySegmenterMaker
私の成果物は何をするためのモノか
で。私の成果物である、
nyarla/tinydictgen: Makefile and scripts for make model files for TinySegmenter
は、何をしているかというと、
neologdとTinySegmenterMakerの DL をサクっと行うneologd+mecabでテキストを分析してTinySegmenterMakerで使える様にする- この一連の流れを
makeコマンド一発で行える様にする
と言う感じのコトをやっているパッケージです。
なお私は普段使いの OS が NixOS なんで、
nix-shell 経由で作業が出来る様に default.nix が 付属していますが、
他の Linux 環境でもコマンドさえ揃ってれば Makfile のタスクを実行できると思います。
なお細かい流れとかについては、
tinydictgen/Makefile at master · nyarla/tinydictgen
を見てくれーと言う感じですが、だいたいコレを参考にしてカスタムな Makefile を作れば、
おおよそ手軽に再現性のある TinySegmenter が作れると思います。
ちなみに
自分は TinySegmenterMaker のコーパスを作るために、
自分のブログ(つまりこの WebSite です)の過去記事をプレーンテキストにして合体させたモノを使いました。やってて良かったブログ歴 13 年。
ただこれ、自分のブログを元ネタにしたんで、 今回作ったモデルだと自分のブログに最適化された形で分かち書きされる、 と言う様な気はしているんですが、 いかんせん TinySegmenter も含めテキスト処理についてはあまり詳しくないので、 今回作ったモデルで精度とか出るのか、と言うと正直良く判りません。
あと今回作ったパッケージには scripts/model-to-json.pl と言う謎スクリプトが付属していますが、
これを上手いこと使うと以前自分が作った、
で使える JSON ファイルが得られるので、上記ライブラリは Golang 製ですが、 わりと手軽に精度とかをチェックするのが出来るんじゃないかと思います。
以上
と言うコトで、
neologdとTinySegmenterMakerを手軽に組み合わせられる様にしたよー
と言う話でした。
まぁ結果として出来上がったモデルが実用できるのかどうかは今一つピンと来てないんですが、 今回作ったパッケージでモデルを作る作業は大分ラクになったので、良かったら使ってみて下さい。
と言う事で今回の話は以上です。はい。