Bolsa de palabras distancia euclidiana

El modelo de bolsa de palabras python es un modelo utilizado en el procesamiento del lenguaje natural (NLP) y la recuperación de información. Convierte un texto en un conjunto de palabras con sus frecuencias, de ahí el nombre de «bolsa de palabras python».

Si representamos documentos de texto como vectores de características utilizando el método de la bolsa de palabras, podemos calcular la distancia euclidiana entre ellos.

Los vectores siempre tienen una distancia entre ellos, considere los vectores (2,2) y (4,2). Podemos usar la distancia euclidiana para calcular automáticamente la distancia.

Leer: Datos de entrenamiento y prueba

Introducción bolsa de palabras python

bolsa de palabras python elblogpython.com

Cada texto se representa como un vector con la frecuencia de cada palabra. Por eso, si tienes dos textos, puedes comparar qué tan similares son comparando sus vectores de bolsa de palabras.

Querrá usar el modelo de bolsa de palabras porque para una gran cantidad de datos, la computadora es mucho más rápida en el procesamiento de vectores que un gran archivo de texto.

Un texto puede ser cualquier cosa, desde una sola cadena hasta un libro.

corpus = [
'All my cats in a row',
'When my cat sits down, she looks like a Furby toy!',
'The cat from outer space',
'Sunshine loves to sit like this for some reason.'
]

Debido a que representamos el texto como vectores, esto nos dice qué tan similares son los documentos de texto. Cada texto se convierte en un vector de características:

vectorizer = CountVectorizer()
features = vectorizer.fit_transform(corpus).todense()

Luego, puede comparar la distancia de otros vectores de características (imagine cada vector en una gráfica de n dimensiones) con la característica dada.

for f in features:
    print( euclidean_distances(features[0], f) )

Similitud de texto

Comenzamos con los corpus, luego calculamos los vectores de características del corpus y finalmente calculamos la distancia euclidiana. En este ejemplo comparamos todo con el primer documento.

  



from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics.pairwise import euclidean_distances

corpus = [
'All my cats in a row',
'When my cat sits down, she looks like a Furby toy!',
'The cat from outer space',
'Sunshine loves to sit like this for some reason.'
]

vectorizer = CountVectorizer()
features = vectorizer.fit_transform(corpus).todense() 
print( vectorizer.vocabulary_ )

for f in features:
    print( euclidean_distances(features[0], f) )

Esto luego genera la bolsa de palabras y la distancia al primer vector de texto. Por supuesto, la distancia a sí mismo es cero.


[[0.]]
[[3.60555128]]
[[3.16227766]]
[[3.74165739]]

También te puede interesar estos artículos sobre Machine Learning:

Hagamos un filtro de spam usando regresión logística. Clasificaremos los mensajes como jamón o spam. El conjunto de datos que ...
Máster en Inteligencia Artificial: Universidad Internacional de Valencia. (España). Máster en Ingeniería del Software e Inteligencia Artificial: Universidad de Málaga ...
Puede ser realmente agotador elegir aplicaciones para aprender SQL, Python y otros lenguajes de programación. Solo considere que más de ...
xlwings es una biblioteca de Python que te permite usar todo el poder de este lenguaje de programación en combinación ...
Dados los documentos de texto, podemos agruparlos automáticamente: agrupación de texto. Usaremos KMeans, que es un algoritmo de machine learning ...
Esta ingeniería se encarga de desarrollar la parte intangible de los robots, es decir, el software que será necesario para ...

¿ Te fue de valor esta entrada bolsa de palabras distancia euclidiana?
⬇️ Tu ayuda compartiendo es invaluable.⬇️

2 comentarios en «Bolsa de palabras distancia euclidiana»

  1. ¡Interesante debate sobre la distancia euclidiana en bolsa de palabras! ¿Qué opinan? 🤔

  2. ¡Interesante enfoque! ¿Pero realmente la distancia euclidiana es la mejor medida de similitud?

Los comentarios están cerrados.