NLTK正则表达式,如何编写特定的语法?

时间:2019-04-12 15:36:35

标签: python regex nltk chunking

am使用Python和RegexpParser,我想编写这样的语法:

<JJ><NN><anything>
<RB><JJ><not NN nor NNT>
  • 第一个单词是:第一个单词应该是JJ,第二个单词应该是NN,第三个单词应该是
  • 第二个意思是:RB后跟JJ,第三个单词不应是NN或NNT

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

...

1 个答案:

答案 0 :(得分:0)

例如,下面的语法是:

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))

就我而言,我想写一个语法,如下所述: enter image description here