查找词频-无计数器

杰西卡(Jessica)

我是通过http://GrokLearning.com学习Python 3.3的初学者。

我的目标是编写一个单词计数器程序,该程序从用户读取多行纯文本,然后从用户输入中打印出每个不同的单词,并计算该单词出现的次数。所有输入将仅是小写字母-不含标点符号或数字。输出列表将按字母顺序排列。

该程序不接受任何与Counter或Collections的提交。当我提交使用Counter在Stack Exchange上找到的解决方案时,编辑器只是假装Counter代码不存在。

这是我到目前为止所拥有的:

all = []
count = {}
line = input("Enter line: ")
while line:
    word = line.split()
    line = input("Enter line: ")
    for w in word:
        count[w] = word.count(w)
for word in sorted(count):
    print(word, count[word])

我的代码存在问题:如果一个单词在多行中重复出现,那么该代码将仅计算单词出现的最后一行的出现次数(而不是总出现次数)。

> this is another test test
> test test test test test
> test test test
> 
another 1
is 1
test 3
this 1

我知道我没有使用列表“全部”。我尝试过all.append(word)列出用户输入的所有单词,但是我的代码计数为0(也许因为最后一行需要为空才能结束while循环?)

作为参考,我浏览了所有免费模块,但没有浏览任何付费模块。请原谅:由于我的知识有限,请以简单的方式解释您的答案。

海武

问题在这里:

for w in word:
    count[w] = word.count(w)

在您的代码中,您不会增加计数。取而代之的是,每次遇到一个单词时都要重置计数。例如,如果count['this']之前为1,则下次遇到该计数时,请将计数再次设置为1,而不是将其加1。

第二个问题是表达式word.count(w)它计算一个单词在一行中出现的次数,同时循环遍历每个单词。这意味着,如果您正确更新(而不是重置)计数,则计数将过多。

例如,如果该行具有三个“ test”,那么您将通过3 x 3 = 9更新计数。

要解决此问题,您需要解决两种情况:

  • 如果一个单词已经在计数中(即您之前见过该单词),则将计数增加1
  • 如果单词不在计数中,这是您第一次看到它,请将计数设置为1

这是一个建议:

for w in word:
    if w in count:
        count[w] += 1
    else:
        count[w] = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义周期功能,无计数器

来自分类Dev

R:TM软件包可从单列中查找词频

来自分类Dev

R:TM软件包可从单列中查找词频

来自分类Dev

查找没有词典或计数器的重复单词

来自分类Dev

如何通过SSH查找,删除和显示计数器?

来自分类Dev

查找-exec并增加计数器/进度

来自分类Dev

如何添加计数器以查找 xargs

来自分类Dev

在不使用包 ADT 上的计数器类的情况下计算词频的最简单方法

来自分类Dev

MapReduce查找词长频率

来自分类Dev

如何通过SNMP查找打印机的计数器

来自分类Dev

Android-如何使用Java文件中的计数器查找资源/图像名称?

来自分类Dev

如何通过SNMP查找打印机的计数器

来自分类Dev

如何在LinkedQueue.java中查找没有计数器变量的队列的大小

来自分类Dev

PHP的计数器

来自分类Dev

符号计数器

来自分类Dev

字典计数器

来自分类Dev

标签计数器

来自分类Dev

计数器的同步

来自分类Dev

GNU查找:获取-exec命令的运行计数器(以带有运行轨道号的mp3标记)

来自分类Dev

在词典列表中查找词典

来自分类Dev

词频计数Java 8

来自分类Dev

javascript中的词频计数?

来自分类Dev

实施持久计数器

来自分类Dev

PHP点击计数器

来自分类Dev

javascript递归计数器

来自分类Dev

原子线程计数器

来自分类Dev

程序的程序计数器

来自分类Dev

递增计数器多次

来自分类Dev

函数内的计数器