如何将列表中的所有单词和短语放入搜索表达式中(Python)
How to put all words and phrases in list into a search expression (Python)
我有这个清单:
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]
这 returns 组 为:
[['|FOOD|',
'[lemma="shrimps"]',
'chicken wok',
'bowl of rice'],
['|DRINK|',
'[lemma="water"]',
'cranberry juice',
'[lemma="tea"]']]
所以我让它不包括包含空格的单词(phrases),加上主题词。那么处理这些短语并使它们看起来像我上面输入的代码是什么?
我是初学者,所以如果您知道组织所有这些数据的更好方法,请告诉我。
这里你真的不需要正则表达式,你可以使用if not word.startswith("|") and not 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]
见Python demo online。输出:
[['|FOOD|',
'[lemma="shrimps"]',
'[lemma="chicken"][lemma="wok"]',
'[lemma="bowl"][lemma="of"][lemma="rice"]'],
['|DRINK|',
'[lemma="water"]',
'[lemma="cranberry"][lemma="juice"]',
'[lemma="tea"]']
]
我有这个清单:
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]
这 returns 组 为:
[['|FOOD|',
'[lemma="shrimps"]',
'chicken wok',
'bowl of rice'],
['|DRINK|',
'[lemma="water"]',
'cranberry juice',
'[lemma="tea"]']]
所以我让它不包括包含空格的单词(phrases),加上主题词。那么处理这些短语并使它们看起来像我上面输入的代码是什么?
我是初学者,所以如果您知道组织所有这些数据的更好方法,请告诉我。
这里你真的不需要正则表达式,你可以使用if not word.startswith("|") and not 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]
见Python demo online。输出:
[['|FOOD|',
'[lemma="shrimps"]',
'[lemma="chicken"][lemma="wok"]',
'[lemma="bowl"][lemma="of"][lemma="rice"]'],
['|DRINK|',
'[lemma="water"]',
'[lemma="cranberry"][lemma="juice"]',
'[lemma="tea"]']
]