Java Lucene:如何考虑与原始术语的相似性?
假设有人搜索“鞋子”,我有两个文档,分别叫做“衣服”和“袜子”,它们都是作为“鞋子”的同义词添加的 这两个词在本学期的排名是相等的,但我希望“袜子”的排名高于“衣服” 假设我有一个函数,它接受两个单词并返回一个数值相似性分数。例如:Java Lucene:如何考虑与原始术语的相似性?,java,search,nlp,lucene,tf-idf,Java,Search,Nlp,Lucene,Tf Idf,假设有人搜索“鞋子”,我有两个文档,分别叫做“衣服”和“袜子”,它们都是作为“鞋子”的同义词添加的 这两个词在本学期的排名是相等的,但我希望“袜子”的排名高于“衣服” 假设我有一个函数,它接受两个单词并返回一个数值相似性分数。例如: 相似性(“鞋子”、“袜子”)=0.8 相似性(“鞋子”、“衣服”)=0.65 我怎样才能将相似性分数反馈给Lucene,让它将袜子的排名高于衣服 我认为理想情况下,我想要的是将每个术语的频率乘以其相似性。例如: tf('socks')*0.8 tf('衣服)*0.6
相似性(“鞋子”、“袜子”)=0.8
相似性(“鞋子”、“衣服”)=0.65
我怎样才能将相似性分数反馈给Lucene,让它将袜子的排名高于衣服
我认为理想情况下,我想要的是将每个术语的频率乘以其相似性。例如:
tf('socks')*0.8
tf('衣服)*0.65
这样,lucene评分公式的所有其他工作方式都保持不变,但同义词的重要性与它们与原始术语的相似性成比例
这可能吗?函数查询?扩展默认相似性?我认为这就是您可能要寻找的内容:。更多背景资料。我没有使用过这些(甚至没有确认它已经进入了8.5版)-因此我只是评论,没有回答。我想这就是你可能正在寻找的:。更多背景资料。我没有使用过这些(甚至没有确认它已经变成了8.5版)——因此我只是评论,没有回答。