10/6のエントリにPhinlodaさんから反応が。 この場合なら、 そもそも「カレーライス」は「カレー・ライス」のように分離できる複合語であるし、 しかも、「カレー」で始まる言葉である。 だから、「カレー」でもヒットする必要があると思う。 「ライス」でヒットしても文句を言う人はあまりいないはず。 「アイス」で検索して「アイススケート」が一番上に出てきてもやっぱりげんなりしますよね。「アイスクリーム」なら多分OKでしょうが。 実際問題、マッチする部分を全部列挙できればあとは、スコアリングの問題になるので、n-gramで分割したトークンと形態素解析で切り出したトークンのスコアを変化させるとか、確率モデルで単語境界を推定して、マッチした部分文字列の「単語らしさ」をもってマッチングの重み付けに加えるとか、入力キーワードが辞書に載っているかどうかでスコアリングを切り替えたりとかいろいろ方法はありそ