nltk.RegexpParser не распознает еду - PullRequest
       66

nltk.RegexpParser не распознает еду

0 голосов
/ 06 февраля 2020

Извините за мой английский sh. Я пытаюсь получить еду и количество еды из корпуса на дереве. Я импортировал библиотеку NLTK, обучил тэгеру на испанском sh, после анализа, чтобы извлечь токены, я сделал раздел грамматики и результаты для дерева

Мой код выглядит следующим образом

 import nltk
from nltk.chunk import *
from nltk.chunk.util import *
from nltk.chunk.regexp import *
from nltk.corpus import cess_esp
from nltk.tag.hmm import HiddenMarkovModelTagger

# Creación de corpus

corpus = ["quiero una hamburguesa, por favor", "quiero 2 pizza y 1 hamburguesa", "quiero un resfreco y un perrito", "por favor, una pizza", "quiero tres pizzas"]

# Entrenar un tagger en español

sents = cess_esp.tagged_sents()

training = []
test = []
for i in range(len(sents)):
    if i % 10:
        training.append(sents[i])
    else:
        test.append(sents[i])

sentence="una pizza mediana, por favor"

sentences = nltk.tokenize.sent_tokenize(sentence)
print ("\n Frases:",sentences)

tokens = nltk.word_tokenize(sentence)
print ("\n Tokens:",tokens)

tagged =nltk.pos_tag(tokens)
print ("\n Análisis morfológico:",tagged)

gramatica = r""" 

  comida: {<JJ>+<NN.>} 

  cantidad:{<JJ>}

"""
regex_parser = nltk.RegexpParser(gramatica)

cp = nltk.RegexpParser(gramatica)

resultado = cp.parse(tagged)

print(resultado)

resultado.draw()

Но когда я рисую на консоли, дерево выглядит следующим образом:

(S (cantidad una/JJ) pizza/NN mediana/NN ,/, por/NN favor/

Еда не узнает меня, это ошибка в грамматической части, но я не могу понять это вне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...