単純な自然言語処理 (NLP) について調べる必要があります。
理想的には、同じ正規化された値を持つユーザーを検索できるように、入力を正規化する必要があります。
- 最初に入力をトークン化し、単語を分離します。"Visit Spain" は ("Visit", "Spain") と "
- 同等の単語を探します。たとえば、多くの場合、大文字と小文字を区別できません。
- テーブル ルックアップを使用して、"Visit" => "Tour"、"See" => "Tour" など、より高度な単一単語の同等性を見つけます。この ("Visit", "Spain") と ("See", "Spain") を使用すると、両方とも ("Tour", "Spain") に変換されます。
- フレーズの同等性を探します。たとえば、「行く」=>「訪問」。これにより、("Go", "to", "Spain") は ("Tour", "Spain") になります。
- パターン マッチングを適用します。たとえば、 ("Tour" X "and" Y) => ("Tour" X), ("Tour" Y) は、("Tour", "Spain") と ("Tour", "France") という 2 つの個別の項目になる可能性があります。 」)。
- すべての変換を適用したら、結果の正規化されたアイテムを保存します。
あなたの仕事は、翻訳のクラスを定義し、それらの翻訳の多くのインスタンスを見つけて、それらを入力に適用することです。
正規化されたアイテムを取得したら、同じ正規化されたアイテムを持つ他のユーザーを検索できます。