不懂NLTK Regex Parsing Format

Posted

技术标签:

【中文标题】不懂NLTK Regex Parsing Format【英文标题】:Do not understand NLTK Regex Parsing Format 【发布时间】:2017-11-02 03:05:04 【问题描述】:

我不明白 NLTK 正则表达式解析语法是如何工作的。 请看下文。

parser = RegexpParser('''
    NP: <DT>? <JJ>* <NN>* # NP
    P: <IN>           # Preposition
    V: <V.*>          # Verb
    PP: <P> <NP>      # PP -> P NP
    VP: <V> <NP|PP>*  # VP -> V (NP|PP)*
    ''')

&lt;DT&gt;? 或 * 是什么意思。 &lt;V&gt;.*&lt;V.*&gt;有什么区别

谢谢

【问题讨论】:

【参考方案1】:

DT 是像 a,the ,...一样的限定词

动词分词定义 - 分词(光泽缩写 PTCP)是动词的一种形式,用于在句子中修饰名词、名词短语、动词或动词短语,其作用类似于形容词或副词. ...它是非限定动词形式的一种。

<V>.* is for verb participle   example : drawn sword (drawn is vp)
<V.*> is a verb                example :going , go 

您可以在此处找到有关它们的更多信息: https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html

* 是什么意思?它与正则表达式中使用的 * 相同。 * 表示任何字符集(当然构成 * 的字符集在组合时应该是有意义的)

让我们来看一些例子 -

<V.*> A verb followed by anything in the same run like go(ing) mov(ing) 

【讨论】:

感谢 Satyadev。但是如果例如:我想匹配一个动词加上介于两者之间并以名词结尾的任意数量的单词。怎么做?是&lt;V.*&gt; .* &lt;NN.*&gt;

以上是关于不懂NLTK Regex Parsing Format的主要内容,如果未能解决你的问题,请参考以下文章

boost::regex 中的嵌套量词

解析“*” - 量词 x,y 啥都没有

C++有关regex

我想在我的验证代码中使用regex,但不知道该把它放在哪里?

组名无效:组名必须以单词字符开头

如何使用 DataAnnotations & Regex - c# - ASP.NET Core