如何提取括号内首字母缩写词的完整形式,通过映射每个大写字母

 a = "The process maps are similar to Manual Excellence Process Framework (MEPF)"

输入 = “The process maps are similar to Manual Excellence Process Framework (MEPF)”

输出 = Manual Excellence Process Framework (MEPF)

我想编写一个Python脚本,处理一段文本,从中提取括号内给定首字母缩写词的完整形式,例如(MEPF)的完整形式是Manual Excellence Process Framework。我希望通过匹配括号内每个大写字母来追加完整形式。

我的想法是,每当括号内出现首字母缩写词时,就映射每个大写字母。例如,(MEPF)从最后一个字母F开始匹配括号前的最后一个单词,这里是Framework,然后是P(Process),然后是E(Excellence),最后是M(Manual)。所以最终输出将是完整形式(Manual Excellence Process Framework)。如果你能按照这种方式尝试一次,那对我将非常有帮助。


回答:

使用简单的正则表达式和一些后处理:

a = "I like International Business Machines (IBM). The Manual Excellence Process Framework (MEPF)"import rem = re.findall(r'([^)]+) \(([A-Z]+)\)', a)out = {b: ' '.join(a.split()[-len(b):]) for a,b in m}out

输出:

{'IBM': 'International Business Machines', 'MEPF': 'Manual Excellence Process Framework'}

如果你想检查首字母缩写词是否确实与单词匹配:

out = {b: ' '.join(a.split()[-len(b):]) for a,b in m       if all(x[0]==y for x,y in zip(a.split()[-len(b):], b))       }

示例

a = "No match (ABC). I like International Business Machines (IBM). The Manual Excellence Process Framework (MEPF)."m = re.findall(r'([^)]+) \(([A-Z]+)\)', a){b: ' '.join(a.split()[-len(b):]) for a,b in m if all(x[0]==y for x,y in zip(a.split()[-len(b):], b))}# {'IBM': 'International Business Machines',#  'MEPF': 'Manual Excellence Process Framework'}

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注