Así que antes de crear la Palabra Incrustaciones que crea el significado de las representaciones de palabras y reduce la dimensionalidad, ¿cómo podemos crear un buen vocabulario que capte algo de la esencia en nuestro idioma. Hay diferentes idiomas en todo el mundo y una estructura diferente para cada idioma. Los idiomas aglutinantes como el turco aglutinan (añaden encima) cada palabra para crear otro significado a partir de la misma palabra inicial. Similar, en inglés, la parte de sufijo de smart-est es est donde se puede usar en muchas palabras.
Por ejemplo, en nuestro vocabulario es posible que no tengamos la palabra más fuerte, pero es posible que tengamos la palabra fuerte cuando se tokeniza como loud – est la incrustación del token tendrá una representación de est por lo que tendrá una información para la palabra más fuerte.
En el niño también tiene lugar una estructura similar. Un niño no necesita escuchar cada palabra y su forma plural para entender. Después de escuchar muchas formas plurales de objetos como automóviles, abejas y otros objetos, el cerebro del niño lo estructura de una manera en que cuando un niño sabe qué es un sombrero, no necesita escuchar la palabra sombreros para usarlo. Los modelos de lenguaje también deben tokenizar el mecanismo estructural de nuestro vocabulario.
BPE tiene dos ventajas: sabe cómo tratar con palabras desconocidas y puede inferir significado de palabras desconocidas
Cómo funciona
Necesitamos un archivo que sea un buen representante del idioma que está tratando de tokenizar.
- Llame al .el archivo txt divide cada palabra en la cadena y agrega </w> al final de cada palabra. Crea un diccionario de frecuencia de palabras.
2. Cree una función que obtenga el vocabulario y en cada palabra en vocabulario divida cada palabra en caracteres y cree un diccionario de frecuencia de la mayoría de los caracteres emparejados.
3. Durante nuestro proceso de entrenamiento seguiremos actualizando nuestro vocabulario. La función merge_vocabulary obtendrá el diccionario de vocabulario antiguo y lo actualizará con el par de caracteres más frecuente.
4. Los tokens Get se usarán más tarde para tokenizar cadenas de entrada
Crear el vocabulario
Así que después de alimentar nuestro vocabulario inicial y la frecuencia de palabras. Crearemos un bucle que creará tokenización a partir del vocabulario. En cada iteración encontrará el carácter que se produce junto y los añadirá al vocabulario.
En el Ejemplo digamos que nuestro vocabulario es
- añadimos nuestro final de palabra token
- La inicial de fichas será
- vamos a la vocab y de verificación de los dígrafos y el recuento de la frecuencia de bigramas en este caso la ‘r’ y ‘</w>’ actualizamos el token diccionario
- añadimos el nuevo carácter a nuestro vocabulario ‘r</w>’
decidir el número de iteraciones esto debe tener lugar. Puede ser 10.000 o 100.000. Tú decides cuál debe ser el tamaño de tu vocabulario.
Codificación y decodificación
Para codificar la oración dada primero necesitamos convertir nuestro diccionario de tokens de la palabra más larga a la palabra más corta. Añadimos dividir cada palabra en la frase y añadir </w> al final de la palabra. Iteramos a través de cada token y si la subcadena de la palabra incluye el token, colocamos ese token como proceso de tokenización. La decodificación es dado nuestras fichas que se fusionan la palabra no tiene </w> y agregar » si la palabra tiene </w> al final.