Python - Metin Sınıflandırma

Çoğu zaman, mevcut metni önceden tanımlanmış bazı kriterlere göre çeşitli kategorilere ayırmamız gerekir. nltk bu özelliği çeşitli kurumların bir parçası olarak sağlar. Aşağıdaki örnekte, film inceleme külliyatına bakıyoruz ve mevcut kategorizasyonu kontrol ediyoruz.

# 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)

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -

['neg', 'pos']

Şimdi olumlu bir inceleme ile dosyalardan birinin içeriğine bakalım. Bu dosyadaki cümleler belirteç haline getirilmiştir ve örneği görmek için ilk dört cümleyi yazdırıyoruz.

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])

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -

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 .

Daha sonra, bu dosyaların her birindeki kelimeleri belirtiyoruz ve nltk'deki FreqDist fonksiyonunu kullanarak en yaygın kelimeleri buluyoruz.

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))

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -

[(,', 77717), (the', 76529), (.', 65876), (a', 38106), (and', 35576), 
(of', 34123), (to', 31937), (u"'", 30585), (is', 25195), (in', 21822)]