es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

CountVectorizer pero para un grupo de texto

Usando el siguiente código, CountVectorizer divide “Carne seca al aire” en 3 vectores diferentes. Pero lo que quiero es mantener “Carne seca al aire” como 1 vector. ¿Cómo lo hago?

El código que ejecuto:

from sklearn.feature_extraction.text import CountVectorizer
food_names = ['Carne seca al aire', 'Almendras', 'Amaranto']
count_vect = CountVectorizer(binary=True)
bow_rep = count_vect.fit(food_names)
# Observar el mapeo del vocabulario
print("Nuestro vocabulario:", count_vect.vocabulary_)

Resultado actual:

Nuestro vocabulario: {'aire': 0, 'al': 1, 'almendras': 2, 'amaranto': 3, 'carne': 4, 'seca': 5}

Resultado deseado:

Nuestro vocabulario: {'carne seca al aire': 0, 'al': 1, 'almendras': 2, 'amaranto': 3}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para mantener “Carne deshidratada al aire” como un solo vector, podemos pasar una lista de nombres de alimentos preprocesada al CountVectorizer reemplazando “-” con un espacio en blanco. Esto se puede lograr utilizando el método replace() de las cadenas de texto, como se muestra a continuación:

    food_names = ['Carne deshidratada al aire', 'Almendras', 'Amaranto']
    food_names_processed = [name.replace('-', ' ') for name in food_names]
    
    count_vect = CountVectorizer(binary=True)
    bow_rep = count_vect.fit(food_names_processed)
    
    # Observa el mapeo del vocabulario
    print("Nuestro vocabulario: ", count_vect.vocabulary_)
    

    Resultado:

    Nuestro vocabulario: {'carne deshidratada al aire': 0, 'almendras': 1, 'amaranto': 2}
    

    Ahora “Carne deshidratada al aire” se representa como un solo vector ‘carne deshidratada al aire’ en el mapeo del vocabulario.

Comments are closed.