刚刚开始使用Lucene.Net。我使用标准分析器索引了100,000行,运行了一些测试查询,并注意到如果原始术语是单数的,则复数查询不会返回结果。我知道snowball分析器增加了词干分析支持,听起来不错。然而,我想知道使用snowball比标准有什么缺点吗?随波逐流,我会失去什么吗?有没有其他的分析器可以考虑?
发布于 2010-10-07 01:52:04
是的,通过使用诸如Snowball之类的词干分析器,您正在丢失有关文本原始形式的信息。有时这将是有用的,有时则不是。
例如,Snowball会将“组织”词干为“器官”,因此搜索“组织”将返回带有“器官”的结果,而不会有任何得分惩罚。
这是否适合您取决于您的内容和您支持的查询类型(例如,搜索是否非常基本,或者用户是否非常复杂并使用您的搜索准确过滤结果)。您可能还希望研究不那么激进的词干分析器,比如KStem。
发布于 2010-10-10 19:08:16
snowball分析器将提高您的召回率,因为它比标准分析器更具侵略性。所以你需要对你的搜索结果进行评估,看看你的数据是否需要增加recall or precision。
发布于 2010-10-07 18:25:19
我刚刚完成了一个执行词汇化的分析器。这类似于词干提取,不同的是它使用上下文来确定单词的类型(名词、动词等)。并使用这些信息来推导出词干。它还会在索引中保留单词的原始形式。也许my library对你有用处。不过,它需要Lucene Java,而且我不知道有什么C#/.NET词汇表。
https://stackoverflow.com/questions/3875382
复制相似问题