[北辞郎] テキスト内の単語を一括検索

Pocket

この半年ほどスマホ用アプリと並行して取り組んできた北辞郎の新機能がようやく完成した。テキストボックスに入力された中国語を単語単位に分割し、それらの意味をまとめて検索する機能である。

一括検索1 一括検索2
一括検索3 一括検索4

複数の単語の意味を一覧表示できるほか、個々の単語をクリックすればその単語の意味だけを表示することもできる。この機能はhuixingさんからのご提案に基づいて実装を行ったのだが(感謝)、何が便利かっていちいち個々の単語を入力して検索することなく、読みたい文章をコピペして処理を実行するだけで、テキスト中の単語の意味が全部表示されるところである。辞書の検索なんて単語を入力して検索ボタンを押すだけだが、何回も検索を繰り返しているとコピー+ペースト+検索(または入力+検索)×単語数だけの手間がかかる。私なんて1日中検索ばかりしているので、これが面倒で面倒で仕方なかったのだが、この機能のおかげで大幅な省力化が図れそうである。

もちろん単語分割に失敗することもあるし、北辞郎に登録されていない未知語(人名や組織名など)には対応できていないが、外部のライブラリを使わず、PHPだけでガリガリ書いた割にはそこそこうまく動作している。単語分割はMMSEGのアルゴリズムを参考にさせていただいた。また、こういう処理には common prefix search がつきものだが、できる限りサーバに負担を与えず、ある程度の実行速度を実現するために PinconvKCONV で使っていた仕組みをPHPに移植した。先に北辞郎に移植したKCONV互換の漢字変換もこのimdrというライブラリを使っている。芋づる(imoduru)式にむりむりと単語を引っ張り出したんねんという作者の熱い思いが込められているのだが、これについては稿を改めて解説する。

コメントする

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください