検索
ホームページバックエンド開発PHPチュートリアルElasticSearchを使用した効率的な中国の検索

elasticsearch中国語検索:アナライザーとベストプラクティス

特に英語以外の言語を扱う場合、

分析と辞書化は、Elasticsearchのコンテンツインデックスにおいて重要です。中国人にとって、このプロセスは、漢字の特性と単語と文の間のスペースの欠如のためにさらに複雑です。

この記事では、デフォルトの中国のアナライザー、貧困プラグイン、CJKアナライザー、SmartCNアナライザー、ICUプラグインなど、ElasticSearchの中国コンテンツを分析するためのいくつかのソリューションについて説明し、その利点と短所と適用シナリオを分析します。

中国の検索の課題

漢字は、単語または形態素(言語で最小の意味のある単位)を表す表意文字です。結合すると、その意味は変化し、完全に新しい単語を表します。もう1つの困難は、単語と文の間にスペースがないことです。これにより、コンピューターが単語の始まりと終了場所を知ることが困難になります。

マンダリン(中国語公式言語と世界で最も広く使用されている中国語)のみを考慮しても、実際に中国語を書いていても、3〜4,000人を知る必要があります。漢字。たとえば、「火山」(火山)は、実際には次の2つの漢字の組み合わせです。

火:火
  • 山:山
  • 私たちの単語分詞は、これらの2つの漢字を分離するのを避けるのに十分賢くなければなりません。なぜなら、その意味は分離されているときとは異なるからです。

もう1つの難しさは、使用されるスペルバリアントです:

単純化された中国人:書道
  • 伝統的な中国人、より複雑で豊かな:帳簿
  • ピンイン、マンダリンのロマン化された形:shūfǎ
  • ElasticSearchの中国人アナライザー
現在、Elasticsearchは次の中国の分析装置を提供します: Lucene 4の非推奨クラスに基づいて、デフォルト

アナライザー

    プラグインは、もはや維持されていませんが、非常に優れた辞書に基づいています
  • Chineseアナライザー、
  • paodingアナライザー、正式にサポートされているプラ​​グイン
  • ICUプラグインとその単語セグメンテーションデバイス。
  • cjk
  • これらのアナライザーは大きく異なり、そのパフォーマンスを単純なテスト単語「携帯電話」と比較します。 「携帯電話」とは、「携帯電話」を意味します。これは、「ハンド」と「モバイル」を表す2つの漢字で構成されています。 「ji」という言葉は、他の多くの単語も構成します:
  • smartcn
  • フライト:航空券
  • ロボット:ロボット

機関銃:機関銃

    機会:機会
  • 「携帯電話」を検索した場合、Ramboが機関銃を所有していることに関するドキュメントが必要ないため、 強力な
  • APIを使用してこれらのソリューションをテストします。
  • デフォルトChineseアナライザー:すべての漢字を単語要素に分割するだけです。したがって、携帯電話と携帯電話の2つの語彙要素が得られます。 ElasticSearchのstandardアナライザーは、まったく同じ出力を生成します。したがって、Chineseは非推奨であり、まもなくstandardに置き換えられ、避ける必要があります。

  • paodingプラグイン:paodingほとんど業界標準であり、エレガントなソリューションと見なされます。残念ながら、ElasticSearchのプラグインは維持されておらず、いくつかの変更後にバージョン1.0.1でのみ実行できます。 (インストール手順は省略されており、元のテキストが提供されます)インストール後、新しいpaodingワードセグメントターと2つのコレクターの2つのコレクターを取得します。デフォルトでは、パブリックアナライザーがないため、新しいアナライザーを宣言する必要があります。 (構成手順は省略され、元のテキストが提供されます)両方の構成は、明確で一意の語彙要素で良い結果を提供します。また、より複雑な文を扱うときも非常にうまく振る舞います。 max_word_len most_word

  • アナライザー:テキストのみをバイナリに変換する非常に簡単なアナライザー。 「携帯電話」はcjkのみですが、これは良いことですが、「ランタンフェスティバル」(ランタンフェスティバル)などの長い単語を使用すると、ランタンフェスティバルとXiaoフェスティバルの2つの単語が生成されます。それぞれ「Xiao Festival」。 手机

  • プラグイン:非常に簡単にインストールできます。 (インストール手順は省略されており、元のテキストが提供されています)Luceneのsmartcnを使用して、新しいAnalyzerとsmartcn wordセグメントターを公開します。確率スイートを使用して、非表示のマルコフモデルと大量のトレーニングテキストを使用して、単語の最適なセグメンテーションを見つけます。したがって、かなり優れたトレーニング辞書が組み込まれています。私たちの例は正確に分解されています。 smartcn_tokenizer SmartChineseAnalyzer

  • ICUプラグイン:

    別の公式プラグイン。 (インストール手順は省略されており、元のテキストが提供されます)英語以外の言語を扱う場合は、このプラグインを使用することをお勧めします。 icu_tokenizericu_normalizerなどの多くの強力な分析ツールと、icu_folding単語セグメントターを開示します。単語頻度に関する情報を含む中国語と日本の辞書を使用して、漢字グループを推測します。 「携帯電話」では、すべてが正常であり、期待どおりに機能しますが、「ランタンフェスティバル」では、ランタンフェスティバルとフェスティバルの2つの単語が制作されます。これは、「ランタンフェスティバル」と「フェスティバル」が「ランタンフェスティバル」よりも重要だからです。 "。 一般。 icu_collation

結果の比較(省略されたフォーム、元のテキストが提供) 私の観点からは、

が最良の結果を得ました。 paoding分詞という言葉は非常に悪いです、smartcnは「ランタンフェスティバル」で少しがっかりしていますが、伝統的な中国人に対処するのは非常に得意です。 chinese icu_tokenizer

伝統的な中国の支持

ドキュメントまたはユーザー検索リクエストから従来の中国語を処理する必要がある場合があります。これらの従来の入力を現代の中国語に変換するための正規化ステップが必要です。smartcnpaodingなどのプラグインが正しく処理しないためです。

アプリケーションを介して処理するか、elasticsearch-analysis-stconvertプラグインを使用してElasticSearchで直接処理してみてください。従来のキャラクターと単純化されたキャラクターを両方向に変換できます。 (インストール手順は省略されており、元のテキストが提供されています)

最後のソリューションは、cjk:正しく分詞を入力できない場合、必要なドキュメントをキャプチャしてからicu_tokenizer(非常に良い)を使用して関連性を向上させる可能性が非常に高いです。

さらなる改善

ElasticSearch分析に最適な普遍的なソリューションはありません。また、中国語も例外ではありません。取得した情報に基づいて、独自のアナライザーを組み合わせて構築する必要があります。たとえば、マルチフィールドとマルチマッチクエリを使用して、検索フィールドにcjkおよびsmartcn分詞を使用します。

(FAQパートが省略され、元のテキストが提供)

以上がElasticSearchを使用した効率的な中国の検索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPロギング:PHPログ分析のベストプラクティスPHPロギング:PHPログ分析のベストプラクティスMar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

PHPにおける後期静的結合の概念を説明します。PHPにおける後期静的結合の概念を説明します。Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

フレームワークセキュリティ機能:脆弱性から保護します。フレームワークセキュリティ機能:脆弱性から保護します。Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター