Python - Phân loại văn bản

Nhiều khi, chúng ta cần phân loại văn bản có sẵn thành nhiều loại khác nhau theo một số tiêu chí được xác định trước. nltk cung cấp tính năng như một phần của kho tài liệu khác nhau. Trong ví dụ dưới đây, chúng tôi xem xét kho dữ liệu đánh giá phim và kiểm tra phân loại có sẵn.

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

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

['neg', 'pos']

Bây giờ chúng ta hãy xem xét nội dung của một trong các tệp với một đánh giá tích cực. Các câu trong tệp này được mã hóa và chúng tôi in bốn câu đầu tiên để xem mẫu.

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

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

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 .

Tiếp theo, chúng tôi mã hóa các từ trong mỗi tệp này và tìm các từ phổ biến nhất bằng cách sử dụng hàm FreqDist từ 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))

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

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