在Python中按行计算文件中单词的出现次数

时间:2019-09-24 17:20:27

标签: python dictionary word-frequency

所以我是Python的新手,给了我两项任务。

我要做的是计算文件中每个单词和单词对的频率。

另一项任务是按行计算单词和单词对的出现 (如果我得到(x,y)和(y,x),就可以了,因为我们在评估中认为它们是不同的)

我希望统计单词在行中出现的次数,因此在一行中找到一个单词后,它的计数为1,并且不再在该行中对该单词进行计数。如果它出现在下一行,它的计数为2,依此类推!

示例:     你好,世界     你好,猫,世界上的所有猫,你好!     世界是圆的,世界不是平坦的

我想要[“ hello”,2] [“ world”,3],因为它们分别出现在2行和3行中 对于配对,将为[(hello,world),2],因为这些单词在同一行中出现两次。

我做了什么: 我有一个循环,逐行循环并标记文件,因此每一行都给了我其中所有单词的列表。 我有一个针对单词和单词对的字典,但是它会计算每次出现的次数,而且我不知道如何更改它以免单词出现在同一行中。

感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决此问题。最好的选择是逐行处理,而不是立即对所有内容进行标记,就像您做后者一样,您会丢失有关哪些单词位于哪些行中的信息。

最好的解决方案是首先删除每个字符串中所有重复的单词。最简单的解决方案是列出集合。集合只能具有唯一元素,因此,如果您尝试将重复元素添加到集合中,则不会添加该元素。

一旦有了每行唯一的集合列表,您就可以遍历所有集合并将单词添加到字典中,键为单词,值为单词出现次数的增量。