Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Filtros y colocaciones en NLTK

14/24
Recursos

Aportes 8

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

En el ejemplo me preguntaba para que calculo el objeto flatten_corpus y es que si hacen esto

finder = BigramCollocationFinder.from_words(flatten_corpus)

tambien funciona, no estoy seguro cual es exactamente la diferencia pero me gustaria una explicacion, gracias!

Seria de gran ayuda que hayan módulos en este curso, es muy bueno y ordenarlo aun mas seria lo mejor.

Esta clase está muy buena, ya vemos resultados cada vez más sorprendentes!

  • Pasos

    Librerias

    from nltk.collocations import *
    

    Podemos hacer uso de PMI con una herramienta de NLTK

    bigram_measure = nltk.collocations.BigramAssocMeasures()
    

    Nos permite a partir de las palabras del texto usar una clase para encontrar las colocaciones

    finder = BigramCollocationFinder.from_words(text1)
    

    preprocesamiento

    Un filtro de frecuencia

    finder.apply_freq_filter(20)
    

    Coloque los mejores candidatos de colocaciones

    finder.nbest(bigram_measure.pmi, 10)
    
    entrega 
    
    [('Moby', 'Dick'),
     ('Sperm', 'Whale'),
     ('White', 'Whale'),
     ('Right', 'Whale'),
     ('Captain', 'Peleg'),
     (',"', 'said'),
     ('never', 'mind'),
     ('!"', 'cried'),
     ('no', 'means'),
     ('each', 'other')]
    
  • texto en español

    nltk.download('cess_esp')
    corpues = nltk.corpus.cess_esp.sents()
    flattlen_corpus = [w for l in corpues for w in l]
    
    print(flattlen_corpus[:10])
    
    finder = BigramCollocationFinder.from_documents(corpues)
    finder.apply_freq_filter(10)
    finder.nbest(bigram_measure.pmi, 10)
    
    entrega
    
    [('señora', 'Aguirre'),
     ('secretario', 'general'),
     ('elecciones', 'generales'),
     ('campaña', 'electoral'),
     ('quiere', 'decir'),
     ('Se', 'trata'),
     ('segunda', 'vuelta'),
     ('director', 'general'),
     ('primer', 'ministro'),
     ('primer', 'lugar')]
    
    

Cabe resaltar que se tiene una función diferente dependiendo del N-GRAM

bigram_measures = nltk.collocations.BigramAssocMeasures()
trigram_measures = nltk.collocations.TrigramAssocMeasures()
fourgram_measures = nltk.collocations.QuadgramAssocMeasures()

¿Como definir el umbral de frecuencia ideal si el dataset es más grande?

Cual seria el preprocesamiento si yo quisiera trabajar por ejemplo con un documento en Latex?

@pachocamacho, vi que hay otras bigram_measures como chi_sq, phi_sq, raw_freq, etc diferentes a PMI, cuando deberia usar esas otras?