Много раз, мы должны классифицировать доступный текст на различные категории по некоторым заранее определенным критериям. NLTK предоставляет такую функцию как часть различных корпусов. В приведенном ниже примере мы смотрим на корпус обзора фильмов и проверяем доступную категоризацию.
# Lets See how the movies are classified from nltk.corpus import movie_reviews all_cats = [] for w in movie_reviews.categories(): all_cats.append(w.lower()) print(all_cats)
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:
['neg', 'pos']
Теперь давайте посмотрим на содержимое одного из файлов с положительным отзывом. Предложения в этом файле размечены, и мы напечатали первые четыре предложения, чтобы увидеть образец.
from nltk.corpus import movie_reviews from nltk.tokenize import sent_tokenize fields = movie_reviews.fileids() sample = movie_reviews.raw("pos/cv944_13521.txt") token = sent_tokenize(sample) for lines in range(4): print(token[lines])
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:
meteor threat set to blow away all volcanoes & twisters ! summer is here again ! this season could probably be the most ambitious = season this decade with hollywood churning out films like deep impact , = godzilla , the x-files , armageddon , the truman show , all of which has but = one main aim , to rock the box office . leading the pack this summer is = deep impact , one of the first few film releases from the = spielberg-katzenberg-geffen's dreamworks production company .
Далее мы помечаем слова в каждом из этих файлов и находим наиболее распространенные слова, используя функцию FreqDist из nltk.
import nltk from nltk.corpus import movie_reviews fields = movie_reviews.fileids() all_words = [] for w in movie_reviews.words(): all_words.append(w.lower()) all_words = nltk.FreqDist(all_words) print(all_words.most_common(10))
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод: