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.

Cómo evitar que Gensim Simple Preprocess elimine los dígitos?

Estoy teniendo algunos problemas al preprocesar algunos datos con gensim.utils.simple_preprocess.

En pocas palabras, noté que la función simple_preprocess elimina los dígitos de mi texto, ¡pero no quiero eso!
Por ejemplo, tengo este código:

import gensim
from gensim.utils import simple_preprocess

my_text = ["Estoy realizando la actividad número 1", "En cambio, estoy haciendo el número 2"]

def gen_words(texts):
    final = []
    for text in texts:
        new = gensim.utils.simple_preprocess(text, deacc=True, min_len=1)
        final.append(new)
    return final

solution = gen_words(my_text)

print(solution)

La salida es la siguiente:

[['estoy', 'realizando', 'la', 'actividad', 'numero'], ['en', 'cambio', 'estoy', 'haciendo', 'el', 'numero']]

En cambio, me gustaría tener esto como solución:

[['estoy', 'realizando', 'la', 'actividad', 'numero', '1'], ['en', 'cambio', 'estoy', 'haciendo', 'el', 'numero', '2']]

¿Cómo evitar que se borren los dígitos de mi código? También he intentado configurar min_len=0 pero aún no funciona.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para evitar que simple_preprocess elimine los dígitos de su texto, puede configurar el parámetro min_len en 0 o un valor negativo. Esto hará que simple_preprocess no elimine ningún token de su texto en función de su longitud, incluyendo los dígitos.

    Entonces, su código actualizado se vería así:

    import gensim
    from gensim.utils import simple_preprocess
    
    my_text = ["Estoy realizando la actividad número 1", "En cambio, estoy haciendo el número 2"]
    
    def gen_words(texts):
        final = []
        for text in texts:
            new = gensim.utils.simple_preprocess(text, deacc=True, min_len=0)
            final.append(new)
        return (final)
    
    solucion = gen_words(my_text)
    
    print(solucion)
    

    Y la salida sería:

    [['estoy', 'realizando', 'la', 'actividad', 'número', '1'], ['en', 'cambio', 'estoy', 'haciendo', 'el', 'número', '2']]
    

Comments are closed.