从元组列表中提取相关关键词
Extracting Relevant Key Words from Tuples List
我是 Python 的新手,需要帮助。我有几个单词列表及其提及频率,格式如下:
ResponseTweetsAug27 =[('rescue', 239), ('escape', 164), ...]
ImpactTweetsAug27 = [('close', 1350), ('falling', 1267), ...]
等等。这些列表在一个文件中,每个列表各占一行。
许多 word-frequency 对是不相关的。我需要梳理列表并提取与此格式的主单词列表关联的 word-frequency 对:
key_terms = ['beprep', 'gear up', 'get ready', 'hurricaneprep', 'hurricanepreparation'...]
目标是显示主列表中的单词被提及的次数。我认为这将涉及遍历元组列表,但我是新手,需要指导。提前致谢!
编辑:我可以分别浏览每个元组列表,但是如果它们有不同的标题,您将如何遍历所有这些列表?
假设您已经从文件中读取列表并将它们放在 lists
变量中:
ResponseTweetsAug27 = [('beprep', 239), ('gear up', 164)]
ImpactTweetsAug27 = [('get ready', 1350), ('falling', 1267)]
lists = [ResponseTweetsAug27, ImpactTweetsAug27]
key_terms = ['beprep', 'gear up', 'get ready']
for l in lists:
for pair in l:
if pair[0] in key_terms:
print(pair[0], pair[1])
您可以遍历 lists
。每个项目都是一个列表。然后在每个列表中(这里称为 l
),你遍历每一对检查 name/title,无论你怎么称呼它,是否存在于 key_terms
中。如果是,则将其打印出来,以及它们被提及的次数。结果:
> python tuples.py
beprep 239
gear up 164
get ready 1350
您可以将 collections.defaultdict
与 itertools.chain
一起使用到 return 计数字典。对于 key_terms
,建议使用 set
进行 O(1) 复杂度查找。
数据来自@Frynio。
ListA = [('beprep', 239), ('gear up', 164)]
ListB = [('get ready', 1350), ('falling', 1267)]
from collections import defaultdict
from itertools import chain
key_terms = {'beprep', 'gear up', 'get ready'}
d = defaultdict(int)
for key, value in chain(ListA, ListB):
if key in key_terms:
d[key] += value
print(d)
defaultdict(int, {'beprep': 239, 'gear up': 164, 'get ready': 1350})
我是 Python 的新手,需要帮助。我有几个单词列表及其提及频率,格式如下:
ResponseTweetsAug27 =[('rescue', 239), ('escape', 164), ...]
ImpactTweetsAug27 = [('close', 1350), ('falling', 1267), ...]
等等。这些列表在一个文件中,每个列表各占一行。
许多 word-frequency 对是不相关的。我需要梳理列表并提取与此格式的主单词列表关联的 word-frequency 对:
key_terms = ['beprep', 'gear up', 'get ready', 'hurricaneprep', 'hurricanepreparation'...]
目标是显示主列表中的单词被提及的次数。我认为这将涉及遍历元组列表,但我是新手,需要指导。提前致谢!
编辑:我可以分别浏览每个元组列表,但是如果它们有不同的标题,您将如何遍历所有这些列表?
假设您已经从文件中读取列表并将它们放在 lists
变量中:
ResponseTweetsAug27 = [('beprep', 239), ('gear up', 164)]
ImpactTweetsAug27 = [('get ready', 1350), ('falling', 1267)]
lists = [ResponseTweetsAug27, ImpactTweetsAug27]
key_terms = ['beprep', 'gear up', 'get ready']
for l in lists:
for pair in l:
if pair[0] in key_terms:
print(pair[0], pair[1])
您可以遍历 lists
。每个项目都是一个列表。然后在每个列表中(这里称为 l
),你遍历每一对检查 name/title,无论你怎么称呼它,是否存在于 key_terms
中。如果是,则将其打印出来,以及它们被提及的次数。结果:
> python tuples.py
beprep 239
gear up 164
get ready 1350
您可以将 collections.defaultdict
与 itertools.chain
一起使用到 return 计数字典。对于 key_terms
,建议使用 set
进行 O(1) 复杂度查找。
数据来自@Frynio。
ListA = [('beprep', 239), ('gear up', 164)]
ListB = [('get ready', 1350), ('falling', 1267)]
from collections import defaultdict
from itertools import chain
key_terms = {'beprep', 'gear up', 'get ready'}
d = defaultdict(int)
for key, value in chain(ListA, ListB):
if key in key_terms:
d[key] += value
print(d)
defaultdict(int, {'beprep': 239, 'gear up': 164, 'get ready': 1350})