【发布时间】:2017-10-04 13:39:04
【问题描述】:
我需要: 1.形成二元对并将它们存储在列表中 2. 找出频率最高的前 3 个二元组的 id 总和
我有一个句子列表:
[['22574999', 'your message communication sent']
, ['22582857', 'your message be delivered']
, ['22585166', 'message has be delivered']
, ['22585424', 'message originated communication sent']]
这是我所做的:
for row in messages:
sstrm = list(row)
bigrams=[b for l in sstrm for b in zip(l.split(" ")[:1], l.split(" ")[1:])]
print(sstrm[0],bigrams)
产生:
22574999 [('your', 'message')]
22582857 [('[your', 'message')]
22585166 [('message', 'has')]
22585424 [('message', 'originated')]
我想要的是:
22574999 [('your', 'message'),('communication','sent')]
22582857 [('[your', 'message'),('be','delivered')]
22585166 [('message', 'has'),('be','delivered')]
22585424 [('message', 'originated'),('communication','sent')]
我想得到以下结果 结果:
频率最高的前 3 个二元组:
('your', 'message') :2
('communication','sent'):2
('be','delivered'):2
其中出现频率最高的前 3 个二元组的 id 总和:
('your', 'message'):2 Is included (22574999,22582857)
('communication','sent'):2 Is included(22574999,22585424)
('be','delivered'):2 Is included (22582857,22585166)
感谢您的帮助!
【问题讨论】:
标签: python python-3.x list-comprehension word-frequency