构造函数PlainTextByLineStream(StringReader)未定义

时间:2018-06-03 16:51:12

标签: 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");
        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();
}

在编译上面的程序时我得到了错误 像这样

  

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

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

1 个答案:

答案 0 :(得分:0)

根据类PlainTextByLineStream的官方OpenNLP JavaDoc,存在两个构造函数。

  1. import React, {Component} from 'react'; import BrowserRouter from "react-router-dom/es/BrowserRouter"; import Switch from "react-router-dom/es/Switch"; import Route from "react-router-dom/es/Route"; import Redirect from "react-router-dom/es/Redirect"; import ScenePage from "../ScenePage/index"; import CoverPage from "../CoverPage/index"; import {INDEX, SCENE_PAGE} from "../../constantRoutes"; import JSONHeader from "../../newModel14Junio/JSONHeader"; export default class App extends Component { constructor(props) { super(props); const finishCallback = () => { this.setState({isAtlasLoading: false}); }; const header = new JSONHeader('/atlas/json/', finishCallback); this.state = { isAtlasLoading: true }; } render() { if (this.state.isAtlasLoading) { return (<div>Atlas loading</div>); } return ( <BrowserRouter> <div> <Switch> <Route exact path={INDEX} component={CoverPage}/> <Route path={SCENE_PAGE} component={() => <ScenePage IndexAtlas={window.IndexAtlas}/>}/> <Redirect from="*" to={INDEX}/> </Switch> </div> </BrowserRouter> ); } }
  2. PlainTextByLineStream(InputStreamFactory inputStreamFactory, Charset charset)
  3. 可以看出,没有构造函数,例如PlainTextByLineStream(InputStreamFactory inputStreamFactory, String charsetName)

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

    PlainTextByLineStream(StringReader reader)

    请注意,您必须提供// ... 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 } (此处为:&#34; mytext.txt&#34;)提供文字内容。

    希望它有所帮助。