我刚接触Lucene.Net,在Lucene.Net中使用哪个分析器是最好的?另外,我想知道如何使用停用词和词干提取功能?
发布于 2008-12-02 12:22:29
我也是Lucene.Net的新手,但我知道Simple Analyzer会省略任何停用词,并对所有标记/工作进行索引。
这里有一个到Lucene信息的链接,顺便说一句,.NET版本几乎完美地重写了Java版本,所以Java文档在大多数情况下都应该工作得很好:http://darksleep.com/lucene/。在那里有一个关于三个分析器的部分,简单,停止和标准。
我不确定Lucene.Net是如何处理词干处理的,但是这个链接http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html?page=2演示了如何在Java语言中创建自己的分析器,并使用PorterStemFilter进行词干处理。
...The Porter词干分析算法(或"Porter词干分析器“)是一种从英语单词中去除更常见的词形和词形变化结尾的过程
我希望这能对你有所帮助。
发布于 2011-06-06 17:48:45
我找到的最好的分析器是StandardAnalyzer,您还可以在其中指定停用字。例如:
string indexFileLocation = @"C:\Index";
string stopWordsLocation = @"C:\Stopwords.txt";
var directory = FSDirectory.Open(new DirectoryInfo(indexFileLocation));
Analyzer analyzer = new StandardAnalyzer(
Lucene.Net.Util.Version.LUCENE_29, new FileInfo(stopWordsLocation));发布于 2016-12-31 05:10:42
这取决于您的要求。如果你的需求非常简单--例如,无意义的、无词干的搜索--那么StandardAnalyzer是个不错的选择。如果您查看analyzer类并熟悉Filters,特别是TokenFilter,您可以通过滚动您自己的分析器来exert an enormous amount of control您的索引。
词干分析器很棘手,深入了解您真正需要的词干类型是很重要的。我用过雪球词干分析器。例如,在英语Snowball词干分析器中,单词"policy“和"policy”具有相同的词根,并且在搜索词“policy”不是很热门的情况下,使用“policy”在文档上获得匹配。我已经实现了支持词干和非词干搜索的策略,因此可以避免这种情况,但了解其影响是很重要的。
当心像停用词这样的诱惑。如果您需要搜索短语"to be or not to be“,并且启用了标准停用词,则搜索将无法找到包含该短语的文档。
https://stackoverflow.com/questions/326015
复制相似问题