Java 构造函数PlainTextByLineStream(StringReader)未定义

Java 构造函数PlainTextByLineStream(StringReader)未定义,java,opennlp,Java,Opennlp,知道为什么会这样吗,我使用的是java版本10.0.1 public void POSTag() throws IOException { POSModel model = new POSModelLoader().load(new File("lib/en-pos-maxent.bin")); PerformanceMonitor perfMon = new PerformanceMonitor(System.err, "sent"); POST

知道为什么会这样吗,我使用的是java版本10.0.1

public void POSTag() throws IOException {
        POSModel model = new POSModelLoader().load(new File("lib/en-pos-maxent.bin"));
        PerformanceMonitor perfMon = new PerformanceMonitor(System.err, "sent");
        POSTaggerME tagger = new POSTaggerME(model);
    String input = "Hi. How are you? This is Mike.";
    ObjectStream<String> lineStream = new PlainTextByLineStream(new StringReader(input));
    perfMon.start();
    String line;
    while ((line = lineStream.read()) != null) {

        String whitespaceTokenizerLine[] = WhitespaceTokenizer.INSTANCE
                .tokenize(line);
        String[] tags = tagger.tag(whitespaceTokenizerLine);

        POSSample sample = new POSSample(whitespaceTokenizerLine, tags);
        System.out.println(sample.toString());

        perfMon.incrementCounter();
    }
    perfMon.stopAndPrintFinalResult();
}
public void POSTag()引发IOException{
POSModel model=new POSModelLoader().load(新文件(“lib/en pos maxent.bin”);
PerformanceMonitor perfMon=新的PerformanceMonitor(System.err,“已发送”);
POSTaggerME tagger=新的POSTaggerME(型号);
String input=“嗨,你好吗?我是迈克。”;
ObjectStream lineStream=新的明文ByLineStream(新的StringReader(输入));
perfMon.start();
弦线;
而((line=lineStream.read())!=null){
字符串whitespaceTokenizerLine[]=WhitespaceTokenizer.INSTANCE
.标记化(行);
String[]tags=tagger.tag(whitespaceTokenizerLine);
POSSample sample=新的POSSample(whitespaceTokenizerLine,tags);
System.out.println(sample.toString());
perfMon.incrementCounter();
}
perfMon.stop和printfinalResult();
}
在编译上述程序时,我发现了一个错误 像这样

构造函数PlainTextByLineStream(StringReader)未定义


该消息的原因是什么?如何解决?

根据官方OpenNLP JavaDoc,二级构造函数是存在的

  • PlainTextByLineStream(InputStreamFactory InputStreamFactory,Charset Charset)
  • PlainTextByLineStream(InputStreamFactory InputStreamFactory,字符串charsetName)
  • 可以看出,没有构造函数,比如
    PlainTextByLineStream(StringReader阅读器)

    但是,在代码中,您可以使用现有构造函数之一,如下所示:

    // ...
    Charset charset = Charset.forName("UTF-8");
    InputStreamFactory isf = new MarkableFileInputStreamFactory(new File("myText.txt"));
    ObjectStream<String> lineStream = new PlainTextByLineStream(isf, charset);
    // ...
    while ((line = lineStream.read()) != null) {
       // process
    }
    
    /。。。
    Charset Charset=Charset.forName(“UTF-8”);
    InputStreamFactory isf=新的标记文件InputStreamFactory(新文件(“myText.txt”);
    ObjectStream lineStream=新的明文ByLineStream(isf,字符集);
    // ...
    而((line=lineStream.read())!=null){
    //过程
    }
    
    请注意,您必须提供对提供文本内容的
    文件的引用(此处为:“mytext.txt”)


    希望有帮助。

    你检查过我的答案了吗?这对你解决问题有帮助吗?