gpt4 book ai didi

java - 如何在 Lucene 3.4.0 中创建二元/三元索引?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:12:45 24 4
gpt4 key购买 nike

我是 Lucene 的新手,我非常希望有一个关于如何在索引中包含二元组和三元组标记的示例。

我正在使用以下代码,我已经对其进行了修改,以便能够计算术语频率和权重,但我也需要对二元组和三元组执行此操作。我看不到标记化部分!我在网上搜索,一些建议的类在 Lucene 3.4.0 中不存在,因为它们已被弃用。

有什么建议吗?

谢谢,萌

编辑:--------------------------------

现在我按照 mbonaci 的建议使用 NGramTokenFilter。这是我标记文本以获得 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);
};

最佳答案

你需要看看shingles .那篇文章展示了如何做到这一点。

关于java - 如何在 Lucene 3.4.0 中创建二元/三元索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com