豪鬼メモ

一瞬千撃

Chrome拡張ポップアップ辞書の先読み英熟語検索

Chrome拡張のポップアップ英和辞書機能にて、選択語句の周囲の語句を先読みして、関連する英熟語の検索結果を追加するようにした。例えば「The plane bursts into flames at Haneda.」という文の「bursts」を選択するだけで、「burst」(破裂する)の意味だけではなく、「burst into」(突入する)や「burst into flames」(炎上する)の意味も教えてくれる。これによって、どこからどこまでが英熟語なのかを事前に知る必要がなくなり、初学者により優しい辞書になった。


まずは統合英和辞書のポップアップ辞書の最新版をインストールされたい。以下の記事に手順があり、ファイルはすでに最新版に置き換えてある。更新後、バージョン番号が2.2になっていることを確認されたい。
mikio.hatenablog.com

「look forward to X」をひとまとめにして「Xを楽しみにする」と覚えるべしと私達は学校で習う。このような「英熟語」は日本における英語教育の恣意的な概念であり、母語話者はそのような訓練はしないらしい。「look」(見る、視界に入れる)、「forward」(前方を、前向きに)「to X」(その帰着点がXである)を総合すると「Xを楽しみにする」に近い意味が想起できてしまうので、わざわざ呪文のように暗記したりはしないらしい。とはいえ、私達は母語話者ではないので、英熟語として覚えるべき1000個とか2000個とかのフレーズを暗記してしまった方が早い。丸覚えするだけだと応用力に難があるが、そうしないと高校や大学に行けないんだからしょうがない。

英文読解の際に英熟語の意味を調べるとして、どこからどこまでが英熟語として辞書側に把握されているかが判然としないのが問題となる。「look forward」だけでも英熟語になり得るし「look forward to」までかもしれない。「in place of X」の場合、「in place」かもしれないし、「in place of」かもしれないし、「place of」かもしれない。それらを一つ一つ試すのはだるいので、一気に調べてくれる機能があるとうれしい。そこで、ポップアップ辞書にて、とある語句を選択すると、前3語と後ろ3語をコンテキストとして送信し、選択語句を含む全てのN-gramの候補を暗黙的に検索してくれるようにした。これにより、「look forward to」の「look」を選択しても、「look forward」を選択しても、「forward」を選択しても、「look forward to」の意味が結果に含まれるようになった。「in place of」も同様に、どれを選択してもOKだ。

選択した語句に対してのみ屈折形を正規化した検索をするので、「looking forward to」で「look forward to」を調べるには、「looking」を選択しなければならない。これは実装の都合だ。動詞の英熟語っぽいものを調べる場合には動詞を選択すべしと覚えてほしい。ポップアップ辞書だと気軽に意味を調べられるので、怪しいと思ったらとりあえずダブルクリックで単語を選択するとよい。「Pulling off the perfect crime required months of careful planning.」を「完全犯罪を引き抜くには数ヶ月の念入りの計画が必要であった」と解釈して意味が通らなかったなら、「pulling」を選択するとよい。「pull off」(成功する、成し遂げる)という意味が提示されるので、正しい文意を把握できるだろう。

さらに、間に目的語や副詞が挟まった句動詞の英熟語も検索できるようにした。「send him off」と入力して「send off」が調べられ、「see right through」で「see through」が調べられる。これはポップアップだけではなくて主たる辞書検索機能でも使えるのだが、特にポップアップ辞書で便利だ。

辞書検索システムとして厄介なのは、句動詞(phrasal verb)の扱いである。「send off」「wake up」「give away」のような不変化詞を伴う他動詞が目的語として代名詞や名詞を取る場合、「send him off」「wake me up」「give it away」のように真ん中に置かれるので、完全一致だと検索できないのだ。また「see through」が「see right through」になったり、「look for」が「look around for」になったりするように、句動詞の間に任意の副詞が挟まるパターンでも、完全一致では対応できない。

検索システムに検索語を入力する場合、上述のことを理解した上で、句動詞の必須構成要素のみを入力すればよい。とはいえ、未知のフレーズだから調べているわけで、何が必須構成要素なのかが判然としない場合も多いだろう。さらに困るのは、ポップアップ辞書として使う場合だ。「I'll send her off at the station.」とかいう文を読んでいたとして、「send off」だけを選択することは不可能だ。実際の英文ではこれが結構頻繁に起こるので、イラっとする。Shift+Ctrl+Lを入力するか「EJ」アイコンを押して検索窓を開いて自分で入力してもよいのだが、頻繁にやるのはだるい。

そこで、フォールバック機能を拡充させた。従来から、指定されたフレーズがヒットしなかった場合には、編集距離を使って曖昧検索をすることで意図にできるだけ近い結果を出すフォールバック機能が実装されていた。その曖昧検索の直前に、句動詞検索のフォールバックを入れた。もし入力フレーズが3語以上であり、最後の語が不変化詞である場合には、真ん中の語を抜いて最後の語をつけた最長一致で検索を行うというものだ。例えば、「send the naughty boys off」が入力された場合、「off」が不変化詞に該当するので、「send the naughty off」「send the off」「send off」を順に調べて、最終的に「send off」の結果が表示される。この単純な方法で、「wake his father up」でも「look thoroughly around for」でもそれぞれ「wake up」や「look for」を調べられる。同じアルゴリズムがコンテキストを送信した場合にも適用されるので、「send」や「wake」や「look」だけ選べば目的が達成できる。

英熟語で「someone」「one's」「oneself」などが見出し語のワイルドカードとして使われる場合にも対応している。「give me a break」で「give someone a break」が検索できるし、「help yourself」で「help oneself」が検索できるし、「make up my mind」で「make up one's mind」が検索できる。本文には「someone」「one's」「oneself」が書かれているわけではないので、ポップアップ辞書がそれらの置き換えができるのはそれらの見出し語を検索するためには必須だ。また、複数語のフレーズを指定した場合に完全一致がない場合、部分N-gramで一致するものがあればそれを表示する。例えば「look up to him」と指定すると完全一致は該当しないが、「look up to」の結果を変わりに出してくれる。これによって、長いフレーズを指定しても損はなくなる。これらの機能は、やってみれば簡単な実装なのだが、今まで手抜きしていてやっていなかった。紙ベースの考え方が私からも抜けていなかったのだろう。

ポップアップ辞書の場合、フォールバックの結果のリストを全て表示するのではなく、フォールバックの最初の結果の詳細表示を行う。時短こそがポップアップ辞書の命なので、意図を確認するために余計な操作を要求するよりは、最もそれっぽいのを出してしまう方が使いやすい。これと上述のコンテキストの先読みを組み合わせると、もはや複数語を選択する必要がほとんどなくなる。

欲を言えばKindle用英和辞書でもこれらの便利機能を実装したかったのだが、不可能だ。Kindleでは完全一致しかできないので、もしやるなら「send off」のエイリアスとして「send me off」「send us off」「send you off」「send him off」などなどのあり得るパターンを全部登録することになる。現状で容量制限に苦しんでいるので、それは現実的ではない。また、代名詞はそれで対応できたとしても、名詞や副詞が挟まるパターンは無限にあるので対応できない。Kindleの辞書検索でも上述のようなフォールバックアルゴリズムを実装してくれればいいのだが、当面は期待できないだろう。というか、Kindleの辞書機能は不具合が多いのに長年全く改善されていないので、おそらくまともにメンテされていない。英語学習者にとっては辞書検索は命綱なので、もうちょい頑張ってほしいなぁ。なお、フォールバックが働かないことを前提として、「send」の語義に「send off」などの定型句も収録するという工夫は以前からやっている。ただし、これも要領制限の関係で、全て収録するというわけにはいかず、代表的なものに絞らざるを得ない。

まとめ。統合英和辞書のポップアップ辞書で、周辺の語句を使った英熟語の自動検索機能を実装した。また、検索システムで真ん中にノイズが入った検索語でも句動詞を検索できるようにした。細かい変更ではあるが、かなり便利だ。日頃抱えていたストレスが一つ片付けられてスッキリした。