gpt4 book ai didi

lucene - 如何使用 Lucene 库提取 n-gram?

转载 作者:行者123 更新时间:2023-12-04 05:51:53 25 4
gpt4 key购买 nike

我在尝试围绕 Lucene 库时遇到了困难。这是我到目前为止:

public void shingleMe()
{

try
{
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
FileReader reader = new FileReader("test.txt");

ShingleAnalyzerWrapper shingleAnalyzer = new ShingleAnalyzerWrapper(analyzer, 2);
shingleAnalyzer.setOutputUnigrams(false);

TokenStream stream = shingleAnalyzer.tokenStream("contents", reader);
CharTermAttribute charTermAttribute = stream.getAttribute(CharTermAttribute.class);

while (stream.incrementToken())
{
System.out.println(charTermAttribute.toString());
}

}

catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

}

它在 stream.incrementToken() 处失败。我的理解是,ShingleAnalyzerWrapper 使用另一个分析器来创建一个木瓦分析器对象。从那里,我将其转换为 token 流,然后使用属性过滤器对其进行解析。但是,它总是导致此异常:

线程“main”中的异常 java.lang.AbstractMethodError: org.apache.lucene.analysis.TokenStream.incrementToken()Z

想法?提前致谢!

最佳答案

AbstractMethodError 不会因错误的 API 使用而发生——它必须是针对一个 JAR 编译然后针对另一个 JAR 运行的结果。由于您在这里同时使用 Lucene Core 和 Lucene Analyzers JAR,请仔细检查您的编译时和运行时 JAR 类路径。

关于lucene - 如何使用 Lucene 库提取 n-gram?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963660/

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