Python - Utilizacion de RegexParser en Python

 
Vista:

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:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder