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_tokenizefrom nltk.chunk.util import conlltags2tree, tree2conlltags
#from nltk import ChunkParserIimport nltk.chunk, nltk.tag
from nltk.corpus import conll2000#Creacion de corpus con pedidoscorpus = [
"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 CESSsents = cess_esp.tagged_sents()
#Metemos en el conjunto de entrenamiento el 90% de las frases, y el restante 10% en el conjunto de testtraining = []
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