我有一个问题,要从大约14000个句子的文本文件中获取不同的单词。现在我正尝试从此文本文件中提取每个不同的单词,因此我不再有任何双精度字,因此对于以后的哈希处理(例如哈希),它会使列表短很多(否则,哈希值将是相同的倍数)次)。
我已经使用python研究了多个选项,但唯一发现的发现是python中有一个独特的单词计数器。
有什么办法可以做到吗?
答案 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