自由入力された文章をデータ化する形態素解析ですが、巨大な辞書が必要になったり次々登場する単語に対応することなどなかなか大変そうなイメージでしたが、機械学習を使った、単語分割するコンパクトな実装「
TinySegmenter」を発見。ブラウザやDenoでいい感じに使えるESモジュール版にしてみました。
「頻出単語表示 by TinySegmenter」
文章を入れると、頻出単語順に並び替えて表示する、サンプルアプリ。このアプリでは、3文字以上を単語としています。一日一創ブログをコピペしてみるといい感じに!
プログラムで組み込む方法は簡単、ブラウザやDenoで下記コードを入れるだけ。
import { TinySegmenter } from "https://code4fukui.github.io/TinySegmenter/TinySegmenter.js";
const segs = TinySegmenter.segment("私の名前は中野です");
console.log(segs); // [ "私", "の", "名前", "は", "中野", "です" ]
ライブラリは、依存なしのJavaScript1ファイル「TinySegmenter.js」のみ。gzipで8,803byteと9KB弱。このサイズならクライアント側でも気軽に使えますね!
ESモジュール化は、exportで外部に必要な変数のみ公開できるので、内部変数にアンダースコアを付けたり、過度にカプセル化する必要がなくなるので、プログラムがスッキリします。(before、after)
「code4fukui/TinySegmenter」
TinySegmenterのおかげで、日本語と仲良くなれそうです!
links
- TinySegmenter: Javascriptだけで実装されたコンパクトな分かち書きソフトウェア