如何将列表中的所有单词和短语放入搜索表达式(Python)
我有以下清单:如何将列表中的所有单词和短语放入搜索表达式(Python),python,regex,list,compression,list-comprehension,Python,Regex,List,Compression,List Comprehension,我有以下清单: groups = [['|FOOD|','shrimps','chicken wok','bowl of rice'],['|DRINK|','water','cranberry juice','tea']] 我正在尝试将输出设置为: [['|FOOD|', '[lemma="shrimps"]', '[lemma="chicken"][lemma="wok"]', '[lemma="bowl"][lemma="of"][lemma="rice"]'], ['|D
groups = [['|FOOD|','shrimps','chicken wok','bowl of rice'],['|DRINK|','water','cranberry juice','tea']]
我正在尝试将输出设置为:
[['|FOOD|',
'[lemma="shrimps"]',
'[lemma="chicken"][lemma="wok"]',
'[lemma="bowl"][lemma="of"][lemma="rice"]'],
['|DRINK|',
'[lemma="water"]',
'[lemma="cranberry"][lemma="juice"]',
'[lemma="tea"]']]
所以,基本上我需要为语料库搜索对每个单词进行语法化。然而,有些单词不是单词,而是短语。我只知道单个单词的代码,如下所示:
import re
groups = [[f'[lemma="{word}"]' if not ' ' in word and not re.search(r'\|.*\|', word) else word for word in group] for group in groups]
这会将组返回为:
[['|FOOD|',
'[lemma="shrimps"]',
'chicken wok',
'bowl of rice'],
['|DRINK|',
'[lemma="water"]',
'cranberry juice',
'[lemma="tea"]']]
所以我不包括包含空格的单词(短语),以及主题词。那么,处理这些短语并使它们看起来像我上面键入的那样的代码是什么呢
我是初学者,如果您知道更好的方法来组织所有这些数据,请告诉我。您在这里并不真正需要正则表达式,您可以使用
如果不是word.startswith(“|”)而不是word.endswith(“|”)来检查条目的两端是否都没有管道:
groups = [[''.join([r"""[lemma="{}"]""".format(w) for w in word.split()]) if not word.startswith("|") and not word.endswith("|") else word for word in group] for group in groups]
看。输出:
][lemma=“FOOD”][lemma=“shrimps”][lemma=“chicken”][lemma=“wok”][lemma=“bowl”][lemma=“of”][lemma=“rice”][lemma”][lemma=“DRINK”][lemma water”][lemma ranberry=“juice”][lemma juice”][lemma tea”][lemma code>的语法看起来不正确。谢谢,刚刚编辑过
[['|FOOD|',
'[lemma="shrimps"]',
'[lemma="chicken"][lemma="wok"]',
'[lemma="bowl"][lemma="of"][lemma="rice"]'],
['|DRINK|',
'[lemma="water"]',
'[lemma="cranberry"][lemma="juice"]',
'[lemma="tea"]']
]