使用python从文本文件中获取不同的单词

时间:2018-11-06 23:25:20

标签: python filereader

我有一个问题,要从大约14000个句子的文本文件中获取不同的单词。现在我正尝试从此文本文件中提取每个不同的单词,因此我不再有任何双精度字,因此对于以后的哈希处理(例如哈希),它会使列表短很多(否则,哈希值将是相同的倍数)次)。

我已经使用python研究了多个选项,但唯一发现的发现是python中有一个独特的单词计数器。

有什么办法可以做到吗?

3 个答案:

答案 0 :(得分:0)

我认为您的问题已经暗示了一个好的解决方案:

“一个大约有14000个句子的文本文件”

with open('file.txt') as f:
    data = f.readlines() # assuming each line is a sentence or the like

“获取每个不同的单词”和“不同的单词计数器”和“哈希(否则我将多次具有相同的哈希)”

-取决于其用法,前面提到的set会为您完成此操作。您提到了散列,并使用散列集将对象本地化为存储桶。

unique_words = set()
for line in data:
    clean_line = line.rstrip()
    words = clean_line.split() # get all the words from one line
    unique_words.update(words) # throws these words into the set

这套玩具可以帮你弄傻

答案 1 :(得分:0)

您可以在python中使用set功能。集合不允许添加重复项。看看下面的代码。

word_set = set()
for line in open("test.txt",'r'):
    for word in line.split():
        word_set.add(word)
print(word_set)

文件test.txt包含:

Hello World and again Hello World

输出:

{'Hello', 'again', 'World', 'and'}

答案 2 :(得分:-2)

在问自己的问题之前,请尝试查看文档和其他堆栈溢出问题。很有可能它是否像这样通用(即不添加重复项),之前已经有人问过。

#Psudocode
my_set = {'words go here'}
for each line in file:
    for each word in line:
        my_set.add(word)          #Word will only be added if it is not already present, a property of the set class