{"id":105,"date":"2026-08-26T09:00:00","date_gmt":"2026-08-26T12:00:00","guid":{"rendered":"https:\/\/dcoder.io\/blog\/medir-humor-de-chat-ao-vivo\/"},"modified":"2026-09-20T20:44:20","modified_gmt":"2026-09-20T23:44:20","slug":"medir-humor-de-chat-ao-vivo","status":"publish","type":"post","link":"https:\/\/dcoder.io\/blog\/medir-humor-de-chat-ao-vivo\/","title":{"rendered":"Medir o humor de um chat ao vivo \u00e9 mais dif\u00edcil do que parece"},"content":{"rendered":"<p>O ChatMood l\u00ea o chat de uma transmiss\u00e3o ao vivo e responde a uma pergunta que todo apresentador faz sozinho: a audi\u00eancia est\u00e1 gostando disto? Quem est\u00e1 no ar n\u00e3o consegue ler mil mensagens por minuto e falar ao mesmo tempo.<\/p>\n<p>Eu achei que fosse um problema de modelo. N\u00e3o era.<\/p>\n<h2>Chat n\u00e3o se parece com avalia\u00e7\u00e3o de produto<\/h2>\n<p>An\u00e1lise de sentimento amadureceu em texto comportado. Avalia\u00e7\u00e3o de loja, pesquisa de satisfa\u00e7\u00e3o, resposta de formul\u00e1rio. Frase inteira, assunto declarado, uma opini\u00e3o por texto.<\/p>\n<p>Chat de transmiss\u00e3o \u00e9 o oposto disso. As mensagens t\u00eam tr\u00eas palavras, metade \u00e9 emote, e ironia ali \u00e9 o padr\u00e3o. A palavra &#8220;clap&#8221; pode ser elogio ou deboche, e o que decide est\u00e1 no que aconteceu dez segundos antes, nunca na mensagem em si. Some a isso a repeti\u00e7\u00e3o: uma piada pega, trezentas pessoas mandam a mesma linha em vinte segundos, e um classificador ing\u00eanuo conta trezentos votos onde existe um.<\/p>\n<h2>Onde o tempo realmente foi<\/h2>\n<p>Tr\u00eas problemas consumiram mais tempo que o modelo.<\/p>\n<p>O primeiro foi agrupar repeti\u00e7\u00e3o. Mensagens id\u00eanticas numa janela curta viram um evento com peso, e n\u00e3o N opini\u00f5es independentes.<\/p>\n<p>O segundo foi segurar o fluxo. Um pico de chat n\u00e3o pode derrubar o painel nem atrasar a leitura, porque o que vale \u00e9 a tend\u00eancia do minuto e ela precisa chegar enquanto aquele minuto ainda importa.<\/p>\n<p>O terceiro foi mostrar sem mentir. Um n\u00famero de 0 a 100 sugere uma precis\u00e3o que n\u00e3o existe ali. O painel mostra dire\u00e7\u00e3o e intensidade ao longo do tempo, que \u00e9 o suficiente para algu\u00e9m decidir se muda de assunto.<\/p>\n<h2>O que levo para os projetos de cliente<\/h2>\n<p>Quando algu\u00e9m me pede an\u00e1lise de sentimento, minha primeira pergunta n\u00e3o \u00e9 qual modelo usar. \u00c9 que decis\u00e3o essa medida vai apoiar, quem vai tomar essa decis\u00e3o e com quantos segundos de anteced\u00eancia.<\/p>\n<p>Se a resposta \u00e9 um relat\u00f3rio mensal, quase qualquer abordagem serve. Se \u00e9 algu\u00e9m decidindo ao vivo, o problema deixa de ser classificar texto e passa a ser entregar um sinal leg\u00edvel dentro de uma janela curta. A\u00ed a engenharia em volta do modelo pesa mais que o modelo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An\u00e1lise de sentimento funciona bem em avalia\u00e7\u00e3o de produto e mal em chat de transmiss\u00e3o. O ChatMood nasceu dessa diferen\u00e7a, e a maior parte do trabalho n\u00e3o foi no modelo.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-105","post","type-post","status-publish","format-standard","hentry","category-sem-categoria"],"_links":{"self":[{"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/posts\/105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/comments?post=105"}],"version-history":[{"count":1,"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/posts\/105\/revisions"}],"predecessor-version":[{"id":115,"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/posts\/105\/revisions\/115"}],"wp:attachment":[{"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/media?parent=105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/categories?post=105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dcoder.io\/blog\/wp-json\/wp\/v2\/tags?post=105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}