Executando verificação de segurança...
15

Pitch: classifier.js meu primeiro módulo npm

Ontem eu publiquei uma perguta aqui questionando sobre o que caracteriza algo como inteligência artificial ou não. A dúvida surgiu após eu começar um protótipo de classificador de palavras. Hoje, após algumas pesquisas, dou uma resposta ao meu eu de um dia no passado de que o que caracteriza algo como IA é a capacidade de inferir conexões não previamente especificadas entre entrada e saída de dados. Com base nisso, meu código ainda não usa inteligência artificial, mas é algo que desejo para o futuro. Peço então sua ajuda para melhorar o algoritmo e ajudar a tornar isso possível.

Algoritmo usado

A lógica que eu usei para classificar é a seguinte:

  • O que sejá considerado para classificar uma sentença são as palavras-chave contidas nela;
  • Toda palavra é uma palavra chave;
  • Toda categoria tem um conjuto de sentenças que ao serem processadas geram um conjunto de palavras chave;
  • Toda palavra-chave adicionada a uma categoria inicia com peso 1 e tem o peso incrementado em uma unidade no caso de ser adicionada outra vez;
  • Um peso positivo simboliza a possibilidade de ser do termo ser da categoria em questão, um peso negativo significa o contrário;
  • Uma mesma palavra está presente em todas as categorias, mas com diferentes pesos, representando a relevância daquela palavra para aquela categoria, ou um peso negativo, representando a relevância em não ser daquela categoria;
  • Se a categoria comida recebe a palavra arroz, todas as outras categorias recebem essa palavra, mas com peso decrementado em uma unidade;
  • O score de similaridade de uma frase para uma categoria é o resutado da divisão da soma dos pesos positivos recebido da categoria, dividido pelo somatório total de pesos recebidos da categoria (considerando negativos, em módulo, e os positivos);
  • No caso de uma palavra ser desconhecida, o peso dela é o peso da palavra mais parecida com ela multiplicado pelo percentual de similaridade entre as duas;
  • A categoria padrão unknown é calculada com base na quantidade de palavras desconhecidas em uma frase dividido pela quantidade de palavras da frase;

Agradecimentos ⭐

No momento da publicação, o repositório está com três estrelas (nunca tinha ganhado tantas), isso me deixou bem feliz 😄.

0