日本語処理
最後に、「Web AI」の日本語処理系のオブジェクトについて簡単な解説を行っておきます。これらは、きちんとした日本語処理ではなく、あくまで簡易的に日本語を処理するためのオブジェクトになります。
crocro.webAi.JpKw.js
日本語キーワードを抽出するオブジェクトcrocro.webAi.JpKwが収録されています。このオブジェクトを使えば、断片的な日本語文章から、評価点数順にソートした配列としてキーワードを取得できます。
この評価点数は、出現頻度と使用文字種と文字列長から自動で算出されます。日本語の単語は、使われている文字種と文字列長から、文章内での重要度がある程度推測できます。そのため、評価点数を機械的に決めても、ある程度の精度を出すことができます。
crocro.webAi.JpSntnc.js
日本語文章を抽出するオブジェクトcrocro.webAi.JpSntncが収録されています。このオブジェクトを使えば、断片的な日本語文章から、文章を抽出できます。
また、このオブジェクトは、簡単な校正機能も備えています。校正機能を利用することで、検索結果のように、書き手がばらばらな文章も、ある程度文体を統一できます。また、末尾が壊れたような文章も、ある程度なら復元してくれます。
校正に関しては、正規表現のリストを作って、機械的に語尾を変換しています。形態素解析などをすればもっと正確な変換ができますが、JavaScriptと少ないデータのみで処理を完結させるために、簡易的な処理にしています。
また、JpSntncオブジェクトには、文章の配列を文字列長でソートしたり、指定文字列長に近い順でソートするメソッドも収録しています。このソート機能を利用して、長文や短文を優先的に取り出したり、「60文字ぐらいの文章」といった取り出し方をしたりすることができます。
crocro.webAi.JpMrkv.js
日本語マルコフ連鎖を行うオブジェクトcrocro.webAi.JpMrkvが収録されています。このオブジェクトを使えば、日本語文章に対してマルコフ連鎖を行うことができます。
このJpMrkvオブジェクトは、単語の区切り方が正規表現で設定されています。そのため、ユーザーが区切り方を任意に変更できます。また、文節の連続数も切り替えることができます。ただ、よほど大量のデータがない限り、「1」以外で行うと、ほぼ元の文章になってしまいます。
また、JpMrkvオブジェクトは、マルコフ連鎖の内部辞書を、ツリー形式で出力する機能も持っています。この機能を使うことで、マルコフ連鎖の辞書の構造を、実際に目で見て確認できます。
このJpMrkvでは、開始単語を指定することもできます。例えば「初音ミク」に関する文章を作りたい時は、先頭の単語が「初音ミク」である方が、それっぽい文章を生成できます。そこで開始単語を「初音ミク」とすれば「初音ミクは~」といった感じで文章を生成できます。
まとめ
JavaScriptの新しいライブラリ「Web AI」は、ネットをデータベースにして、JavaScriptだけで人工無脳を作成するためのライブラリです。
このライブラリは、「通信のメソッドチェーン化」「クエリー操作」「日本語操作」の3つの機能で成り立っています。ユーザーはこのライブラリを使うことで、ネット上のデータを利用したインテリジェンスな処理を、手軽に記述できます。
「Web AI」は、人間が検索しながら行う思考の流れを、プログラムとして簡潔に記述できる枠組みを持っています。この仕組みを利用して、これまでとは違うJavaScriptのプログラミングの世界を楽しんでいただければと思います。
参考資料
- JavaScriptライブラリ「Web AI」(ダウンロード/リファレンス/コメント付きの全ソースコード)
- 「人工無脳 ひまねちゃん」(データベースを持たない人工無脳)
- 「Cigazine」(Gigazine風記事作成ジョークWebアプリ)
- 「迷言辞典」(マルコフ連鎖で、適当な文章を生成するジョークWebアプリ)
- JavaScriptドキュメント作成ツール「easyJsDoc」
- マンガで分かるJavaScript プログラミング講座
- Google AJAX API
- Google AJAX Search API
- オートペディア
- 全自動4コマ
