2016-07-11 7 views
2

현재 UIMA와 OpenNLP를 사용하여 문장의 단어에 레이블을 지정합니다. 한 단어에 두 번 이상 레이블을 지정할 수 있어야합니다. 예를 들어 David Cronenbergdirectorperson으로 표시되어야합니다.NLP를 사용하여 명사구에서 여러 명명 된 엔티티 유형 인식

사용자 지정 모델 파일이 있고 레이블 중 하나가 포함 된 모든 문장이 모델 파일에서 제거되어 다른 레이블이 검색되면 교육 과정이 올바르게 구현된다는 것을 알고 있습니다.

OpenNLP를 계속 사용하여 레이블 단어를 이중으로 사용할 수 있습니다. 이것을 할 수있는 방법이 있습니까? 그렇지 않은 경우 스탠포드 CoreNLP와 같은 다른 라이브러리에서 가능합니다.

List<NamedEntity> entities = JCasUtil.selectCovered(NamedEntity.class, aConstituent); 
    if (!entities.isEmpty()) { 
     // is never more than 1 
    } 

그리고 몇 가지 예제 훈련 데이터 (이 유사 라인의 수백이있다.)에 대한

<START:person> David Cronenberg <END> directed <START:film> Crash <END> . 
<START:director> David Cronenberg <END> directed <START:film> Scanners <END> . 
+0

OpenNLP 개발자에게 연락하십시오. 여기에서 도움을 얻을 수는 있지만 더 많이 찾을 수 있습니다. 오픈 소스라면 코드를 살펴보십시오. 거기에서 답을 찾을 수있을뿐만 아니라 해결책도 찾을 수 있습니다. –

답변

2

기차 별도의 분류 다음과 같습니다 :

레이블을 얻을 수있는 코드는 다음과 같습니다 다양한 유형의 명명 된 엔티티 (예 : 하나는 person이고 하나는 director입니다. 그런 다음 여러 OpenNlpNamedEntityRecognizer 구성 요소를 파이프 라인에 추가합니다. 각 구성 요소는 모델 중 하나로 구성됩니다.