2016-10-27 10 views
0

나는 문제가 생겨서 내가 성취하려고하는 것을 요약 할 것이므로 분명히 나를 안내 할 수있다.nltk python을 사용하여 movie_review와 비슷한 코퍼스를 만드는 방법 3.4

내가 코퍼스에게 movie_reviews 유사한 뭔가를 만들 movie_review 만 2 개 범주를했지만,내 경우처럼 여러 개의 범주와 하위 범주이 곳. 예컨대

:

는 제가 는 'A', 'B', 'C', 'D'및 'E'와 같은 카테고리를 만들고자하는 my_corpus 등의 코퍼스를 말한다. 이 카테고리에는 'A'와 같은 하위 카테고리가 포함됩니다. 하위 카테고리는 'a1', 'a2', 'a3'등과 같이 다른 모든 카테고리에 대해서도 마찬가지입니다. (B, C, D 및 E). 이 하위 카테고리는 각각 에 다시 'a1'과 같이 'a1.1', 'a1.2' 등의 하위 카테고리가 있습니다. 마지막으로 가장 아래쪽 (리프) 은 텍스트 해당 범주 또는 하위 범주와 관련된 파일.

내 질문에 내가 그렇게 어쨌든이 같은 신체를 만들 수 있습니다 방법>

1, 내가 응답 큰 도움이 될 것입니다, 당신은 또한 링크에 저를 매핑 할 수 있습니다 안내하시기 바랍니다있는 내가 할하는 데 도움이 될 수 있습니다이

2> 나는 naivebayes가 너 한테 나 실행할 수있는 다른 너 한테뿐만 아니라 내 경우에는 여기에, movie_reviews의 NEG와 POS를 찾기 위해 같은이 경우에 제품군 I 새로 질문 한 질문을 찾아야 할 때 카테고리와 하위 카테고리 등이 관련되어 있습니까?

친절히 도와주세요.

+0

동일한 방식으로 구성하면 코드를 수정할 수 있습니다. 데이터는 어떻게 생겼습니까? –

+0

내 데이터는 텍스트 파일입니다 ... 왜냐하면 내가 노드처럼 사용하고 싶기 때문에 카테고리와 하위 카테고리가 필요합니다. 일부 작업에 대해 리프 구조 등을 사용합니다. –

+0

당신의 질문이지만, 저는 그것이 코퍼스 리더를 정의하는 것과 관련이 없다고 확신합니다. 즉, 별도의 질문입니다. – alexis

답변

2

CategorizedCorpusReader의 문서 (및/또는 출처)를 확인하십시오. 같은 :

>>> help(nltk.corpus.reader.CategorizedCorpusReader.__init__) 

이 기본 클래스이다; 실제로는 데이터 형식에 맞는 분류 된 리더를 사용하게됩니다. 파일이 일반 텍스트 인 경우 CategorizedPlaintextCorpusReader이됩니다. 당신이 독자를 만들 때 카테고리를 제공하는 파일을 통해 파일 이름에서 범주를 추출하는 정규 표현식을 통해 카테고리를 정의하거나 생성자에 직접 전달 사전을 통해 할 수 있습니다

- cat_pattern: A regular expression pattern used to find the 
    category for each file identifier. The pattern will be 
    applied to each file identifier, and the first matching 
    group will be used as the category label for that file. 

- cat_map: A dictionary, mapping from file identifiers to 
    category labels. 

- cat_file: The name of a file that contains the mapping 
    from file identifiers to categories. The argument 
    ``cat_delimiter`` can be used to specify a delimiter. 

이 더 있습니다 계층 적 카테고리를 직접 지원하지만 파일이 둘 이상의 카테고리에 속할 수 있으므로 직접 정렬 할 수 있습니다. 예를 들어 파일 donkey.txtanimalmammal에 할당 할 수 있습니다. nltk의 brown 코퍼스에는 여러 범주에 속하는 파일이 있으므로 구체적인 내용을 검사 할 수 있습니다 (cat_file 접근 방식 사용).

nltk 시스템은 카테고리를 하위 레벨 카테고리가 아닌 fileid로 매핑합니다. 내가 제안한대로 설정하면 mycorpus.words(categories=["A", "B"])을 작성하고 Aa1, Aa2 등의 모든 파일에서 단어를 가져올 수 있습니다. 카테고리 계층 구조를 노출하려면 코드를 직접 코딩해야합니다. 예를 들어 카테고리 트리를 반환하는 hierarchy 메소드로 리더 클래스를 확장 할 수 있습니다.

+0

감사합니다. 알렉시스 (Alexis)를 많이 사용합니다. 내가 말한 것처럼이 방법을 시도해보십시오. 아마도이 접근 방식이 도움이 될 것입니다. 또한 나는 코퍼스에 대한 연구도 할 것입니다. –