将Ngram转换为Python中的频率字典

2024-09-29 23:32:59 发布

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

有人能帮我把下面的ngram转换成下面的结果吗?返回应该连接ngram的前N-1个元素,并计算不同后继元素(第N个元素)出现的频率。我在考虑一些嵌套for循环,但我正在努力构建一个结构。非常感谢

ngrams = [['will', 'leave', 'florida'], ['will', 'leave', 'nyc'], ['will', 'leave', 'florida'],['wont', 'leave', 'florida']]

报税表应为:

{'will leave': {'florida': 2, 'nyc': 1}, 'wont leave': {'florida': 1}}


Tags: 元素for结构will频率nycleavengram
1条回答
网友
1楼 · 发布于 2024-09-29 23:32:59

这里有一种方法

ngrams = [['will', 'leave', 'florida'], ['will', 'leave', 'nyc'], ['will', 'leave', 'florida'],['wont', 'leave', 'florida']]

dct = {'will leave': {}, 'wont leave': {}}

for i in ngrams:
    a, b, c = i
    if c in dct[a + ' ' + b]:
        dct[a+' '+b][c] += 1
    else:
        dct[a+' '+b].update({c: 1})

print(dct)

{'will leave': {'florida': 2, 'nyc': 1}, 'wont leave': {'florida': 1}}

相关问题 更多 >

    热门问题