【问题标题】:NLTK regex, how to write a specific grammar?NLTK 正则表达式,如何编写特定的语法?
【发布时间】:2019-04-12 15:36:35
【问题描述】:

我正在使用 Python 和 RegexpParser,我想写一个这样的语法:

<JJ><NN><anything>
<RB><JJ><not NN nor NNT>
  • 第一个意思是:第一个词应该是 JJ,第二个是 NN,第三个是任何东西
  • 第二个意思是:RB后跟JJ,第三个词不能是NN也不能是NNT

我很难用正则表达式表达(也不,不是...)

...

【问题讨论】:

标签: python regex nltk chunking


【解决方案1】:

例如下面,语法是:

grammar = """ P: {<NN><VBD><JJ><CC><JJ>}
                    {<NN><VBD><JJ>} 
             """

分块器:

PChunker = RegexpParser(grammar)

句子是:

sentence = ['The', 'pizza', 'was', 'good', 'but', 'pasta', 'was', 'bad']

运行以下代码后:

print("sentence : ",PChunker.parse(pos_tag(sentence)))

结果将是:

sentence :  (S
              The/DT
              (P pizza/NN was/VBD good/JJ)
              but/CC
              (P pasta/NN was/VBD bad/JJ))

就我而言,我想编写如下所述的语法:

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 1970-01-01
    • 2016-03-09
    • 2020-05-21
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多