2012-05-29 2 views
0

에서 사용자 지정 nltk corpus를 만들면 nltk에서 사용자 지정 자료를 만드는 데 여전히 probs가 있습니다. 나는 태그가있는 문장의 텍스트 파일을 가지고 있는데, 각 항목은 ... word/tag 형식의 문자열이다. 나는이 물건을 사용하여 술래 잡이를 훈련시키고 싶다. 다양한 taggers 유형을 교육하는 train-tagger라는 nltk 패키지를 사용하려고합니다. 2 개의 질문. 1) train-tagger는 텍스트 파일을 입력으로 사용하거나 nltk corpus 객체 만 사용할 수 있습니까? 2) 코퍼스 만 사용하는 경우 텍스트 파일에서 텍스트를 만드는 방법은 무엇입니까? 내가 코퍼스를 만들려면 다음 코드를 시도 ...많은 게시물을 읽은 후 태그가 지정된 텍스트 파일

import nltk 
from nltk.corpus import PlaintextCorpusReader 
corpus_root = './' 
newcorpus = PlaintextCorpusReader(corpus_root, '.*') 
print newcorpus.raw('IOBHarrisonsTraining.txt') .... this is my tagged text file 

작동하지 않지만 출력을 찾을 수 없습니다. 이 코드가 실행되는 폴더 나 nltk_data/corpora에서 생성 된 코퍼스가 있어야하지만 아무 것도 발견되지 않습니다. 내가 만든 'newcorpus'를 저장하는 코퍼스 모듈에 몇 가지 메소드가 있습니까? 그런 다음 열차 타기를 할 수없는 사람으로 사용할 수 있습니까? 또한, 태그가있는 문장 파일을 PlaintextCorpusReader 또는 문장의 태그가없는 문장에 대한 입력으로 사용해야합니까?

답변

3

NLTK corpora는 텍스트 파일의 모음으로 저장됩니다. NLTK 코퍼스 기능은 다양한 파일 형식에 대한 여러 가지 독자 클래스로 구성됩니다. nltk.corpus.reader에서 찾을 수 있습니다. nltk.corpus 모듈은 nltk_data의 corpora에 대한 바로 가기도 제공합니다. 그들은 코퍼스 파일에 대한 경로로 적절한 리더 클래스를 시작합니다. 그러나 nltk.corpus에서 새로운 코퍼러리가 마술처럼 객체로 나타나지는 않습니다. 독자적인 것을 읽으려면 적절한 독자 클래스를 인스턴스화하십시오.

gutenberg = LazyCorpusLoader(
    'gutenberg', PlaintextCorpusReader, r'(?!\.).*\.txt') 

PlaintextCorpusReader가 다른 모든 리더 클래스를 찾을 수 있습니다 nltk.corpus.reader에서 가져온 : 다음 찾을 평 예를 들어, NLTK/신체/을 초기화하기. LazyCorpusReader에 의존하지 않고 직접 사용할 수 있습니다. 설명서를 확인하십시오.

그러나 실제로 지원되는 다양한 형식으로 작성하는 것에 대한 지원은 없습니다. 그렇게하기 위해, 당신과 비슷한 코퍼스를 찾아 그 형식을 모방하십시오. 그런 다음 동일한 독자를 사용하여 코퍼스를 읽을 수 있습니다. 예를 들어, Brown corpus는 단어/태그 형식의 공백으로 분리 된 토큰으로 구성됩니다.

관련 문제