opennlp 형식의 일부 문장에 주석을 달아 자신의 모델을 학습해야합니다.
what is the risk value on <START:product> icm2500 <END>.
Delivery of <START:product> prd_234 <END> will be arrived late.
Watson is handling <START:product> router_34 <END>.
각 문장 개행 문자로 끝나고 문장에 줄 바꿈이있는 경우 어떻게 든 탈출해야합니다 : 예문 위해 당신은 형식은 다음과 같을 것이다 기록했다. 당신이 당신의 데이터에서이 같은 파일을 일단 는, 당신은 지금 당신이 NameFinder에서와 모델을 사용할 수 있습니다이
public static void main(String[] args){
Charset charset = Charset.forName("UTF-8");
ObjectStream<String> lineStream =
new PlainTextByLineStream(new FileInputStream("your file in the above format"), charset);
ObjectStream<NameSample> sampleStream = new NameSampleDataStream(lineStream);
TokenNameFinderModel model;
try {
model = NameFinderME.train("en", "person", sampleStream, TrainingParameters.defaultParams(),
null, Collections.<String, Object>emptyMap());
}
finally {
sampleStream.close();
}
try {
modelOut = new BufferedOutputStream(new FileOutputStream(modelFile));
model.serialize(modelOut);
} finally {
if (modelOut != null)
modelOut.close();
}
}
같은 모델을 훈련하는 자바 API를 사용할 수 있습니다.
제품 이름의 명확하고 가능한 짧은 목록이있을 수 있으므로 간단한 정규식 접근 방법을 고려해보십시오. 여기
는 NameFinder에서 조금을 커버 opennlp 워드 프로세서입니다 :
http://opennlp.apache.org/documentation/1.5.3/manual/opennlp.html#tools.namefind.training.tool
난 당신이 내가 내 자신의 모델을 생성하고 코드 HTTPS에 대한 입력으로 "위치 icm2500는"이 문자열을 통과 의미 말을했다 : //gist.github.com/johnmiedema/7e7330e1b9263267bdfc 내 자신의 moded를 사용하지만 작동하지 않았다 .. 그리고 나는 정규식 접근법에 대해서도 모른다 ?? – user3322698