Dúvida: Quais os melhores métodos de tokenização de strings para IA?
O que é tokenização?
IMPORTANTE: Sou um quase leigo quando o assunto é inteligência artificial, por isso posso dar uma escorregada em alguns conceitos...
Comecei a pesquisar sobre IA há pouco tempo para tentar aplicar na empresa em que trabalho. O tipo de tarefa que pensei para ela, seria uma classificação de textos (expliquei melhor nesse outro post), para identificar descrição de produtos dentro de um texto extraído por OCR.
Nessa pesquisa aprendi que no contexto de machine learning (aprendizado de máquina), de maneira geral é melhor trabalhar com números do que com textos. É aí que a tokenização entra. Você pega uma string e transforma ela em um array de números entre zero e um, por exemplo.
Exemplo de tokenização
Um dos exemplos de tokenização que eu experimentei foi transformar cada letra de cada palavra em um número específico. Esse número é calculado com base na tabela ASCII (usando a função String.prototype.charCodeAt()) e depois dividido por 256, que é o total de elementos dessa tabela. Dessa maneira, achatamos range de valores para algo entre zero e um.
const encode = (word) => word.split('').map(letter => letter.charCodeAt(0) / 256)
encode('nathan') // [ 0.4296875, 0.37890625, 0.453125, 0.40625, 0.37890625, 0.4296875 ]
Problemas que eu enfrentei
Apesar de python ser uma linguagem referência para se trabalhar com IA, eu estou usando JavaScript em cima do NodeJS, por questão de afinidade. Isso em si não é um problema pois também há libs de machine learning para Js. Eu usei o Brain.js e atualmente estou me aventurando no Tensorflow.js, do google. Esse último te permite ter um alto controle da api em C do Tensorflow por cima do Node. O maior problema para mim é a falta de experiência em modelar uma rede neural.
Meu pedido de ajuda
Se alguém puder contribuir com dicas eficientes de tokenização e outras coisas relacionadas eu ficaria muito grato 😄
Outros posts que eu escrevi com muito carinho ❤️
Se você curte NeoVim e aplicações de terminal, por favor não deixe de visitar o post onde eu conto Por que você deveria usar NeoVim para programar e A melhor "IDE" que você verá hoje.