我知道我可以在文本/数组中找到一个单词:
if word in text:
print 'success'
我想做的是阅读文本中的一个单词,并根据找到的单词不断计数(这是一个简单的计数器任务)。但问题是我真的不知道如何read
读已经读过的单词。到底:统计每个单词出现的次数?
我想过保存在一个数组中(甚至是多维数组,所以保存单词和它出现的次数,或者在两个数组中),每次在该数组中出现一个单词时求和 1。
那么,当我读一个词时,我能不能用类似的东西来读它:
if word not in wordsInText:
print 'success'
既然我们已经确定了你想要达到的目标,我可以给你一个答案。现在您需要做的第一件事是将文本转换为单词列表。虽然该split
方法看起来是一个不错的解决方案,但当句子以单词结尾,后跟句号、逗号或任何其他字符时,它会在实际计数中产生问题。所以这个问题的一个很好的解决方案是NLTK。假设您拥有的文本存储在名为 的变量中text
。您正在寻找的代码如下所示:
from itertools import chain
from collections import Counter
from nltk.tokenize import sent_tokenize, word_tokenize
text = "This is an example text. Let us use two sentences, so that it is more logical."
wordlist = list(chain(*[word_tokenize(s) for s in sent_tokenize(text)]))
print(Counter(wordlist))
# Counter({'.': 2, 'is': 2, 'us': 1, 'more': 1, ',': 1, 'sentences': 1, 'so': 1, 'This': 1, 'an': 1, 'two': 1, 'it': 1, 'example': 1, 'text': 1, 'logical': 1, 'Let': 1, 'that': 1, 'use': 1})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句