Tengo algunas duda, para entender mejor como funciona la tokenizacion y el vocabulario. La tokenizacion es la que separa palabras y el vo...

Jeison Wu Mitre

Jeison Wu Mitre

Pregunta
student
hace 3 años

Tengo algunas duda, para entender mejor como funciona la tokenizacion y el vocabulario. La tokenizacion es la que separa palabras y el vocabulario el que la un número único? Porque entonces le ponemos al tokenizador que use ingles, el separa por detectar que tipo de palabras? Y de ser el caso que separa por sentido de palabra y relación, cual tokenizador de palabras en español hasta mal escritas recomiendan?

1 respuestas
    Gabriel Ichcanziho Pérez Landa

    Gabriel Ichcanziho Pérez Landa

    student
    hace 3 años

    Dando mi opinión a tus inquietudes:

    1. Efectivamente tokenizar es poder entender que cada elemento de una oración es un objeto con sentido. Puedes tokenizar a nivel letra o a nivel palabra. Si bien la intuición nos dice que la forma más sencilla sería identificar cada palabra porque esta separada por un espacio " " esto no es necesariamente cierto.

    En una oración puedes tener palabras que tengan sentido o que ni siquiera existan:

    • Hola cómo estás?
    • aer fu aksa te?

    Un buen tokenizador solo te devolvería los elementos que relamente son palabras.

    1. Una vez que de tu

      corpus
      (todas las palabras disponibles de tu dataset) obtuviste tus tokens puedes asignarles un número que represente a la palabra, de esta forma "discretizas" las palabras.

    2. lo ponemos en inglés porque DBPEDIA está en inglés y pese a que "amarillo" es un token, en inglés no está definida la palabra entonces pasaría a ser "unk"

    3. Lidiar con palabras mal escritas es mucho más complejo, tendrías que tu mismo crear tu tokenizador haciendo splits por espacio, pero tendrías un

      vocab
      enorme lleno de variantes de la misma palabra y normalmente quieres evitar eso, porque todas esas variantes en realidad significan lo mismo. Normalmente otro proceso muy importante que se hace es aplicar
      lemmatization o stemming
      que básicamente buscan llevar a una expresión común diferentes palabras. Por ejemplo:

    • gatos
    • gatas
    • gatitos
    • gatitas

    Todas tienen como raiz "gato" todas esas palabras NO serían tratadas como entedes diferentes sino como "gato" y todas compartirían el mismo identificador númerico (este proceso de stemming no fue tratado en esta clase, pero es un concepto bastante útil)

    1. Te recomiendo chechar Spacy ES.
Curso de Redes Neuronales con PyTorch

Curso de Redes Neuronales con PyTorch

Crea modelos de clasificación de texto con PyTorch y TorchText. Procesa datos, entrena el modelo y realiza inferencias optimizadas con PyTorch 2.0. Guarda y comparte tu modelo en Hugging Face, mejorando la colaboración.

Curso de Redes Neuronales con PyTorch
Curso de Redes Neuronales con PyTorch

Curso de Redes Neuronales con PyTorch

Crea modelos de clasificación de texto con PyTorch y TorchText. Procesa datos, entrena el modelo y realiza inferencias optimizadas con PyTorch 2.0. Guarda y comparte tu modelo en Hugging Face, mejorando la colaboración.