我怎样才能使用lucene的shingleanalyzerwrapper + standardanalyzer + indexreader?

时间:2011-05-11 14:10:57

标签: java lucene tokenize full-text-indexing frequency-analysis

我希望你能帮我解决这个问题。 我打算做什么: 给定一个正确的文本,我想计算每个词干化令牌ngrams的频率,而没有停用词(换句话说,停用词已被删除)。

情况如下: 我正在使用ShingleAnalyzerWrapper + StandardAnalyzer为IndexWriter索引一些文本,当我向IndexWriter添加文档时(如:indexwriter.addDocument(doc,analyzer);其中,分析符是ShingleAnalyzerWrapper + StandardAnalyzer)。

但问题是: 当我得到术语频率和术语时,停用词似乎被下划线代替。

这是输入:
String text =“我想要我想要链接”;
String text2 =“super by by hard easy”;

这是输出:
术语: |频率:6
术语:
_ | freq:2
术语:_ hard | freq:1
术语:_ i | freq:2
术语:_ link | freq:1
术语:easy | freq:1
术语:hard | freq:1
术语:难易|频率:1
术语:i | freq:2
术语:我想要| freq:2
术语:链接| freq:1
术语:super | freq:1
术语:super _ | freq:1
长期:想|频率:2
术语:想_ | freq:2

如果有什么不清楚,请问我,所以我试着让自己更清楚

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

请参阅http://www.lucidimagination.com/search/document/e5681676403a007b/can_i_omit_shinglefilter_s_filler_tokens了解一些解决方案。

在这种情况下,你可能想要在你的stopfilter上禁用位置增量,因为你不想引入一个禁止词所在的“洞”,你想假装它们从未存在过。