【发布时间】:2017-03-31 08:59:48
【问题描述】:
我正在使用 NLTK,我正在尝试从以下文本中分块 (AIM 20-40-60):
text = for more information refer to the Business Reporting Policy (AIM 20-40-60)
目前我正在使用以下块模式grammar = r"CHUNK:{<NN.*><CD>}",它能够完美地捕获AIM 20-40-60 部分。
尽管如此,我也希望括号 () 也成为块的一部分,因为我对正则表达式和块比较陌生,所以我不知道用于捕获括号的确切 regEX 模式。
【问题讨论】:
-
试试
grammar = r"\(CHUNK:{<NN.*><CD>}\)"(或grammar = r"CHUNK:{\(<NN.*><CD>\)}") -
我尝试了两个版本,但不幸的是它不起作用。不过还是谢谢 :)
-
嗯,你明白了要点。在这些令牌中的某处添加
\(和\)。 -
chunker 模式匹配 POS 标签的序列,而不是表面字符串。因此,您需要匹配 POS 标记器给出的任何标记,而不是文字
()。 -
@lenz 嘿,伙计,你是对的。刚刚解决了这个问题。这是我使用的模式
grammar = r"CHUNK:{<\(><NNP><CD><\)>}"
标签: python regex nltk chunking