我是python的新手,我无法弄清楚如何执行以下操作。
我有一个(word,tag)元组列表
a = [('Run', 'Noun'),('Run', 'Verb'),('The', 'Article'),('Run', 'Noun'),('The', 'DT')]
我正在尝试查找已分配给每个单词的所有标签并收集其计数。例如,word" run"已被标记两次“名词”。一次到'动词'。
澄清:我想创建另一个包含(单词,标记,计数)的元组列表
答案 0 :(得分:2)
使用defaultdict
非常简单:
view_context
答案 1 :(得分:2)
您可以使用collections.Counter
:
>>> import collections
>>> a = [('Run', 'Noun'),('Run', 'Verb'),('The', 'Article'),('Run', 'Noun'),('The', 'DT')]
>>> counter = collections.Counter(a)
Counter({('Run', 'Noun'): 2, ('Run', 'Verb'): 1, ... })
>>> result = {}
>>> for (tag, word), count in counter.items():
... result.setdefault(tag, []).append({word: count})
>>> print(result)
{'Run': [{'Noun': 2}, {'Verb': 1}], 'The': [{'Article': 1}, {'DT': 1}]}