현재 내 텍스트 처리 전체에 대해 bigram 검색을 위해이 코드를 실행 중입니다.Bigram을 발생 횟수로 정렬 NLTK
변수 alltext 내가 할 수 bigrams에 대한 주파수 발생에 대한 검색 위에
from nltk.tokenize import RegexpTokenizer
from nltk.corpus import stopwords
import re
tokenizer = RegexpTokenizer(r'([A-za-z]{2,})')
tokens = tokenizer.tokenize(alltext)
stopwords_list = stopwords.words('english')
tokens = [word for word in tokens if word not in stopwords.words('english')]
finder = BigramCollocationFinder.from_words(tokens, window_size = 2)
bigram_measures = nltk.collocations.BigramAssocMeasures()
for k,v in finder.ngram_fd.items():
print k,v
코드를 음절 추출이 코드를 실행 정말 긴 텍스트 (100 만 단어 이상)
입니다.
이 코드는 bigrams와 그 발생 횟수를 많이 출력합니다.
출력은 이와 유사합니다.
(('upper', 'front'), 1)
(('pad', 'Teething'), 1)
(('shoulder', 'strap'), 1)
(('outer', 'breathable'), 1)
(('memory', 'foam'), 1)
(('shields', 'inner'), 1)
(('The', 'garment'), 2)
......
type(finder.ngram_fd.items()) is a list.
빈도를 가장 높은 순서에서 가장 낮은 순서로 정렬 할 수 있습니까? 내 욕망 결과가 될 것입니다.
(('The', 'garment'), 2)
(('upper', 'front'), 1)
(('pad', 'Teething'), 1)
(('shoulder', 'strap'), 1)
(('outer', 'breathable'), 1)
(('memory', 'foam'), 1)
(('shields', 'inner'), 1)
대단히 감사합니다. nltk 및 텍스트 처리가 새로 도입되어 설명이 명확하지 않을 수 있습니다.
사용', V :
양자 택일로, 당신은 같은 일을
operator.itemgetter
모듈과 람다를 대체 할 수 t을 [-1], reverse = True) ' –