Python - Filtra parole duplicate

Molte volte, abbiamo bisogno di analizzare il testo solo per le parole univoche presenti nel file. Quindi, dobbiamo eliminare le parole duplicate dal testo. Ciò si ottiene utilizzando la parola tokenizzazione e le funzioni di impostazione disponibili in nltk.

Senza preservare l'ordine

Nell'esempio seguente prima tokenizziamo la frase in parole. Quindi applichiamo la funzione set () che crea una raccolta non ordinata di elementi unici. Il risultato ha parole uniche che non sono ordinate.

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

Quando eseguiamo il programma sopra, otteniamo il seguente output:

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

Preservare l'ordine

Per ottenere le parole dopo aver rimosso i duplicati ma preservando l'ordine delle parole nella frase, leggiamo le parole e le aggiungiamo all'elenco aggiungendole.

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

Quando eseguiamo il programma sopra, otteniamo il seguente output:

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