海外製のglossaryプラグインを日本語サイトに入れて、まず面食らうのが誤検出の多さ。「金」で始まる用語を登録したら「お金」「税金」「金曜日」にまでツールチップが付いた、という類の話です。用語そのものは正しく登録できているのに、本文のあちこちで意図しない箇所が拾われる。設定をいじっても根本的には直らず、結局アンインストールした運営者は少なくないはずです。
原因はプラグインの品質というより、日本語の作りと、英語圏で設計された検出ロジックの前提がずれていることにあります。ここを理解すると、どんなプラグインなら日本語で破綻しないのかが見えてきます。
英語の検出はスペースに頼っている
英語は単語と単語の間にスペースが入ります。This is a term と書けば、term がどこで始まりどこで終わるかは前後のスペースで一意に決まる。だから英語圏のツールチッププラグインの多くは、登録語をスペースや句読点で区切られた「単語の塊」として照合します。btermb のような単語境界(word boundary)の考え方です。
この方式は英語ではよく機能します。term を登録しても determine の中の term は拾わない。スペースという明確な区切りがあるからです。
問題は、この単語境界という概念が日本語に存在しないこと。
日本語には語の切れ目を示す記号がない

日本語は分かち書きをしません。「金融商品を購入する」と書いても、どこからどこまでが一語かを示すスペースは入らない。人間は文脈と知識で「金融」「商品」「購入」と読み分けますが、文字列としてはただ連続した文字が並んでいるだけです。
ここにスペース区切り前提の検出ロジックを持ち込むとどうなるか。単語境界が見つからないので、この方式のプラグインは「単純な部分文字列一致」にフォールバックしがちです。登録語が本文のどこかに文字として含まれてさえいれば、前後がどんな文字だろうと拾ってしまう。
これが冒頭の「金」の誤爆の正体です。「金」を登録すると、税金・金曜日・お金の中の「金」に片っ端から反応する。日本語では、部分一致はほぼ確実に過剰検出になります。方式の傾向の問題であって、個々の海外製プラグインの出来がどうという話ではありません。
| 英語圏の前提 | 日本語の実態 | |
|---|---|---|
| 語の区切り | スペース・句読点で明示 | 記号なし。連続した文字列 |
| 標準的な照合 | 単語境界での一致 | 単語境界がなく部分一致に転落 |
| 「金」を登録すると | gold 単体だけ拾う | 税金・金曜日・お金…全部拾う |
| 短い語の扱い | スペースで守られる | 1〜2字が他語に埋もれて誤爆 |
スペースがないなら境界を別のルールで作る
語の切れ目を、スペース以外の判断基準で組み立てるしかありません。日本語向けに設計するなら、最低限これだけの仕組みが要ります。
語の前後に来る文字を見る。 日本語で切れ目に現れやすいのは助詞です。「金融を」「金融は」「金融が」のように後ろに助詞が来ていれば、「金融」で語が切れている可能性が高い。逆に「金融商品」のように漢字が続くなら、より長い語の一部かもしれない。前後の文字種(漢字・ひらがな・カタカナ・英数字)が変わる位置も、語境界の手がかりになります。
長い語を優先する。 「金融」と「金融商品」の両方が辞書にあるなら、本文の「金融商品」には長い方を当てる。最長一致を取らないと、短い語が長い語の中に食い込んで二重に付いてしまいます。
短すぎる語は既定で拾わない。 日本語1〜2字、英語2〜3字といった短語は、他の語に埋もれて誤爆する確率が跳ね上がる。こうした語は全記事スキャン(バッチ)の既定では対象から外れ、個別記事側で必要なときだけ拾う、という振り分けになっている。これがあるだけで誤検出はかなり減ります。
英数字の境界を扱う。 「AI」を「AIU」の中で拾わない、といった英数字まわりの境界処理も、日本語混じり文では欠かせません。
厳しさを一律に決めない — 一致モードという発想

もう一つ大事なのが、検出の厳しさを一律に決めつけないこと。同じサイトでも、絶対に誤爆させたくない専門用語もあれば、多少ゆるくても拾ってほしい語もあります。だったら一致の厳しさを段階で選べたほうが現実的です。
日本語向けに作られた用語注釈マネージャーは、この考え方で検出を組んでいます。一致モードを「ゆるい/標準/厳密」の3段階から選び、助詞の許可・英数字境界・最長一致・短語の除外を組み合わせて過剰検出を抑える設計です。検出そのものはAIではなく純粋なロジックで、用語名と別名(表記ゆれ)を本文のテキスト部分とだけ照合します。リンク内・見出し内・コード内は既定で対象外。読み方(ふりがな)は検索や並べ替えに使うだけで、検出には使いません。
全記事へまとめて注釈を付けるときも、承認方式(全記事スキャン)では本文(post_content)を書き換えず、どの用語を有効化したかをメタ情報に記録するだけです。後から用語を入れ替えたり検出範囲を絞り直したりできます。一方、個別記事のエディタで候補を一件ずつ採用する使い方は、本文にマークを挿入して保存します。同じ「注釈を付ける」でも、本文に印が残るかどうかは経路で分かれる、と押さえておくといい。ツールチップや脚注の見た目自体は、どの経路でも本文には保存されず、表示時に組み立てられます。
誤検出はゼロにならない、それでも運用の手間は変わる
境界ルールを積んでも、誤検出がゼロになるわけではありません。表記ゆれの多い語や一般語に近い専門用語は、一致モードや短語除外、優先度で個別に調整する前提です。それでも、「部分一致で何にでも反応する」挙動と比べれば、日本語の語の切れ目を最初から想定しているかどうかで、実運用の手間はかなり変わってきます。
海外製で誤爆に疲れたなら、まず自分の用語の何割が「短い語」「一般語に近い語」なのかを数えてみるといい。そこが多いサイトほど、境界判定を持つ日本語向けの仕組みへ替える効果が出ます。用語注釈マネージャーの設計思想や設定項目は製品ページで確認できます。
