当前位置: 首页 > 面试题库 >

计算词频并由此制作字典

郑西岭
2023-03-14
问题内容

我想从文本文件中提取每个词,然后计算字典中的词频。

例: 'this is the textfile, and it is used to take words and count'

d = {'this': 1, 'is': 2, 'the': 1, ...}

我没有那么远,但是我看不出如何完成它。到目前为止,我的代码:

import sys

argv = sys.argv[1]
data = open(argv)
words = data.read()
data.close()
wordfreq = {}
for i in words:
    #there should be a counter and somehow it must fill the dict.

问题答案:

如果您不想使用collections.Counter,则可以编写自己的函数

import sys

filename = sys.argv[1]
fp = open(filename)
data = fp.read()
words = data.split()
fp.close()

unwanted_chars = ".,-_ (and so on)"
wordfreq = {}
for raw_word in words:
    word = raw_word.strip(unwanted_chars)
    if word not in wordfreq:
        wordfreq[word] = 0 
    wordfreq[word] += 1

对于更好的东西,请看正则表达式。



 类似资料:
  • 问题内容: 我有一个包含以下文件的Lucene-Index: 因此,这5个文档使用14个不同的术语: 每学期的频率: 为了易于阅读: 我现在想知道的是,如何获得一组文档的术语频率向量? 例如: 将导致输出: 删除所有零: 注意,结果向量仅包含该文档集的术语频率。不是整个索引的整体频率!在整个索引中,“行星”一词出现了4次,但是文档的原始集只包含2次。 天真的实现方式是仅遍历集合中的所有文档 ,创建

  • } 我真的不明白如何将我的变量“单词”放入我的加扰方法中,以便我可以将我放入的每个单词拆分为单独的字符串,当我这样做时,我只是声明一个新的数组单词吗?如何从上面抓取该变量。另外,我的system.out.println只是检查我的扫描仪是否正常工作。还是我做得对,它实际上是在分裂单词吗?

  • 问题内容: 我想计算一个文本文件中所有单词的频率。 如果目标文本文件如下所示,则应返回: 在一些帖子之后,我已经用纯python实现了它。但是,我发现由于巨大的文件大小(> 1GB),纯python方法是不够的。 我认为借用sklearn的能力是一个候选人。 如果让CountVectorizer为每一行计数频率,我想您将通过累加每一列来获得字频率。但是,这听起来有点间接。 用python计算文件中

  • 问题内容: 我认为我已经很好地理解了这一点,但我认为该陈述是错误的。怎么说包含空格,加1。 编辑: 我发现(感谢Blender)可以用更少的代码来做到这一点: 问题答案: 使用方括号,而不是括号: 或: 您也可以使用:

  • This is used to count the number of words in a variable. 计算变量里的词数 。 Example 5-7. count_words index.php: $smarty = new Smarty; $smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.'); $s

  • 问题内容: 我想在elasticsearch中更改评分系统,以摆脱对一个术语的多次出现计数的麻烦。例如,我想要: “德克萨斯州德克萨斯州” 和 “得克萨斯州” 得分相同。我发现elasticsearch表示该映射将禁用词频统计,但是我的搜索结果却不一样: } 任何帮助将不胜感激,我无法找到很多有关此的信息。 编辑: 我正在添加搜索代码,并在使用解释时返回了什么。 我的搜索代码: 当我搜索解释时,我