Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将列表中的所有单词和短语放入搜索表达式(Python)_Python_Regex_List_Compression_List Comprehension - Fatal编程技术网

如何将列表中的所有单词和短语放入搜索表达式(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"]']
 ]