はじめに
グローバルに事業を展開する企業や、外国籍の社員が在籍する組織では、社内ドキュメントが複数の言語で作成されます。 日本語の議事録、英語の技術仕様書、中国語の市場レポートなど、言語が混在する環境で適切に検索できる基盤が求められます。
本記事では、日本語・英語・中国語のドキュメントが混在する環境を想定し、各言語のドキュメントを正しく検索できる環境を構築します。
対象読者
多言語のドキュメントを扱う組織の管理者
日本語以外の言語での検索品質を改善したい方
全文検索の Analyzer に関する基本知識を学びたい方
シナリオ
日本・米国・中国に拠点を持つ企業を想定します。
日本拠点: 日本語のドキュメントを作成(仕様書、議事録、報告書)
米国拠点: 英語のドキュメントを作成(技術文書、プレゼン資料)
中国拠点: 中国語のドキュメントを作成(市場調査、取引先情報)
共通: 英語で作成されたグローバルポリシー文書
各拠点の社員が、言語を問わずにドキュメントを検索できる環境を目指します。
多言語検索の基本
全文検索における言語処理
全文検索エンジンがドキュメントを検索可能にするためには、テキストを「トークン」(検索可能な単位)に分割する必要があります。 この処理を「トークナイズ」と呼びます。
言語によってトークナイズの方法は大きく異なります。
英語: スペースで区切られた単語がそのままトークンになります。 さらに、語幹への変換(stemming: running → run)や小文字化が行われます。
日本語: スペースで区切られていないため、形態素解析器(Kuromoji など)を使って単語に分割します。 「全文検索サーバー」→「全文」「検索」「サーバー」のように分割されます。
中国語: 日本語と同様にスペースで区切られていないため、専用のトークナイザーが必要です。Fess では独自の中国語トークナイザーを使用して処理します。
Fess の多言語対応
Fess は OpenSearch をバックエンドとして利用しており、OpenSearch が提供する多言語 Analyzer を活用できます。 Fess のデフォルト設定では、日本語(Kuromoji)の Analyzer が有効になっていますが、他の言語にも対応可能です。
Fess は 20 以上の言語に対応したインデックス設定を持っており、ドキュメントの言語を自動検出して適切な Analyzer を適用する機能があります。
言語別の設定
日本語の設定
日本語のドキュメントは、Kuromoji Analyzer で処理されます。 Fess のデフォルト設定で日本語は適切に処理されるため、特別な追加設定は不要です。
ただし、以下のようなカスタマイズで検索品質を向上させることができます。
ユーザー辞書
業界固有の用語や社内用語を辞書に登録します。 管理画面の [システム] > [辞書] から Kuromoji 辞書を選択して設定できます。
例えば、「全文検索サーバー」が「全文」「検索」「サーバー」ではなく「全文検索サーバー」として一つのトークンとして扱われるようにしたい場合に有効です。
シノニム
日本語特有の表記揺れに対応します。
サーバー,サーバ
データベース,DB,ディービー
ユーザー,ユーザ,利用者
英語の設定
英語のドキュメントは、Fess の多言語インデックスにより自動的に適切な Analyzer で処理されます。
英語固有のカスタマイズとしては、以下があります。
ストップワード
英語の一般的なストップワード(the, a, an, is, are など)はデフォルトで除外されますが、業界固有のストップワードを追加することもできます。
ステマーオーバーライド
特定の語の語幹変換を上書きします。 管理画面の [システム] > [辞書] から Stemmer上書き辞書を選択して設定できます。
例えば、技術用語が意図しない変換をされる場合に使用します。
中国語の設定
中国語のドキュメントには、Fess 独自の中国語トークナイザーが使用されます。 Fess の多言語インデックスでは、簡体字・繁体字いずれの中国語テキストも適切にトークナイズされます。
中国語特有の考慮点としては、以下があります。
簡体字と繁体字の対応
ピンイン入力での検索対応
中国語固有のシノニム設定
多言語環境での検索体験
検索 UI の考慮
多言語環境では、検索 UI も利用者の言語に合わせる必要があります。
Fess では、ブラウザの言語設定に基づいて UI の言語を自動切替する機能があります。 日本語、英語、中国語を含む複数の言語で検索画面の UI が提供されています。
クロス言語検索の考慮
「日本語のキーワードで英語のドキュメントを見つけたい」というクロス言語検索のニーズもあります。 現時点では、完全な自動翻訳検索は Fess 単体では対応していませんが、以下の方法で部分的に対応できます。
多言語シノニムの設定
日本語と英語の対訳をシノニムとして登録します。
会議,meeting,ミーティング
報告書,report,レポート
仕様書,specification,スペック
これにより、「会議」で検索すると「meeting」を含む英語のドキュメントもヒットするようになります。
ラベルによる言語絞り込み
言語ごとにラベルを設定し、利用者が検索対象の言語を選択できるようにします。
lang-ja: 日本語ドキュメントlang-en: 英語ドキュメントlang-zh: 中国語ドキュメント
辞書管理のベストプラクティス
多言語環境では、辞書管理が検索品質に大きく影響します。
言語ごとの辞書整備
| 辞書 | 日本語 | 英語・中国語 |
|---|---|---|
| シノニム | 表記揺れ、略語、専門用語 | 略語展開、同義語 |
| ストップワード | 業界固有の不要語 | ドメイン固有の不要語 |
| ユーザー辞書 | 社内用語、製品名 | (Kuromoji 固有) |
| Protwords(保護語) | ステミングさせたくない語 | 技術用語、固有名詞 |
定期的な辞書メンテナンス
辞書は一度設定したら終わりではなく、定期的に見直す必要があります。
新しい製品名やプロジェクト名の追加
利用されなくなった用語の整理
検索ログから発見された新しいシノニム候補の追加
第8回で紹介した検索品質のチューニングサイクルと組み合わせて、辞書も継続的にメンテナンスしましょう。
まとめ
本記事では、日本語・英語・中国語が混在する環境での検索基盤構築について解説しました。
言語ごとに異なるトークナイズ処理の理解
Fess の多言語インデックスと Analyzer 設定
日本語(Kuromoji)、英語、中国語それぞれのカスタマイズ
多言語シノニムによるクロス言語検索への対応
辞書管理のベストプラクティス
多言語対応は一度の設定で完了するものではなく、利用状況に応じた継続的な改善が重要です。
次回は、検索システムの安定運用について扱います。