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)?
Introducción al Procesamiento de Lenguaje Natural
Introducción al Procesamiento de Lenguaje Natural
Evolución del NLP
Conceptos básicos de NLP
Fundamentos con NLTK
Configurar ambiente de trabajo
Palabras, textos y vocabularios
Tokenizacion con Expresiones Regulares
Estadísticas básicas del lenguaje
Distribuciónes de frecuencia de palabras
Refinamiento y visualización de cuerpos de texto
N-gramas y Colocaciones del lenguaje
¿Cómo extraer n-gramas de un texto en Python?
Colocaciones en Python
Colocaciones en gráficos de dispersión
Filtros y colocaciones en NLTK
Introducción a los recursos léxicos
Recursos léxicos en NLTK
NLTK para traducción de palabras
Introducción a WordNet
Explorando WordNet
Similitud Semantica con WordNet
Procesamiento de texto plano desde Web
Usando código estructurado: conexión de Drive a Google Colab
Usando código estructurado: Funciones externas
Perspectivas de lo que viene
Continúa con el Curso de Algoritmos de Clasificación de Texto
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 9
Preguntas 3
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
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
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)
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.
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.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?