我有一个包含单词的字符串,每个单词都有自己的标记(例如 NN/NNP/JJ 等)。我想使用包含 NNP 标记的特定 重复词。到目前为止我的代码:

import re

sentence = "Rapunzel/NNP Sheila/NNP let/VBD down/RP her/PP$ long/JJ golden/JJ hair/NN in Yasir/NNP"

tes = re.findall(r'(\w+)/NNP', sentence)
print(tes)

代码的结果:
['Rapunzel', 'Sheila', 'Yasir']

如我们所见,有 3 个词包含 NNP,它们是 Rapunzel/NNP Sheila/NNP(彼此相邻出现)和 Yasir/NNP(与其他 NNP 词分开)。我的问题是我需要用重复 NNP 和另一个来重复这个词。我的预期结果是:
['Rapunzel/NNP', 'Sheila/NNP'], ['Yasir/NNP']

执行此任务的最佳方法是什么,谢谢。

最佳答案

将组匹配为简单字符串,然后拆分它们:

>>> [m.split() for m in re.findall(r"\w+/NNP(?:\s+\w+/NNP)*", sentence)]
[['Rapunzel/NNP', 'Sheila/NNP'], ['Yasir/NNP']]

关于python - 使用Python中的正则表达式从字符串中提取具有特定字符的单词列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43368522/

10-09 15:22