アプリケーション用の単純な検索エンジンを作成する必要があります。次のように単純化しましょう: いくつかのテキスト (大量) があり、関連する結果を検索して表示する必要があります。
私はこの素晴らしい記事に基づいていくつかのことを拡張しましたが、それは私にとってはかなりうまくいきます。
しかし、単語を用語にステミングすることに問題があります。たとえば、"annotation"、"annotations" などの単語は "annot" に語幹変換されますが、何かを検索しようとすると、予期しない結果が表示されると想像してください。
- 「あんの」 - 何もない
- 「annota」 - 何もないなど
「annot」という単語のみが関連する結果をもたらします。では、期待どおりの結果が得られるように検索を改善するにはどうすればよいでしょうか? 「annot」には「anno」が含まれており、「annota」は「annot」よりもわずかに多いためです。常に含むを使用することは明らかに解決策ではありません
最初のケースで三分探索木を使用できる場合、2番目のケースでは何をすべきかわかりません。
どんなアイデアでも非常に役に立ちます。
アップデート
oleksiiは私に n-grams hereを指摘してくれました。
だから質問:
- 私のニーズに最適なデータ構造はどれですか
- n-gram の適切なインデックス付け方法