Python - 过滤重复单词



很多时候,我们需要分析文本,只需要了解该文件中存在的唯一单词。因此,我们需要从文本中去除重复单词。我们需要使用 nltk 中可用的单词标记化和集合函数,才能实现这一点。

不保留顺序

在下面的示例中,我们首先将句子标记为词语。然后,我们应用 create() 函数,该函数创建一个独一无二元素的无序集合。结果包含唯一的单词,不按顺序排列。

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        

我们运行上述程序后,会得到以下输出 −

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