【问题标题】:Count word frequency without using count()不使用 count() 计算词频
【发布时间】:2021-09-16 08:41:44
【问题描述】:

Python 计算每个字符,但不计算单词。有什么要改变的吗?不使用 count()

dict = {}
def convert(sentence):
    return (sentence.split())
 

sentece =  input("write something: ")
print( convert(sentence))


for item in sentence:
    if item not in ordbok:
        dict[item] = 0
    dict[item] += 1
print(dict)

【问题讨论】:

  • 什么是 ordbok?
  • 首先,你不应该使用dict作为变量名。

标签: python frequency


【解决方案1】:

您可以使用collections.Counter 轻松计算任何东西。

from collections import Counter

word_count = Counter(sentence.casefold().split())

这里,word_count 将是一个字典,包含sentence 中的所有单词及其各自的计数。

【讨论】:

  • 为什么是casefold
  • 对于caseless matching,这样"The""the" 将被视为同一个词。
【解决方案2】:

请在下面找到您当前逻辑的问题:

  • 在转换(句子)之后得到的返回列表上迭代。

  • 如果你对句子进行迭代,它将计算字符数

请在下面找到更正的代码:

dict = {}

def convert(sentence):
    return (sentence.split())

sentence = input("write something: ")
print(convert(sentence))

for item in convert(sentence):
    if item not in dict:
        dict[item] = 0
    dict[item] += 1
print(dict)

【讨论】:

  • 非常感谢!
  • @victorialangoe 如果这解决了您的问题,请接受答案。
【解决方案3】:

您可以使用collections.Counter,如下所示:

from collections import Counter
Counter(convert(sentence))

您的完整代码:

def convert(sentence):
    return (sentence.split())
 
sentece =  input("write something: ")

from collections import Counter
dct = Counter(convert(sentence))

输出:

write something: victorialangoe victorialangoe

Counter({'victorialangoe': 2})

【讨论】:

    猜你喜欢
    • 2019-11-22
    • 2015-06-16
    • 2021-02-28
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2019-06-25
    • 2018-05-23
    相关资源
    最近更新 更多