Lucene 从给定查询中提取关键字

Lucene 从给定查询中提取关键字,lucene,nlp,search-engine,stemming,keyword-search,Lucene,Nlp,Search Engine,Stemming,Keyword Search,我正在实施基于关键字的搜索项目。因此,在处理输入的过程中,程序必须以给定的方式提取关键字: 忽略标点符号,即。!?,等 忽略有约束力的词语,如and、or、so等。 最后也是重要的任务是找到单词的词根,例如communiti或community必须转换为community。 我用过,但它不能正常工作 你说它不能正常工作是什么意思?Snowball是一种编写词干分析器的语言,因此您必须自己使用它来编写词干分析器。你尝试了什么,你真正需要什么?一些提示:你提到的任务通常被称为1标记化、2停止词删除和

我正在实施基于关键字的搜索项目。因此,在处理输入的过程中,程序必须以给定的方式提取关键字:

忽略标点符号,即。!?,等 忽略有约束力的词语,如and、or、so等。 最后也是重要的任务是找到单词的词根,例如communiti或community必须转换为community。
我用过,但它不能正常工作

你说它不能正常工作是什么意思?Snowball是一种编写词干分析器的语言,因此您必须自己使用它来编写词干分析器。你尝试了什么,你真正需要什么?一些提示:你提到的任务通常被称为1标记化、2停止词删除和3柠檬化,尽管词干可能足够了,也可能是拼写正常化。这将帮助您找到一些工具——如果您使用的是本示例中所暗示的英语文本,那么所有主要编程语言中都应该有现成的资源。例如,Snowball将社区更改为communiti或false更改为fals。但他们错了。所以,我需要的是从给定的单词中找到真正的单词。例如,在给定的情况下,community必须更改为community,false保持不变。好的:词干生成某种搜索键。它不一定是一个合适的词。但在搜索索引中这没关系,因为文本和查询都是以相同的方式处理的——它们都映射到同一个键,也可能只是一个数字而不是字符串。如果你需要合适的词语,你需要执行柠檬化,而不是词干。谢谢你的解释,现在已经很清楚了。在我的例子中,我应该使用柠檬化而不是词干。