gpt4 book ai didi

python - 在Python中计算二元组频率

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:04 24 4
gpt4 key购买 nike

假设我有一个看起来像这样的数据

['<s>', 'I' , '<s>', 'I', 'UNK', '</s>']

我想得到只出现一次的二元组的数量,所以

n1 == ('I', '<s>'), ('I', 'UNK'), ('UNK', '</s>')
len(n1) == 3

以及出现两次的二元组的数量

n2 == ('<s>', 'I')
len(n2) == 1

我正在考虑将第一个单词存储为 sen[i],将下一个单词存储为 sen[i + 1],但我不确定这是否是正确的方法。

最佳答案

考虑你的 list :-

lis = ['<s>', 'I' , '<s>', 'I', 'UNK', '</s>']

循环列表以生成二元组并不断将它们的频率放入字典中,如下所示:-

bigram_freq = {}
length = len(lis)
for i in range(length-1):
bigram = (lis[i], lis[i+1])
if bigram not in bigram_freq:
bigram_freq[bigram] = 0
bigram_freq[bigram] += 1

现在,收集频率 = 1 和频率 = 2 的二元组,如下所示:-

bigrams_with_frequency_one = 0
bigrams_with_frequency_two = 0
for bigram in bigram_freq:
if bigram_freq[bigram] == 1:
bigrams_with_frequency_one += 1
elif bigram_freq[bigram] == 2:
bigrams_with_frequency_two += 1

您的结果是 bigrams_with_Frequency_one 和 bigrams_with_Frequency_two。希望对您有所帮助!

关于python - 在Python中计算二元组频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46611860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com