gpt4 book ai didi

python - 迭代元组,获取下一项

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

我在获取元组中的项目时遇到了一些困难。我有一个元组列表,它看起来像这样(包含一个单词和一个标签):

[('An', 'DET'),
('autumn', 'NOUN'),
('evening', 'NOUN'),
('.', '.'),
('In', 'ADP'),
('an', 'DET'),
('old', 'ADJ'),
('woodshed', 'NOUN'),
('The', 'DET'),
('long', 'ADJ'),
('points', 'NOUN'),
('of', 'ADP'),
('icicles', 'NOUN'),
('Are', 'NOUN'),
('sharpening', 'VERB'),
('the', 'DET'),
('wind', 'NOUN'),
('.', '.')....]

我想做的是迭代这些元组,并根据前一个单词标签确定下一个单词标签的可能性。例如,如果我想确定“DET”在“NOUN”前面出现多少次,我想迭代元组并确定,例如:

“DET”出现在“NOUN”前面的次数

到目前为止,我已经尝试过:

prob = 0.0
for item in tuples:
if item[1] == "DET" and item + 1[1] == "NOUN"
return prob

if 语句显然不正确。有谁知道我可以做什么来访问下一个项目?

最佳答案

将单词成对组合在一起的最简单方法是使用 zip(seq, seq[1:]),如 recipes section for the itertools module 中所示。 .

收集计数的最简单方法是使用 collections.Counter() .

把它们放在一起看起来像这样:

>>> from collections import Counter

>>> Counter((f, s) for (_, f), (_, s) in zip(tuples, tuples[1:]))
Counter({('ADJ', 'NOUN'): 2, ('NOUN', 'ADP'): 2, ('NOUN', 'NOUN'): 2,
('DET', 'NOUN'): 2, ('DET', 'ADJ'): 2, ('ADP', 'NOUN'): 1,
('NOUN', 'VERB'): 1, ('NOUN', 'DET'): 1, ('VERB', 'DET'): 1,
('ADP', 'DET'): 1})

关于python - 迭代元组,获取下一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37084109/

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