Python - Filtrer les mots en double

Plusieurs fois, nous avons besoin d'analyser le texte uniquement pour les mots uniques présents dans le fichier. Nous devons donc éliminer les mots en double du texte. Ceci est réalisé en utilisant le mot tokenization et les fonctions set disponibles dans nltk.

Sans préserver la commande

Dans l'exemple ci-dessous, nous commençons par tokeniser la phrase en mots. Ensuite, nous appliquons la fonction set () qui crée une collection non ordonnée d'éléments uniques. Le résultat a des mots uniques qui ne sont pas ordonnés.

import nltk
word_data = "The Sky is blue also the ocean is blue also Rainbow has a blue colour." 
# First Word tokenization
nltk_tokens = nltk.word_tokenize(word_data)
# Applying Set
no_order = list(set(nltk_tokens))
print no_order

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

['blue', 'Rainbow', 'is', 'Sky', 'colour', 'ocean', 'also', 'a', '.', 'The', 'has', 'the']

Préserver l'ordre

Pour obtenir les mots après avoir supprimé les doublons tout en préservant l'ordre des mots dans la phrase, nous lisons les mots et les ajoutons à la liste en l'ajoutant.

import nltk
word_data = "The Sky is blue also the ocean is blue also Rainbow has a blue colour." 
# First Word tokenization
nltk_tokens = nltk.word_tokenize(word_data)
ordered_tokens = set()
result = []
for word in nltk_tokens:
    if word not in ordered_tokens:
        ordered_tokens.add(word)
        result.append(word)
     
print result

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

['The', 'Sky', 'is', 'blue', 'also', 'the', 'ocean', 'Rainbow', 'has', 'a', 'colour', '.']