我是Lucene的新手,我真的很感激如何在索引中使用bigrams和trigrams標記。如何在Lucene 3.4.0中創建bigram/trigrams索引?
我使用下面的代碼,我已經修改它能夠計算術語頻率和重量,但我需要這樣做bigrams和trigrams也。我看不到標記化部分!我在網上搜索,一些建議的類在Lucene 3.4.0中不存在,因爲它們已被棄用。
有什麼建議嗎?
感謝, 萌
編輯:--------------------------------
現在我正在使用NGramTokenFilter,因爲mbonaci建議。 這是代碼的一部分,我將一個文本標記爲uni,bi和trigrams。但是它是在字符而不是字詞層面上完成的。
相反的: [H][e][l][l][o][HE][EL]
等
我在尋找:[Hello][World][Hello World]
int min =1;
int max =3;
WhitespaceAnalyzer analyzer = new WhitespaceAnalyzer(Version.LUCENE_34);
String text ="hello my world";
TokenStream tokenStream = analyzer.tokenStream("Data", new StringReader(text));
NGramTokenFilter myfilter = new NGramTokenFilter(tokenStream,min,max);
OffsetAttribute offsetAttribute2 = myfilter.addAttribute(OffsetAttribute.class);
CharTermAttribute charTermAttribute2 = myfilter.addAttribute(CharTermAttribute.class)
while (myfilter.incrementToken()) {
int startOffset = offsetAttribute2.startOffset();
int endOffset = offsetAttribute2.endOffset();
String term = charTermAttribute2.toString();
System.out.println(term);
};
謝謝,這個人完成了這項工作。 – user849934 2012-07-26 09:16:45