我提出了一个类似的问题,询问“文档”(维基百科文章、新闻故事等)之间的距离。我提出了一个单独的问题,因为搜索查询比文档小得多,而且噪音更大。因此,我不知道(并且怀疑)是否会在这里使用相同的距离度量。
无论是普通的词汇距离度量还是最先进的语义距离度量都是首选,后者的偏好更强。
我提出了一个类似的问题,询问“文档”(维基百科文章、新闻故事等)之间的距离。我提出了一个单独的问题,因为搜索查询比文档小得多,而且噪音更大。因此,我不知道(并且怀疑)是否会在这里使用相同的距离度量。
无论是普通的词汇距离度量还是最先进的语义距离度量都是首选,后者的偏好更强。
根据我的经验,只能根据词汇特征对某些类别的查询进行分类(由于自然语言的歧义)。相反,您可以尝试使用布尔搜索结果(站点或站点片段,不是文档,没有排名)作为分类特征(而不是单词)。这种方法在查询中有很大的词汇歧义但存在许多与查询相关的好网站(例如电影、音乐、商业查询等)的类中效果很好。
此外,对于离线分类,您可以在查询站点矩阵上进行 LSI。有关详细信息,请参阅“信息检索简介”一书。
余弦相似度度量在控制文档长度方面做得很好(如果不是完美的话),因此使用余弦度量和单词的 tf idf 权重比较 2 个文档或 2 个查询的相似度在任何一种情况下都应该很好。我还建议先对 tf idf 权重进行 LSA,然后计算余弦距离\相似度。
如果您正在尝试构建搜索引擎,我建议您使用免费的开源搜索引擎,如 solr 或弹性搜索,或者只使用原始 lucene 库,因为它们为您完成大部分工作,并且具有良好的内置方法处理查询以记录相似性问题。