【发布时间】:2025-12-02 07:40:02
【问题描述】:
我的问题类似于这个未回答的问题:Using custom POS tags for NLTK chunking?,但我得到的错误是不同的。我正在尝试解析一个添加了我自己的域特定标签的句子。
例如:
(u'greatest', 'P'), (u'internet', 'NN'), (u'ever', 'A'),
(u',', ','), (u'and', 'CC'), (u'its', 'PRP$'), (u'being', 'VBG'),
(u'slow', 'N'), (u'as', 'IN'), (u'hell', 'NN')`
其中(u'slow', 'N') 是自定义标签'N'。
我正在尝试使用以下方法解析:
grammar=r"""
Chunk:`{<A>?*<P>+}`
"""
parser=nltk.RegexpParser(grammar)
但我收到以下错误:
ValueError: Illegal chunk pattern: `{<A>?*<P>+}`
nltk.RegexpParser 是否处理自定义标签?有没有其他基于 nltk 或 python 的解析器可以做到这一点?
【问题讨论】:
-
语法没有出现在块代码中:它是
grammar=r""" Chunk:{<A>?*<P>+} """ -
您需要将语法作为字符串传递,而不是作为正则表达式。
-
@louism:不,那不是必需品。语法可以作为字符串传递。参考nltk.org/book/ch07.html。