【发布时间】:2020-06-14 22:17:37
【问题描述】:
*更新,因为我之前的帖子已被删除并且出现错误。
我必须打开一个文本文件并将其导入字典。文本文件包含两条信息:产品 ID 和一串客户评论。我的目标是阅读提供的客户反馈,并计算每个产品 ID 的评论中出现好或坏关键字的次数。请注意,某些产品评论包含两次相同的好/坏词。
我的最终目标是能够显示每个产品出现的好词和坏词的数量。然后我将把好的和坏的关键词加在一起来显示总的关键词。我有以下用户帮助我整理的内容,但我被困在柜台上。另外,我最初创建了一个class,但被告知这没有必要。
当我试图通过字典中的 for 循环来计算每个好词和坏词的实例时,我的代码给了我一个 KeyError。
另外,我的计数器似乎设置不正确
我的问题是,如何正确创建一个计数器来计算每个产品 ID 的好词和坏词的总数?计数器必须考虑重复单词。
dictionary = {}
good = ("perfect", "nice")
bad = ("broken", "wrong", "terrible")
with open("products.txt","r") as products:
for line in products:
p = line.split(',',1)[0]
f = line.split(',',1)[1]
dictionary[p] = v.lower()
print(products)
for c in dictionary:
for word in dictionary[c].f().split():
if word in good:
dictionary[c]+=1
if word in bad:
dictionary[c]+=1
for k in dictionary.keys():
print(dictionary[k].productID,dictionary[k].good,dictionary[k].bad)
文本文件的前几行内容如下:
4321,物品在收到时损坏。糟糕的产品。
5432,不错的产品。
6321,我收到了错误的物品。现在我被告知我不能退回错误的物品。多么可怕!
【问题讨论】:
-
欢迎来到 Stack Overflow。请使用tour 并阅读How to Ask。您已经告诉我们您想做什么(尽管这有点令人困惑),但您还没有提出任何问题。您向我们展示的代码有什么问题?它以什么方式无法做到你想要的?
-
...您现在已向您的问题添加了一条错误消息。请始终,始终在此处提问时包含错误消息。他们在那里是有原因的,我们不应该要求他们。现在,不仅仅是告诉我们“我的代码在...时给了我一个 KeyError”,确切、完整的回溯是什么? “当我尝试……”并不清楚;带有确切代码的行号和回溯 sn-ps 为我们提供了 much 更多信息。
-
抱歉,正在尝试根据您的反馈进行更新。希望我的编辑有助于澄清。
-
您能否展示您的
products.txt的摘录? -
@PythonNoob 您需要显示该文本文件(不仅仅是描述它)并显示您的确切错误回溯。为此,您可以编辑您的问题并添加必要的内容..
标签: python string dictionary counter