在python中按ID统计单词的出现次数

2024-05-23 22:37:33 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个文件的内容,我的问题是如何计算单词“optimus”在不同ID中的出现次数

    ID67    DATEUID Thank you for choosing Optimus prime. Please wait for an Optimus prime to respond. You are currently number 0 in the queue. You should be connected to an agent in approximately TIMEUID.. You are now chatting with AGENTUID   0
    ID67    Optimus MEMORYUID Hi there! Welcome to Optimus prime Web Chat. How can I help you today?        1       
    ID67    Optimus DATEUID I like to pay  prepaid from CURRENCYUID with NUMBERUID expiry on whateve date. my phone no is PHONEUID 2
    ID12120 0 0 0 is the number. They are open 0/0 so you can ring them anytime. SMILEUID   1
    ID12120 Thanks Optimus, I will give them a call. Thanks for your help! HELPUID  2
    ID5552  is the number. They are open 0/0 so you can ring them anytime. SMILEUID 1
    ID5552  Thanks Optimus, I will give them a call. Thanks for your help! HELPUID  2

for line in chat.txt:
   print line, ####print lines and count optimus word for the particular id..

输出应该是

^{pr2}$

Tags: thetoinyounumberforhelpcan
2条回答

一种方法是对计数使用defaultdict

from collections import defaultdict
d = defaultdict(int)
with open("chat.txt") as f:
    for line in f:
        id, data = line.split(None, 1)
        d[id] += data.lower().count("optimus")
>>> from collections import Counter
>>> c = Counter()
>>> for line in chat.txt:
...     c[line.strip().split(" ",1)[0]] += line.count("Optimus")
>>> c
Counter({'ID67': 5, 'ID5552': 1, 'ID12120': 1, '': 0})

您可以将值打印为:

^{pr2}$

相关问题 更多 >