2017-03-07 9 views
0

Stanford CoreNLP를 사용할 때 xml 출력 파일에 결과가 표시됩니다. 그 안에 스피커의 이름을 가진 열이 있습니다. 예를 들어대화에서 발표자 주석을 추출하려면 어떻게해야합니까?

 <word>Mike</word> 
     <lemma>Mike</lemma> 
     <CharacterOffsetBegin>0</CharacterOffsetBegin> 
     <CharacterOffsetEnd>4</CharacterOffsetEnd> 
     <POS>NNP</POS> 
     <NER>PERSON</NER> 

     *<Speaker>PER0</Speaker>* 

     <TrueCase>INIT_UPPER</TrueCase> 
     <TrueCaseText>Mike</TrueCaseText> 
     <sentiment>Neutral</sentiment> 

Java 코드로 스피커 결과를 조작하려면 어떻게해야합니까? 어떻게 결과를 향상시킬 수 있습니까? 예를 들어 대화에서 나는 PER0 대신 Mike를 얻고 싶습니다.

고맙습니다.

답변

0

를 사용하여 DOM XML 파서 :

How to read an XML File with the Java DOM Parser

+0

예, 그렇지만 생성 된 결과를 개선해야합니다. 나는 조작 할 수 있어야하는 Speaker Annotator가 있다고 생각합니다. –

+0

이 XML 스 니펫은 DOM 트리 깊숙이 있습니까? 여러 명의 스피커에 대해 이렇게 반복됩니까? Speaker를 자식으로 포함하는 루트 요소를 검색 한 다음 Mike라는 단어 요소를 반환 할 수 있습니다. –

0

첫째, 당신이 좀 더 명확하게하려고합니다 답변
에 대한 더 큰 @Thomas 감사이 코드에서
,

PrintWriter xmlOut = new PrintWriter("xmlOutput.xml"); 
    Properties props = new Properties(); 
    props.setProperty("annotators","tokenize, ssplit, pos, lemma, truecase, ner, parse,quote, mention, dcoref, sentiment"); 
    props.put("truecase.overwriteText", "true"); 
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);  
    Annotation annotation = new Annotation("Mike said : \"I vote for Hillary.\"\n 
              peter said : \"I vote for Donald.\""); 
    pipeline.annotate(annotation); 
    pipeline.xmlPrint(annotation, xmlOut); 

xmlOut.xml은 두 문장의 분석을 나타냅니다.

First Sentence

< 마이크가 말했다>, < :>, < ">와 <은">는 narator의 연설 (PER0)로 간주됩니다. > < ">와 <을">로 간주됩니다이 narator의 :
나는 힐러리에게 투표 <은

< 베드로가 말했다 1.

Second Sentence

사람의 연설>, <로 간주됩니다> 연설 (PER0).
< 나는 Donald에게 투표합니다. >는 베드로의 연설로 간주됩니다. => 여기에 유일한 차이점은 내가 소문자와 피터를 쓴 내가 대문자로 쓰기 할 때 스탠포드 CoreNLP에의 JavaDoc에서 검색하는 동안 스피커의 결과가 나 같은 스피커에 대해 이야기 클래스를 찾을 수 4.

이 될 것입니다 :
를 - CoreAnnotations .SpeakerAnnotation
- CoreNLPProtos.SpeakerInfo
- CoreNLPProtos.SpeakerInfo.Builder
- CoreNLPProtos.SpeakerInfoOrBuilder
- SpeakerInfo
- SpeakerInfo
- SpeakerMatch

먼저 xmlOut과 두 번째로 더 효율적인 결과를 얻고 싶습니다. DOM XML을 사용하지 않고이 클래스를 사용하여 스피커와 음성을 추출하는 방법을 알 수 있습니다.

관련 문제