특정 텍스트에 대한 모든 참조를 찾으려면 일부 텍스트를 구문 분석하려고합니다. 예를 들어, 내 항목이 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 파서가 이미 내가 할 일 중 일부를 수행 할 것인가? 어떤 방식 으로든 모델을 훈련해야합니까?
나는 이것이 "실제로 할 수 없다"는 대답이 유효한 대답이라면 유효한 대답으로 받아 들여질 것이라는 점을 지적해야합니다. :) –