2017-02-13 3 views
0

특정 텍스트에 대한 모든 참조를 찾으려면 일부 텍스트를 구문 분석하려고합니다. 예를 들어, 내 항목이 The Bridge on the River Kwai이고이 텍스트를 전달한 경우 굵게 표시된 모든 인스턴스를 찾을 수 있습니다. 강 Kwai에StanfordNLP에서 제공된 명사에 대한 모든 참조를 찾으십시오.

다리는 데이비드 감독 1957 년 영국 - 미국의 서사시 전쟁 영화 입니다 린과 윌리엄 홀든, 잭 호킨스, 알렉 기네스, 그리고 하야카와 셋슈 주연. 필름은 허구의 작품이지만, 은 역사적 배경으로,에 대해 1942-1943 년 버마 철도 건설을 빌립니다. 영화은 실론 (현재 스리랑카)에서 촬영되었습니다. 영화의 다리가 키툴 갈라 근처에 있었다.

지금까지 나의 시도는 각 CorefChain에 첨부 된 모든 언급을 거쳐 내 목표 문자열에 대한 사냥을 반복했습니다. 대상 문자열을 찾으면 전체 CorefChain을 추가합니다. CorefChain의 다른 항목도 같은 것을 참조합니다.

List<CorefChain> gotRefs = new ArrayList<CorefChain>(); 
String pQuery = "The Bridge on the River Kwai"; 

for (CorefChain cc : document.get(CorefCoreAnnotations.CorefChainAnnotation.class).values()) { 
    List<CorefChain.CorefMention> corefMentions = cc.getMentionsInTextualOrder(); 
    boolean addedChain = false; 
    for (CorefChain.CorefMention cm : corefMentions) { 
     if ((!addedChain) && 
       (pQuery.equals(cm.mentionSpan))) { 
      gotRefs.add(cc); 
      addedChain = true; 
     } 
    } 
} 

I는 CorefChains이 두 번째 목록을 반복은 각 쇄에 대해 언급 다시 검색하고 단계별. 그 문장에서 나는 어떤 문장이 문장에 내 물건에 대한 언급이 있는지를 보여줍니다.

for (CorefChain gr : gotRefs) { 
    List<CorefChain.CorefMention> corefMentionsUsing = gr.getMentionsInTextualOrder(); 
    for (CorefChain.CorefMention cm : corefMentionsUsing) { 
     //System.out.println("Got reference to " + cm.mentionSpan + " in sentence #" + cm.sentNum); 
    } 
} 

내 참조가 있지만 그다지 많지는 않지만 오탐 (false positives)이 많습니다. 이 글을 읽는 것으로부터 완전히 명백하게 알 수 있듯이, 나는 NLP에 관한 첫 번째 사실을 정말로 알지 못합니다 - 나는 완전히 잘못된 방식으로 가고 있습니까? StanfordNLP 파서가 이미 내가 할 일 중 일부를 수행 할 것인가? 어떤 방식 으로든 모델을 훈련해야합니까?

+0

나는 이것이 "실제로 할 수 없다"는 대답이 유효한 대답이라면 유효한 대답으로 받아 들여질 것이라는 점을 지적해야합니다. :) –

답변

1

나는 당신의 예에 문제가 당신이 영화 제목에 대한 참조를 찾고있는 것으로 생각하고

당신이 만약 ... 등 영화 제목, 책 제목을 인식 스탠포드 CoreNLP에서이 지원되지 않는다 이 예를 보자 :

"조는 노트북을 샀다. 그는 행복하다."

당신은 그것을 연결하는 것을 볼 수 :

"조"-> "그는"

"노트북"은 -> "은"

Coreference는 활성 연구이다 지역 및 심지어 최고의 시스템은 일반 텍스트에 대해 약 60.0의 F1을 생성 할 것으로 예상 될 수 있습니다. 이는 종종 오류가 발생한다는 것을 의미합니다.

+0

대단히 고마워요! 이 하나의 제목을 인식하도록 훈련시킬 수있는 방법이 있습니까? 나는 그것을 사람이나 무언가로 인식하는 것이 신경 쓰이지 않습니다. –