从python正则表达式中提取文本

2024-04-20 13:50:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉NLTK

这是我用过的密码

text="The pizza was 66 and brilliant"
pattern = r"""
P: {<NN>+<VBD>+<CD>+}
"""
for sent in sent_tokenize(text):
  sentence = sent.split()
  PChunker = RegexpParser(pattern)
  output= PChunker.parse(pos_tag(sentence))
  print(output)

我得到输出

^{pr2}$

我需要输出

pizza was 66

我怎么才能得到这个?在


Tags: andthetext密码outputnnsentencesent
1条回答
网友
1楼 · 发布于 2024-04-20 13:50:27

的输出RegexpParser.parse是一个可以循环使用的树树.子树. 尝试以下操作,立即筛选出您感兴趣的非终端节点(在您的示例中是P):

from nltk import sent_tokenize
from nltk import RegexpParser
from nltk import pos_tag

text="The pizza was 66 and brilliant"
pattern = r"""
P: {<NN>+<VBD>+<CD>+}
"""
for sent in sent_tokenize(text):
  sentence = sent.split()
  PChunker = RegexpParser(pattern)
  output= PChunker.parse(pos_tag(sentence))
  print(output)
  for subtree in output.subtrees(filter=lambda t: t.label() == 'P'):
      print(subtree)
      print(' '.join([x[0] for x in subtree]))

相关问题 更多 >