Учебники

Python — фильтр дублирующих слов

Часто нам нужно анализировать текст только на предмет уникальных слов, присутствующих в файле. Итак, нам нужно исключить повторяющиеся слова из текста. Это достигается с помощью слова tokenization и набора функций, доступных в nltk.

Без сохранения заказа

В приведенном ниже примере мы сначала разбиваем предложение на слова. Затем мы применяем функцию set (), которая создает неупорядоченную коллекцию уникальных элементов. В результате есть уникальные слова, которые не упорядочены.

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

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:

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

Сохранение заказа

Чтобы получить слова после удаления дубликатов, но при этом сохраняя порядок слов в предложении, мы читаем слова и добавляем их в список, добавляя его.

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        

Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод: