gpt4 book ai didi

java - 无法转换 opennlp Parse 的结果

转载 作者:行者123 更新时间:2023-11-30 09:15:40 24 4
gpt4 key购买 nike

我正在使用 opennlp 的 Parse 模型来解析一行输入,我的代码:

public void parse(String input){
InputStream modelIn = null;
try {
modelIn = new FileInputStream("en-parser-chunking.bin");
ParserModel model = new ParserModel(modelIn);
opennlp.tools.parser.Parser parser = ParserFactory.create(model);
opennlp.tools.parser.Parse topParses[] = ParserTool.parseLine(input, parser, 1);
for (opennlp.tools.parser.Parse p : topParses){
p.show();

}
}catch (IOException e) {
e.printStackTrace();
}finally {
if (modelIn != null) {
try {
modelIn.close();
}
catch (IOException e) {
}
}
}
}

如果我的输入是这是一条测试线p.show 显示 (TOP (S (NP (DT this)) (VP (VBZ is) (NP (DT a) (NN test) (NN line)))))但是 p.toString 显示 this is a test line

如何让它和 p.show 一样?

最佳答案

这对我有用...你必须使用重载显示,它会在内部更新传入的 StringBuffer 引用

public void parse(String input){
InputStream modelIn = null;
try {
modelIn = new FileInputStream("en-parser-chunking.bin");
ParserModel model = new ParserModel(modelIn);
opennlp.tools.parser.Parser parser = ParserFactory.create(model);
opennlp.tools.parser.Parse topParses[] = ParserTool.parseLine(input, parser, 1);
for (opennlp.tools.parser.Parse p : topParses){

StringBuilder sb = new StringBuilder(input.length() * 4);
p.show(sb);
//sb now contains all the tags
System.out.println(sb);

}
}catch (IOException e) {
e.printStackTrace();
}finally {
if (modelIn != null) {
try {
modelIn.close();
}
catch (IOException e) {
}
}
}
}

关于java - 无法转换 opennlp Parse 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799428/

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