Etiquetado rápido en Python: español e inglés

2/26
Recursos

Aportes 13

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Lo que me encanta, es que el profe ya tiene todo planeado y estructurado (se ve desde el maproad pasado). Digo, yo entiendo que ayude ver que escriban codigo para que se vea dinamico; pero que, por la complejidad del tema, decida mejor invertir el tiempo en explicar como funcionan las herramientas, me parece la mejor decision ❤️

Para no tener que copiar los tags a mano:

nltk.download('tagsets')
for _, tag in nltk.pos_tag(text):
    print(nltk.help.upenn_tagset(tag))

decia que hay un error al inicio de la demostración en español
el orden correcto es
cess_sents = cess.tagged_sents()
fraction = int(len(cess_sents)*90/100)
cess_sents = cess.tagged_sents()
uni_tagger = ut(cess_sents[:fraction])
uni_tagger.evaluate(cess_sents[fraction+1:])

Si se utiliza el libro de colab del curso…
para agregar más notas abajo de " # @title …"
se puede utilizar " # @markdown " seguido de las notas que queramos agregar.

por qué el “+1” ?

bi_tagger = bt(cess_sents[:fraction])
bi_tagger.evaluate(cess_sents[fraction+1:])
nltk.download('tagsets')

for tag in ['CC', 'RB', 'PRP']:
  print(nltk.help.upenn_tagset(tag))   

CC: conjunción, coordinación

RB: adverbio

PRP: pronombre, personal

Excelente, que buen ejemplo

En este link se habla mas del tema, es de la pag. de NLTK: Push Me

Espere por mucho el curso y esta buenisimo

Como dato curioso a 7 de Octubre de 2023, el método evaluate tira un mensaje de warning. Para evitarlo utilizar método accuracy de la forma: ```python cess_sents = cess.tagged_sents() fraction = int(len(cess_sents)*90/100) uni_tagger = ut(cess_sents[:fraction]) #uni_tagger.evaluate(cess_sents[fraction+1:]) #deprecada .evaluate() uni_tagger.accuracy(cess_sents[fraction+1:]) ```cess\_sents = cess.tagged\_sents()fraction = int(len(cess\_sents)\*90/100)uni\_tagger = ut(cess\_sents\[:fraction])#uni\_tagger.evaluate(cess\_sents\[fraction+1:]) #deprecada .evaluate()uni\_tagger.accuracy(cess\_sents\[fraction+1:]) También sirve para bigramas. Espero les ayude. Muy buen curso.

Ahora deberías usar accuracy() en vez de evaluate() para evaluar el modelo del tagger.

uni_tagger = ut(cess_sents[:fraction])

uni_tagger.accuracy(cess_sents[fraction+1:])

resultados con UNITAGGER
[(‘Tres’, ‘dn0cp0’),
(‘tristes’, ‘aq0cp0’),
(‘tigres’, None),
(‘tragaron’, None),
(‘trigo’, ‘ncms000’),
(‘en’, ‘sps00’),
(‘un’, ‘di0ms0’),
(‘trigal’, None)]

resultados con BITAGGER
[(‘Tres’, ‘dn0cp0’),
(‘tristes’, None),
(‘tigres’, None),
(‘tragaron’, None),
(‘trigo’, None),
(‘en’, None),
(‘un’, None),
(‘trigal’, None)]

Alguien sabe como puedo mejorar el etiquetado para que sea mayor al 90%?