No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Compra acceso a todo Platzi por 1 año

Antes: $249

Currency
$209/año

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15D
14H
5M
56S

Recursos léxicos en NLTK

16/24
Recursos

Aportes 7

Preguntas 3

Ordenar por:

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

o inicia sesión.

Tengo una duda.
Si en el content estoy tomando solo las palabras que no esten en stopwd, ¿ Como es que len(content)/len(text) es el porcentaje de stopwords?, ¿no deberia ser 1 - len(content)/len(text)?

Exacto, como mencionan otros estudiantes, la funcion stopwords_percentage tal y como esta en la clase devuelve la cantidad de palabras que no son stopwords.

Para arreglarlo como ya mencionaron otros estudiantes, se pudiera cambiar la condicion del list comprehension de not in a in

O cambiar len(content)/len(text) a 1 - len(content)/len(text)

def stopwords_percentage(text):

  stopwd = stopwords.words('english')
  # content = [w  for w in text if w.lower() not in stopwd]
  content = [w  for w in text if w.lower()  in stopwd]
  return len(content)/len(text)

Sólo quitamos el not y listo
Porcentaje de stop words

Saber de los stopwords me hubiera sido tan util hace un año cuando implementé en PHP a mano limpia (y sucia) una coleccion de “stopwords” sin saberlo. 🤦‍♂️

Vocabulario: Lista donde tenemos todas las palabras únicas de un corpus.

  • Recursos léxicos

    Colecciones de palabras o frases que puede o no contener metadatos de la colección

    ejemplo

    Le puedes decir que se calle que ame va a enloquecer

    Calle[verbo] conjugación del verbo callar

    Ten cuidado al cruzar la calle porque el semáforo esta en rojo

    Calle[sustantivo] Referencia al espacio publico por donde hay transito

    • Cuando tenemos una palabra con multiples significados es recomendable agrupas a estas en un lexicon
  • Librerias

    import nltk
    nltk.download('book')
    from nltk.book import *
    from nltk.corpus import stopwords
    
  • Vocabulario y frecuencia

    # eL VOCABULARIO SON PALABRAS UNICAS EN EL CORPUS
    
    vocab= sorted(set(text1))
    vocab
    
    #Distribucion es la frecuencia en que aparece una palabra
    
    word_freq= FreqDist(text1)
    
  • Uso de stopwords (porcentaje)

    def stopwords_percentage(text):
        stopwd= stopwords.words('english')
        content  = [w for w in text if w.lower() in stopwd]
        return len(content)/len(text)
    
  • Uso de la funcion

    stopwords_percentage(text1)
    

Ahí en esa parte dentro de la función, aún aparece la confusión que hizo el usuario ** gersonrpq**.

Comprobe jugando con el “not in” y el “in” dentro del objeto “content” y me salió que el porcentaje de stopwords es de 47% (0.471…):

content = [word for word in text if word.lower() in stopwd]

Y el resto del contenido del texto, un 53% (0.528…)

content = [word for word in text if word.lower() not in stopwd]

Y así le encontré sentido a la función. Lo que sumado ambos porcentajes da 100%.
Saludos.