2013-12-18 2 views
1

NLTK 책의 6 장, 2.1 절에서 코드는 문서 분류를 위해 영화 리뷰 코퍼스를 호출합니다. 다음과 같이이 책의 코드는 다음과 같습니다 NLTK 문서 분류

from nltk.corpus import movie_reviews 
documents = [(list(movie_reviews.words(fileid)), category) 
     for category in movie_reviews.categories() 
     for fileid in movie_reviews.fileids(category)] 
random.shuffle(documents) 

내가 내 자신의 데이터 세트 쉼표 이메일의 텍스트와 범주에 대한 긍정적 또는 부정적 사이 (텍스트, 카테고리)를 분리합니다. 내 파일에 .words()를 호출 할 수 있습니까? 또한 movie_reviews.categories()를 호출 할 때 코드의 의미는 무엇입니까? 코드에 필요한 형식으로 데이터를 구성하는 방법을 이해하는 데 문제가 있습니다. 개인 코퍼스 파일을 살펴 봤지만 여기에서 무엇을해야 할지를 알 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 감사!

+0

안녕하세요! 파일에서'words()'를 호출 해 보았습니까? 그렇다면 어떤 일이 일어나거나 어떤 종류의 오류가 발생합니까? 'categories()'는 어떨까요? – arturomp

+0

또한이 질문을 보셨습니까? http://stackoverflow.com/q/4951751/583834 – arturomp

답변

1

words()the documentation에 따라 "주어진 파일을 단어 및 구두 기호 목록으로"반환합니다. 그 점에서, 당신은 분명히 당신이 가지고있는 텍스트 파일에 nltk.corpus.words()로 전화 할 수 있습니다.

설명서에 categories(), further down은 "이 코퍼스 또는 파일에 대해 정의 된 범주의 목록을 반환합니다"라고 표시되어 있습니다. 그러나 그것의 근원은 조금 더 모호합니다. 다른 코로나는 그들의 범주를 나타내는 다른 방법을 가지고 있음을 주목하십시오. movie_reviews은 디렉토리 이름을 통해 수행하지만, abcreuters은 파일에 명시적인 카테고리가 있습니다. qc에는 텍스트와 동일한 파일에 범주가 있습니다.

이 동작을 복제 할 수 있는지 확인하기 위해 자신의 데이터를 실험 해 볼 수도 있지만 합리적인 첫 번째 단계는 데이터 하위 집합을 포함하는 디렉토리를 nltk_data/corpora에 추가하고 형식 당신은 다른 조직에서 볼 수 있습니다.