2016-11-10 4 views
0

나는 최근에 Standard Generalized Markup Language을 발견했습니다. 나는 EMILLE/CIIL Corpus에서 SGML 형식의 자료를 수집했다.Python을 사용하여 텍스트 파일에서 SGML 태그를 제거하는 방법은 무엇입니까?

EMILLE Corpus Documentation

I 파일에서 바로 텍스트 선물을 추출 할이이 신체에 대한 설명서입니다. 문서에서 코퍼스의 인코딩 및 마크 업 정보는 다음과 같습니다.

텍스트는 2 바이트 유니 코드 텍스트로 인코딩됩니다. 유니 코드에 대한 자세한 정보. 텍스트는 레벨 1 CES 준수 마크 업을 사용하여 SGML에 마크 업됩니다. 각 파일에는 텍스트의 출처를 지정하는 전체 머리글도 포함됩니다.

이러한 태그를 제거하는 데 어려움을 겪고 있습니다. 나는 '정규식'뿐만 아니라 '아름다운 수프'로 시도했지만 효과가 없습니다. 이것은 샘플 텍스트 파일입니다. 보존하고 싶은 언어는 펀잡 어입니다.

Sample text file

+0

이 XML은 여러 XML 파서는 거기 당신이 사용할 수있다. 파이썬에서'libxml' 라이브러리의 프론트 엔드 인'lxml'이 가장 좋으며 효율적입니다. 'ElementTree'는 순수한 파이썬 구현입니다. 심지어 이것에 대한 정규 표현식을 사용하려고하지 마십시오. 그것은 XML에서 매우 어렵습니다. – tdelaney

+0

또 다른 옵션은 XSLT를 사용하는 것입니다. 텍스트를 원하지만 '

...

'경계에서 단락을 나누기를 원한다고 가정하십시오. 이는 XSLT로 표현 될 수 있습니다 (다소 어이없는 경우). – tdelaney

+0

@tdelaney 감사합니다. 나는 lxml을 사용할거야. 완료되면 알려 드리겠습니다. – ssokhey

답변

1

는 다음을 시도해보십시오

from bs4 import BeautifulSoup 
import requests 

# Assuming this is the url where the file is 
html = requests.get('http://www.lancaster.ac.uk/fass/projects/corpus/emille/MANUAL.htm').content 

bsObj = BeautifulSoup(html) 

textData = bsObj.findAll('p') 

for item in textData: 
    print item.get_text() 
+0

안녕하세요, 감사합니다. 참으로 도움이되지만 결과물에는 몇 가지 사항이 누락되어 있습니다. 나는 이유를 모른다. 나는 그것에 대해 연구 중이다. – ssokhey

+0

작동 중입니다. 지연된 응답에 대해 유감스럽게 생각합니다! – ssokhey