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