は私が文を持っていると言う:「ジョンは彼のランボルギーニガヤルドに比べより彼のランボルギーニ・ウラカンに彼のペット子羊を取るのが好き」と私は、「ランボルギーニ」を含む辞書を持っています」 Lamborghini Gallardo "と" Lamborghini Huracan "があります。 "Lamborghini Gallardo"と "Lamborghini Huracan"というフレーズマッチや他の部分的なマッチ "Lamborghini"と "lamb"を実現する、大胆な用語を抽出する良い方法は何ですか?フレーズマッチを個別のキーワードに優先させる部分と完全フレーズ一致
弾性検索では、正確な用語一致、一致フレーズ、部分一致が提供されます。厳密な用語は明らかにここでは機能しません。この場合、文全体がフレーズとみなされるため、一致フレーズもどちらも一致しません。私は、文に関心のあるキーワードしかない場合、部分一致が適切であると信じています。以前のSOスレッドを調べると、関連すると思われるproximity for relevanceが見つかりましたが、これはしきい値を設定する必要があるため、これが「最善のオプション」であるかどうかわかりません。または、たとえelasticsearchよりも単純で優れた選択肢があるとしても(データベースとの単純なキーワードマッチングではなく、フルテキスト検索のほうが多いようです)
をいただき、ありがとうございますあなたの有益な返事ピーター。私の語彙には、(文書ではなく)照合したいキーワードとフレーズが含まれているため、データベースには帯状疱疹は必要ありません。私は帯状疱疹をもう一方の方法で使うことを考えていました。ユーザー検索用語から帯状疱疹を作成し、これらの帯状疱疹との「正常な」正確な一致照会を実行して、バイグラムまたはトリグラムを同定するか、または部分一致および最長一致帯状疱疹のスコアを高める(デフォルトで行う)。そうすれば、私はスペルミスをチェックしたり、キーフレーズを特定することもできます。これは理にかなっていますか? – dter
正しい。帯状疱疹は、あなたのキーフレーズ内の単一の用語の一致を避けるために、クエリ側であなたを助けます。あなたはおそらくフレーズクエリーと似たようなことをすることができますが、サーチャーによって入力された用語を制御することはできないので、うねりがあなたの希望する場所に近づくかもしれません。 –
この方法では、シングルスがbigrams/trigramのマッチングを有効にすることを望んでいます。ファジーフィルタはタイプミスを可能にし、ブーストは最も近いマッチを与え、同義語は同義語にマッチします。このアプローチがより単純で、より均等に)名前付きエンティティ認識モデルを訓練するのに効果的なのかどうかは疑問です... – dter