2016-10-26 13 views
0

基本的には、kNNアルゴリズムを使用して料理ブックアプリの検索推奨エンジンのようなものを構築したいと考えています。ユーザーは、「鶏」、「鶏の胸」、「鶏肉」、「骨なしの鶏」などのようなものを入力すると、それらの推奨は「鶏」になるという考えがあります。私は多かれ少なかれkNNのバージョンを実装しましたが、問題は距離を測定することです。私の最初の選択はLevenstein距離でしたが、問題は入力に複数の単語を入れることが可能であるということです。現時点では、単語単位でLevensteinの距離を計算して平均を取っていますが、これはまだ完全な解決策ではありません。誰かが何か良いことを示唆してくれることを望んでいた。私はデータセットが非常に珍しいことを認識しています。だから、私のデータセットにあるものに多く依存することになります。ここでkNNが不要で、文字列を比較すればいいかもしれないと思うのですが、あなたは正しいかもしれませんが、まだそれらを比較する別の方法が必要です。アルゴリズムは「鶏肉」と「七面鳥の肉」を正確に区別し、入力(スペル)の小さな間違いを許すことができるということです。明らかに、正確である必要はありません。おそらく重要な点のもう1つは、ユーザーの入力を何らかの形で分類しなければならないということです。それ以外の場合は使用できません。したがって、ユーザーが分類できないものを入力した場合、ユーザーは再度試行することが期待されます(アルゴリズムが最終的に提案を見つけ、それほど迷惑にならないことが期待されます)。cookbook-appリコメンデーションエンジンのkNN実装の文字列距離関数

答えて

0

文字の距離ではなく、意味的な距離が必要なようです。これは挑戦的ですが、一見を見てくださいhttps://en.wikipedia.org/wiki/Word2vec

+0

恐ろしいですが、興味をそそるように見えます!ありがとうございました! –

関連する問題