Python - Classification de texte

Plusieurs fois, nous devons classer le texte disponible en différentes catégories selon certains critères prédéfinis. nltk fournit cette fonctionnalité dans le cadre de divers corpus. Dans l'exemple ci-dessous, nous examinons le corpus de critiques de films et vérifions la catégorisation disponible.

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

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante -

['neg', 'pos']

Examinons maintenant le contenu de l'un des fichiers avec une critique positive. Les phrases de ce fichier sont tokenisées et nous imprimons les quatre premières phrases pour voir l'exemple.

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

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante -

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 .

Ensuite, nous tokenisons les mots dans chacun de ces fichiers et trouvons les mots les plus courants en utilisant la fonction FreqDist de 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))

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante -

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