Utilizacion de RegexParser en Python
Publicado por Maria (1 intervención) el 15/06/2021 11:50:39
Hola,
Tengo que realizar un código en python que a través de un corpus con pedidos de comida de un restaurante develva la comida y la cantidad de comida que se ha pedido
Hasta ahora he realizado la segmentación, tokenizacion, etc
Me he quedado en el siguiente punto y necesitba una ayuda para avanzar
El código que he usado hasta el momento es el siguiente:
Tengo que realizar un código en python que a través de un corpus con pedidos de comida de un restaurante develva la comida y la cantidad de comida que se ha pedido
Hasta ahora he realizado la segmentación, tokenizacion, etc
Me he quedado en el siguiente punto y necesitba una ayuda para avanzar
El código que he usado hasta el momento es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import nltk
#nltk.download()
from nltk.tokenize import word_tokenize
from nltk.chunk.util import conlltags2tree, tree2conlltags
#from nltk import ChunkParserI
import nltk.chunk, nltk.tag
from nltk.corpus import conll2000
#Creacion de corpus con pedidos
corpus = [
"Me pones un bocadillo de atún y un pincho de tortilla, porfavor",
"quiero unos macarrones",
"Quiero pedir unas lentejas a la riojana"]
def analizar(texto):
frases = nltk.sent_tokenize(texto)
print("FRASE:\n",frases)
tokenizacion = [nltk.word_tokenize(token) for token in frases]
print("\nTOKENIZACION:\n",tokenizacion)
tagging = [nltk.pos_tag(tag) for tag in tokenizacion]
print("\nTAGGING:\n",tagging)
for frase in corpus:
print("\n---------------------------------------------------------------------------------------------------------------")
print("")
analizar(frase)
Importamos el paquete
from nltk.corpus import cess_esp
#Cargamos todas las frases anotadas del corpus CESS
sents = cess_esp.tagged_sents()
#Metemos en el conjunto de entrenamiento el 90% de las frases, y el restante 10% en el conjunto de test
training = []
test = []
for i in range(len(sents)):
if i % 10:
training.append(sents[i])
else:
test.append(sents[i])
from nltk.tag.hmm import HiddenMarkovModelTagger
hmm_tagger = HiddenMarkovModelTagger.train(training)
def markov_tagging(texto):
token = nltk.word_tokenize(texto)
tags = hmm_tagger.tag(token)
print(tags)
return(tags)
for frase in corpus:
print("\n---------------------------------------------------------------------------------------------------------------")
print("FRASE:",frase)
print("")
print("TAGGING:")
markov_tagging(frase)
grammar = r'''
Comida: {<ncms000>+} #nombre comun
{<ncms000>*<ncms000>}
{<di0ms0>*<ncms000><sps00>*<ncms000>+}
Cantidad:{<dn0cp0>}
{<di0ms0>}
{<ncms000>}
'''
regex_parser = nltk.RegexpParser(grammar)
Valora esta pregunta


0