Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Lucene:如何考虑与原始术语的相似性?_Java_Search_Nlp_Lucene_Tf Idf - Fatal编程技术网

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版)——因此我只是评论,没有回答。