2017-10-18 1 views
0

파이썬에서 코퍼스 (텍스트 데이터)로 변환하려는 XML 파일이 있습니다. 은 다음과 같습니다파이썬에서 XML 파일을 읽고 NLP 작업을위한 텍스트 데이터로 만들려면 어떻게해야합니까?

<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE corpus SYSTEM "puns.dtd"> 

-<corpus lang="en" id="subtask2-heterographic"> 

-<text id="het_1"> 

<word id="het_1_1">'</word> 

<word id="het_1_2">'</word> 

<word id="het_1_3">I</word> 

<word id="het_1_4">'</word> 

<word id="het_1_5">m</word> 

<word id="het_1_6">halfway</word> 

<word id="het_1_7">up</word> 

<word id="het_1_8">a</word> 

<word id="het_1_9">mountain</word> 

<word id="het_1_10">,</word> 

<word id="het_1_11">'</word> 

<word id="het_1_12">'</word> 

<word id="het_1_13">Tom</word> 

<word id="het_1_14">alleged</word> 

<word id="het_1_15">.</word> 

</text> 
-<text id="het_2"> 

<word id="het_2_1">I</word> 

<word id="het_2_2">'</word> 

<word id="het_2_3">d</word> 

<word id="het_2_4">like</word> 

<word id="het_2_5">to</word> 

<word id="het_2_6">be</word> 

<word id="het_2_7">a</word> 

<word id="het_2_8">Chinese</word> 

<word id="het_2_9">laborer</word> 

<word id="het_2_10">,</word> 

<word id="het_2_11">said</word> 

<word id="het_2_12">Tom</word> 

<word id="het_2_13">coolly</word> 

<word id="het_2_14">.</word> 
</text> 
</corpus> 

어떤 방법으로, 또는 어떤 도서관은 내가

sample_corpus = [['When', 'Socrates', 'needed', 'to', 'buy', 'food', 'he', 'went', 'to', 'the', 'grocery', 'stoa', '.'],[ 
       'Acupuncture', 'is', 'a', 'jab', 'well', 'done', '.']] 

형식의이 종류에이를 만들기 위해 사용해야합니까? 나 혼자서 파싱을해야할까요, 아니면 저를 위해서 라이브러리가 있습니까? 코퍼스를 사용하면 결국에는 코퍼스의 바이그램 주파수를 얻게 될 것입니다.

+1

출력이 입력 한 코퍼스와 일치하지 않습니다. – AndyG

+0

그건 내가 원하는 형식 일뿐입니다. – user6792790

+0

xml 파일에서 목록 목록으로의 매핑이 어떻게 일어나는지 분명하게 알 수 있도록 정렬하는 데 도움이 될 것입니다. 그렇지 않으면 결과의 단어가 아무 것도 나타나지 않는 것처럼 보입니다. – AndyG

답변

0

xml 파일의 형식이 잘못되었습니다. XML 태그 (예 : 텍스트) 앞의 '-'을 제거하고 파일로 저장 한 후 아래 코드를 시도하십시오. 모든 고유 단어 목록이 목록에 저장됩니다. 변수 단어

import pprint as pp 
import xml.etree.ElementTree as ET 

root = ET.parse('XMLCorpus.xml') 
words = [] 
for wordElement in root.iter('word'): 
    words.append(wordElement.text) 

pp.pprint (words) 
관련 문제