2012-07-04 2 views
4

온라인 매뉴얼 (http://opennlp.apache.org/documentation/1.5.2-incubating/manual)에 따라 en-ner-person.train이라는 15k 라인 교육 데이터 문서를 구축 중입니다. /openlp.html).Open NLP Name Finder Training

제 질문은 : 교육 자료에 전체 보고서를 포함시켜야합니까? 또는 이름이있는 행만 포함합니까 : <START:person> John Smith <END>?

그래서 예를 들어 나는 나의 학습 데이터에서이 보고서 전체를 사용합니까 :

<START:person> Pierre Vinken <END> , 61 years old , will join the board as a nonexecutive director Nov. 29 . 
A nonexecutive director has many similar responsibilities as an executive director. 
However, there are no voting rights with this position. 
Mr . <START:person> Vinken <END> is chairman of Elsevier N.V. , the Dutch publishing group . 

또는 난 단지 내 교육 문서에서이 두 줄을 포함 않습니다

<START:person> Pierre Vinken <END> , 61 years old , will join the board as a nonexecutive director Nov. 29 . 
Mr . <START:person> Vinken <END> is chairman of Elsevier N.V. , the Dutch publishing group . 

답변

7

당신은 전체를 사용해야을 보고서. 이것은 시스템이 엔터티를 표시하지 않을 때 배울 수 있도록하여, 잘못된 음점을 향상시킵니다.

evaluation tool을 사용하여 측정 할 수 있습니다. 테스트를 위해 코퍼스의 일부 문장 (예 : 총 1/10)을 예약하고 다른 9/10 문장을 사용하여 모델을 훈련 시키십시오. 이름이있는 문장으로 전체 보고서와 다른 보고서를 사용하여 교육을 시도 할 수 있습니다. 결과는 precision and recall로 표시됩니다.

이름이있는 문장뿐만 아니라 전체 보고서로 테스트 샘플을 유지해야합니다. 그렇지 않으면 이름없는 문장으로 모델이 수행하는 방법에 대한 정확한 측정이되지 않습니다.

2

비록 모든 것이 훈련 된 모델의 가중치에 기여하지는 않지만 모든 것을 포함 할 것입니다.

교육 파일에서 사용되거나 사용되지 않는 항목은 모델을 학습하는 데 사용되는 기능 생성기에 의해 결정됩니다. 피쳐 생성기를 실제로 미세 조정하는 지점에 이르면 이미 모든 것이 포함되어있는 경우 최소한 훈련 파일을 다시 빌드 할 필요가 없습니다. '나는 완전히 코드의 글로브를 설명 할 수 Custom Feature Generation

AdaptiveFeatureGenerator featureGenerator = new CachedFeatureGenerator(
     new AdaptiveFeatureGenerator[]{ 
      new WindowFeatureGenerator(new TokenFeatureGenerator(), 2, 2), 
      new WindowFeatureGenerator(new TokenClassFeatureGenerator(true), 2, 2), 
      new OutcomePriorFeatureGenerator(), 
      new PreviousMapFeatureGenerator(), 
      new BigramNameFeatureGenerator(), 
      new SentenceFeatureGenerator(true, false) 
      }); 

, 그리고 천국 :

문서에서이 예제 기능 발생기는 이름 측정기에 사용되는 코드의 기본 하나 될 일이 좋은 문서를 발견했거나 소스를 통해 이해할 수 있지만 WindowFeatureGenerators는 토큰과 토큰의 클래스를 고려합니다 (예 : 토큰이 이미 사람으로 표시되어있는 경우). 검사중인 토큰.

이와 같이 엔티티가없는 문장의 토큰이 문장에 영향을 미칠 수 있습니다. 추가 문장을 자르면 다음과 같은 이름으로 끝나는 문장과 같이 부 자연스러운 패턴으로 모델을 연습 할 수 있습니다.