基于匹配Unigrams从List中编辑Bigrams



从一个双元组列表中,我需要编辑至少没有一个词恰好的双元组。匹配一个单字母列表中的至少一个词。

两个列表

bigram_list = ['computer vision', 'data excellence', 'data visualization']

unigram_list = ['excel', 'tableau', 'visio', 'visualization']

目标

cleaned_bigrams = ['data visualization']

What I've try

我尝试在这里采用这种方法,但失败了:在Python 3.x中从另一个列表中删除单独的项列表

我也试过这个,但无法让它工作:如果包含在双元或三元组中,则在列表中删除单元python

我试着从我之前问过的一个问题中进行调整,但无法进行:根据标记化的pandas数据框中出现的特定字符创建新的布尔字段

提前感谢您可以提供的任何帮助,如果您认为这是一个好问题,请给予支持!

有一种方法:

bigram_list = ["computer vision", "data excellence", "data visualization"]
unigram_list = ["excel", "tableau", "visio", "visualization"]
# Init a dict for counting number of match
counts = {key: 0 for key in bigram_list}
# Count number of match for each bigram
for big in bigram_list:
for uni in unigram_list:
if uni in big.split(" "):
counts[big] += 1
# Filter
cleaned_bigrams = [item for item in bigram_list if counts[item] > 0]
print(cleaned_bigrams)
# Output
['data visualization']

最新更新