NLTK регулярное выражение, как написать конкретную грамматику? - PullRequest
1 голос
/ 12 апреля 2019

я использую Python и RegexpParser, и я хочу написать грамматику следующим образом:

<JJ><NN><anything>
<RB><JJ><not NN nor NNT>
  • первое означает: первое слово должно быть JJ, второе - NN, а третье - что угодно
  • второе означает: RB, за которым следует JJ, а третье слово не должно быть ни NN, ни NNT

Мне сложно выразить (ни, не ...) в регулярном выражении

...

1 Ответ

0 голосов
/ 15 апреля 2019

для примера ниже, грамматика:

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

...