Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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_String_Parsing - Fatal编程技术网

Python 如何修复此正则表达式以捕获字符串的特定字符?

Python 如何修复此正则表达式以捕获字符串的特定字符?,python,regex,string,parsing,Python,Regex,String,Parsing,我有一个非常大的包含单词列表和一些id,我想提取所有单词,它是id,具有NC和AQ的id,从形态学上看眼睛是连续的并打印剩余的id。例如: very_largeString= ''' Hola hola I 1 compis compis NCMS000 0.500006 ! ! Fat 1 esta este DD0FS0 0.986779 y y CC 0.999962 es ser VSIP3S0 1 que que CS 0.437483 es ser VSIP3S0 1 muy mu

我有一个非常大的
包含单词列表和一些
id
,我想提取所有单词,它是
id
,具有
NC
AQ
id
,从形态学上看眼睛是连续的并打印剩余的
id
。例如:

very_largeString= ''' Hola hola I 1
compis compis NCMS000 0.500006
! ! Fat 1

esta este DD0FS0 0.986779
y y CC 0.999962
es ser VSIP3S0 1
que que CS 0.437483
es ser VSIP3S0 1
muy muy RG 1
sencilla sencillo AQ0FS0 1
de de SPS00 0.999984
utilizar utilizar VMN0000 1
, , Fc 1
que que CS 0.437483
si si CS 0.99954
nos nos PP1CP000 0.935743
ponen poner VMIP3P0 1
facilidad facilidad NCFS000 1
con con SPS00 1
las el DA0FP0 0.970954
tareas tarea NCFP000 1
de de SPS00 0.999984
la el DA0FS0 0.972269
casa casa NCFS000 0.979058
pues pues CS 0.998047
mejor mejor AQ0CS0 0.873665
que que PR0CN000 0.562517
mejor mejor AQ0CS0 0.873665
, , Fc 1
pero pero CC 0.999764
tan tan RG 1
antigua antiguo AQ0FS0 0.953488
que que CS 0.437483
según según SPS00 0.995943
mi mi DP1CSS 0.999101
madre madre NCFS000 1
era ser VSII1S0 0.491262
de de SPS00 0.999984
carga carga NCFS000 0.952569
superior superior AQ0CS0 0.992424
'''
 [('word','id'),('word','id')]
这将是所需的输出,因为它们在
id
开头有
NC
AQ
字符:

[('carga', 'NCFS000', 'superior', 'AQ0CS0'), ('carga', 'NCFS000', 'frontal', 'AQ0CS0')]
如何修复正则表达式以提取所有具有as id
AQ
NC
的单词?。这就是我所尝试的:

regex_ = re.findall(r'^(\w+)\s\w+\s(NCFS000)\s[0-9.]+\n^(\w+)\s\w+\s(AQ0CS0)', very_largeString, re.M)

print regex_
输出只是单词,它与
id
关联,例如:

very_largeString= ''' Hola hola I 1
compis compis NCMS000 0.500006
! ! Fat 1

esta este DD0FS0 0.986779
y y CC 0.999962
es ser VSIP3S0 1
que que CS 0.437483
es ser VSIP3S0 1
muy muy RG 1
sencilla sencillo AQ0FS0 1
de de SPS00 0.999984
utilizar utilizar VMN0000 1
, , Fc 1
que que CS 0.437483
si si CS 0.99954
nos nos PP1CP000 0.935743
ponen poner VMIP3P0 1
facilidad facilidad NCFS000 1
con con SPS00 1
las el DA0FP0 0.970954
tareas tarea NCFP000 1
de de SPS00 0.999984
la el DA0FS0 0.972269
casa casa NCFS000 0.979058
pues pues CS 0.998047
mejor mejor AQ0CS0 0.873665
que que PR0CN000 0.562517
mejor mejor AQ0CS0 0.873665
, , Fc 1
pero pero CC 0.999764
tan tan RG 1
antigua antiguo AQ0FS0 0.953488
que que CS 0.437483
según según SPS00 0.995943
mi mi DP1CSS 0.999101
madre madre NCFS000 1
era ser VSII1S0 0.491262
de de SPS00 0.999984
carga carga NCFS000 0.952569
superior superior AQ0CS0 0.992424
'''
 [('word','id'),('word','id')]

我猜你正在尝试做一些NLP(自然语言处理),你想从一些西班牙语语料库中提取由
名词和
限定词组成的对。已经有了用于此类任务的工具

我建议你看看(NLTK)

我还要说的是,在语料库上执行这些操作并不是一项常见的任务,而是在完全自然的文本上执行这些操作。我认为你应该解释一下你的意图,也许你试图达成的解决方案并不是解决你实际问题的最佳方案


帮助我们帮助您。

您想要的输出与实际输出不匹配,我猜您没有列出输出的其他组合?我只想关注所有以NC和AQ为id并一个接一个出现的单词(即没有空格、没有其他单词和id)。这是输出:
[('carga','NCFS000','superior','AQ0CS0'),('punto','NCMS000','medio','AQ0MS0'),('color','NCMS000','blanco','AQ0MS0'),('carga','NCFS000','frontial','AQ0CS0'),('ruido','NCMS000','jejeje je je NCMS000')等)这是最后一个参数。
我无法返回相同的id(即
NCMS000,NCMS000
)我只能返回
NC
AQ
。您是否应用了明显的修复?请参阅我答案的最新编辑。