lucene的Jarowinkler距离返回了奇怪的结果

lucene的Jarowinkler距离返回了奇怪的结果,lucene,jaro-winkler,Lucene,Jaro Winkler,我有一个包含一些短语的文件。使用lucene的jarowinkler,应该可以从该文件中获取输入的最相似短语 这是我的问题的一个例子 我们有一个包含以下内容的文件: //phrases.txt this is goodd this is good this is god 如果我的输入是这是好的,它应该首先从文件中获取“这是好的”,因为这里的相似性分数是最大的(1)。但出于某种原因,它返回:“这是好的”和“这是上帝”只 这是我的密码: 试试看{ 拼写检查器拼写检查器=新拼写检查器(新RAMDir

我有一个包含一些短语的文件。使用lucene的jarowinkler,应该可以从该文件中获取输入的最相似短语

这是我的问题的一个例子

我们有一个包含以下内容的文件:

//phrases.txt
this is goodd
this is good
this is god
如果我的输入是这是好的,它应该首先从文件中获取“这是好的”,因为这里的相似性分数是最大的(1)。但出于某种原因,它返回:“这是好的”和“这是上帝”只

这是我的密码:

试试看{
拼写检查器拼写检查器=新拼写检查器(新RAMDirectory(),新JaroWinklerDistance());
Dictionary Dictionary=新的明文字典(新文件(“src/main/resources/words.txt”).toPath();
IndexWriterConfig iwc=新的IndexWriterConfig(新的SHINGLEAnalyzerRapper());
拼写检查。索引字典(字典,iwc,false);
String wordForSuggestions=“这很好”;
int suggestionsNumber=5;
String[]suggestions=spellChecker.SuggestionSimular(wordForSuggestions,suggestionsNumber,0.8f);
if(建议!=null&&suggestions.length>0){
for(字符串:建议){
System.out.println(“你的意思是:“+word”);
}
}
否则{
System.out.println(“找不到对单词的建议:+wordForSuggestions”);
}
}捕获(IOE异常){
e、 printStackTrace();
} 

建议类似的
不会提供与输入相同的建议。引用源代码:

//不要为自己建议一个词,那太傻了

如果您想知道词典中是否有
wordForSuggestions
,请使用
exist
方法:

if(拼写检查器.exist(wordForSuggestions)){
//对一个显然拼写正确的单词做你想做的事
}