这是一个如何在 Python 中执行此操作的示例,这些概念在任何语言中都是相似的。
>>> import urllib2, string
>>> devilsdict = urllib2.urlopen('http://www.gutenberg.org/files/972/972.txt').read()
>>> workinglist = devilsdict.split()
>>> cleanlist = [item.strip(string.punctuation) for item in workinglist]
>>> results = {}
>>> skip = {'a':'', 'the':'', 'an':''}
>>> for item in cleanlist:
if item not in skip:
try:
results[item] += 1
except KeyError:
results[item] = 1
>>> results
{'': 17, 'writings': 3, 'foul': 1, 'Sugar': 1, 'four': 8, 'Does': 1, "friend's": 1, 'hanging': 4, 'Until': 1, 'marching': 2 ...
第一行只是获取帮助解决部分问题的库,如第二行,urllib2 下载 Ambrose Bierce 的“恶魔词典”的副本。下一行列出了文本中的所有单词,没有标点符号。然后创建一个哈希表,在这种情况下,它就像一个与数字相关联的唯一单词列表。for 循环遍历 Bierce 书中的每个单词,如果表中已经存在该单词的记录,则每次新出现的值都会在表中与该单词关联的值上加一;如果该词尚未出现,则将其添加到表中,值为 1(表示出现一次。)对于您正在谈论的情况,您可能希望更加关注细节,例如使用大写帮助识别仅在句子中间的专有名词,
为了进入词干化和复数化的东西,实验,然后研究第 3 方的工作,我喜欢 NLTK 的部分内容,这是一个学术开源项目,也是在 python 中的。