任何想法为什么会发生,我使用的是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)未定义。
该消息的原因是什么以及如何解决?
答案 0 :(得分:0)
根据类PlainTextByLineStream的官方OpenNLP JavaDoc,存在两个构造函数。
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>
);
}
}
PlainTextByLineStream(InputStreamFactory inputStreamFactory, Charset charset)
可以看出,没有构造函数,例如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;)提供文字内容。
希望它有所帮助。