{"id":13934,"date":"2025-08-29T12:35:15","date_gmt":"2025-08-29T15:35:15","guid":{"rendered":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/2025\/08\/29\/o-que-aprendemos-sobre-mineracao-de-texto-a-partir-da-decisao-que-prendeu-bolsonaro\/"},"modified":"2025-08-29T12:35:15","modified_gmt":"2025-08-29T15:35:15","slug":"o-que-aprendemos-sobre-mineracao-de-texto-a-partir-da-decisao-que-prendeu-bolsonaro","status":"publish","type":"post","link":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/2025\/08\/29\/o-que-aprendemos-sobre-mineracao-de-texto-a-partir-da-decisao-que-prendeu-bolsonaro\/","title":{"rendered":"O que aprendemos sobre minera\u00e7\u00e3o de texto a partir da decis\u00e3o que prendeu Bolsonaro?"},"content":{"rendered":"<p>Considere o seguinte texto:<\/p>\n<p>\u201cO evento foi maravilhoso! A organiza\u00e7\u00e3o estava impec\u00e1vel, os palestrantes foram inspiradores e os participantes super engajados. Sa\u00ed de l\u00e1 com o cora\u00e7\u00e3o cheio de gratid\u00e3o e motiva\u00e7\u00e3o para aplicar tudo o que aprendi. O ambiente era acolhedor, as pessoas muito simp\u00e1ticas e a energia contagiante. A comida estava \u00f3tima, os intervalos bem distribu\u00eddos e tudo funcionou perfeitamente\u201d.<\/p>\n<p>Agora, leia este:<\/p>\n<p>\u201cO evento foi decepcionante. A organiza\u00e7\u00e3o deixou muito a desejar, com informa\u00e7\u00f5es desencontradas e falta de suporte para os participantes. Os palestrantes pareciam desmotivados, muitos apenas repetiram conte\u00fados gen\u00e9ricos, sem aprofundamento. Durante todo o dia, era vis\u00edvel o des\u00e2nimo no rosto das pessoas\u201d.<\/p>\n<h3><a href=\"https:\/\/www.jota.info\/produtos\/poder?utm_source=cta-site&amp;utm_medium=site&amp;utm_campaign=campanha_poder_q2&amp;utm_id=cta_texto_poder_q2_2023&amp;utm_term=cta_texto_poder&amp;utm_term=cta_texto_poder_meio_materias\"><span>Conhe\u00e7a o <span class=\"jota\">JOTA<\/span> PRO Poder, plataforma de monitoramento que oferece transpar\u00eancia e previsibilidade para empresas<\/span><\/a><\/h3>\n<p>Sentiu a diferen\u00e7a? No primeiro exemplo, o tom emocional \u00e9 predominantemente positivo, com termos como \u201cmaravilhoso\u201d, \u201cimpec\u00e1vel\u201d, \u201cgratid\u00e3o\u201d, entre outros. No segundo, palavras como \u201cdecepcionante\u201d, \u201cdesmotivados\u201d e \u201cdes\u00e2nimo\u201d indicam exatamente o oposto, uma sensa\u00e7\u00e3o de negatividade.<\/p>\n<p>Voc\u00ea pode se perguntar: \u201cMas\u00a0podemos medir as emo\u00e7\u00f5es desses textos?\u201d. \u00c0 primeira vista essa pergunta pode soar estranha, mas \u00e9 exatamente isso que iremos fazer. Quando falamos de an\u00e1lise de sentimentos em ci\u00eancia de dados, n\u00e3o estamos nos referindo ao estado psicol\u00f3gico de um indiv\u00edduo, mas sim a uma t\u00e9cnica automatizada da an\u00e1lise de conte\u00fado. A id\u00e9ia \u00e9 simples: identificar se um determinado texto transmite \u201cemo\u00e7\u00f5es positivas, negativas ou neutras\u201d de acordo com as palavras utilizadas<a href=\"https:\/\/www.jota.info\/#_ftn1\">[1]<\/a>.<\/p>\n<p>Inspirados por esse princ\u00edpio, criamos o <a href=\"https:\/\/hotmart.com\/pt-br\/marketplace\/produtos\/sentimentalizador-ferramenta-que-automatiza-analise-de-sentimentos-no-r\/P101203425M\" target=\"_blank\" rel=\"noopener\">Sentimentalizador<\/a>, ferramenta original que automatiza a an\u00e1lise de sentimentos em l\u00edngua portuguesa. O objetivo? Identificar, extrair e classificar emo\u00e7\u00f5es expressas por meio de l\u00e9xico previamente organizado. Como estudo de caso, examinaremos o <a href=\"https:\/\/noticias-stf-wp-prd.s3.sa-east-1.amazonaws.com\/wp-content\/uploads\/wpallimport\/uploads\/2025\/08\/04185006\/Pet-14129-decisao-assinada-2.pdf\" target=\"_blank\" rel=\"noopener\">conte\u00fado da Peti\u00e7\u00e3o 14.129<\/a>, em que o ministro do STF <a href=\"https:\/\/www.jota.info\/tudo-sobre\/alexandre-de-moraes\" target=\"_blank\" rel=\"noopener\">Alexandre de Moraes<\/a> determinou a pris\u00e3o domiciliar de <a href=\"https:\/\/www.jota.info\/tudo-sobre\/jair-bolsonaro\" target=\"_blank\" rel=\"noopener\">Jair Bolsonaro<\/a>.<\/p>\n<p>O primeiro passo foi localizar o arquivo da decis\u00e3o. Para tanto, fizemos uma busca no Google com os descritores \u201c<em>bolsonaro<\/em>\u201d, \u201c<em>pris\u00e3o<\/em>\u201d, \u201c<em>decis\u00e3o<\/em>\u201d e \u201c<em>na \u00edntegra<\/em>\u201d. Chegamos <a href=\"https:\/\/noticias-stf-wp-prd.s3.sa-east-1.amazonaws.com\/wp-content\/uploads\/wpallimport\/uploads\/2025\/08\/04185006\/Pet-14129-decisao-assinada-2.pdf\" target=\"_blank\" rel=\"noopener\">neste link<\/a>. Apesar do arquivo exibir termina\u00e7\u00e3o PDF, o conte\u00fado n\u00e3o est\u00e1 em formato de texto, mas sim dispon\u00edvel como figura.<\/p>\n<p>Isso representa um obst\u00e1culo adicional e exige um tratamento espec\u00edfico que tamb\u00e9m pode ser implementado no R com aux\u00edlio do <a href=\"https:\/\/cran.r-project.org\/web\/packages\/tesseract\/tesseract.pdf\" target=\"_blank\" rel=\"noopener\">pacote \u201ctesseract\u201d<\/a>. Recapitulando o passo a passo, vamos importar o arquivo original para o R, informar o idioma que estamos trabalhando (no caso, portugu\u00eas) e depois usar a fun\u00e7\u00e3o <strong>ocr<\/strong> que transforma figura em texto, conforme demonstra a Figura 1.<\/p>\n<p><strong>Figura 1: Importa\u00e7\u00e3o e aplica\u00e7\u00e3o do OCR<\/strong><\/p>\n\n<p>At\u00e9 aqui tudo tranquilo? Ent\u00e3o segue o jogo. Temos agora um novo objeto chamado <em>texto_extraido<\/em> que agrupa o conte\u00fado do PDF original como se fosse um .txt de bloco de notas. Ou seja, o R foi capaz de ler o arquivo original, decodificar a imagem e extrair os caracteres (texto), transformando tudo em uma vari\u00e1vel do tipo \u201c<em>character<\/em>\u201d. \u00c9 sobre esse arquivo que iremos nos concentrar a partir de agora. A Figura 2 ilustra o processamento do arquivo com \u00eanfase na limpeza do texto.<\/p>\n<p><strong>Figura 2: Limpeza do texto<\/strong><\/p>\n\n<p>Vamos fazer uma fun\u00e7\u00e3o de limpeza. Essa fun\u00e7\u00e3o vai, nessa ordem: a) transformar todo o texto em letra min\u00fascula; b) remover todas as pontua\u00e7\u00f5es; c) remover n\u00fameros, afinal, n\u00fameros n\u00e3o t\u00eam sentimentos; d) remover <em>stopwords<\/em>, que s\u00e3o palavras do tipo \u201cde\u201d, \u201cpara\u201d, \u201cenquanto\u201d, que n\u00e3o exibem valor sem\u00e2ntico significativo para os nosso prop\u00f3sitos e e) remover espa\u00e7os em branco. Depois de criada a fun\u00e7\u00e3o, vamos us\u00e1-la em nosso arquivo de texto. Se ficou viajando na maionese, pare tudo e releia o par\u00e1grafo<a href=\"https:\/\/www.jota.info\/#_ftn2\">[2]<\/a>.<\/p>\n<p>O terceiro passo consiste em carregar algum arquivo de l\u00e9xico na l\u00edngua que voc\u00ea pretende analisar (em nosso caso a portuguesa). Esse procedimento \u00e9 essencial pois \u00e9 a partir dele que iremos classificar as palavras como positivas, negativas ou neutras.<\/p>\n<p>Nesse exemplo, iremos trabalhar com o OpLexicon, l\u00e9xico desenvolvido especialmente para a l\u00edngua portuguesa, dispon\u00edvel publicamente <a href=\"https:\/\/raw.githubusercontent.com\/marlovss\/OpLexicon\/main\/OpLexicon.csv\" target=\"_blank\" rel=\"noopener\">neste link<\/a>. Esse arquivo cont\u00e9m uma lista extensa de palavras previamente rotuladas quanto ao seu valor emocional, com base em estudos lingu\u00edsticos e valida\u00e7\u00f5es das emp\u00edricas.<\/p>\n<p>\u00c9 a partir deste dicion\u00e1rio que o algoritmo aprende a interpretar o tom emocional do texto. Voc\u00ea pode trabalhar com outros arquivos e at\u00e9 mesmo criar o seu pr\u00f3prio l\u00e9xico, adaptando as palavras e caracter\u00edsticas do seu objeto de estudo. A Figura 3 ilustra como o arquivo do l\u00e9xico \u00e9 utilizado para classificar as palavras na an\u00e1lise de sentimento.<\/p>\n<p><strong>Figura 3: Aplica\u00e7\u00e3o do l\u00e9xico<\/strong><\/p>\n\n<p>Com aux\u00edlio do <a href=\"https:\/\/livro.curso-r.com\/7-2-dplyr.html\" target=\"_blank\" rel=\"noopener\">pacote dplyr<\/a>, muito \u00fatil para manipula\u00e7\u00e3o de arquivos no R, \u00e9 poss\u00edvel filtrar apenas as vari\u00e1veis de interesse, no caso, a palavra e o respectivo sentimento associado a ela.<\/p>\n<p>Por fim, palavras com valor lexical classificadas como \u2018\u20131\u2019 agora ser\u00e3o interpretadas como sentimento <em>negativo<\/em>. J\u00e1 palavras com valor \u20181\u2019 ser\u00e3o classificadas com sentimento <em>positivo<\/em>. As demais palavras classificadas como \u20180\u2019 ser\u00e3o <em>neutras<\/em>. A Figura 4 ilustra a parte do c\u00f3digo que implementa a an\u00e1lise de sentimento no R com aux\u00edlio do <a href=\"https:\/\/cran.r-project.org\/web\/packages\/tidytext\/index.html\" target=\"_blank\" rel=\"noopener\">pacote tidytext<\/a>.<\/p>\n<p><strong>Figura 4: An\u00e1lise de sentimento<\/strong><\/p>\n\n<p>Este trecho de c\u00f3digo realiza a an\u00e1lise de sentimentos a partir de textos em portugu\u00eas. Primeiramente, cada frase da base de dados \u00e9 decomposta em palavras isoladas (<em>tokens<\/em>). Em seguida, essas palavras s\u00e3o comparadas com um dicion\u00e1rio de sentimentos (OpLexicon) para identificar se cada palavra possui carga emocional positiva, negativa ou neutra.<\/p>\n<p>Depois disso, o c\u00f3digo conta quantas palavras pertencem a cada categoria de sentimento, renomeando as colunas para facilitar a leitura dos resultados. Por fim, calcula-se a porcentagem relativa de cada sentimento em rela\u00e7\u00e3o ao total e cria-se um r\u00f3tulo combinando a porcentagem com a quantidade absoluta de ocorr\u00eancias, permitindo uma visualiza\u00e7\u00e3o da distribui\u00e7\u00e3o dos sentimentos no conjunto analisado.<\/p>\n<p>Depois de processados (limpeza, tokeniza\u00e7\u00e3o e categoriza\u00e7\u00e3o), \u00e9 poss\u00edvel usar o pacote <em>ggplot2<\/em> para visualizar os resultados. A Figura 5 mostra o processo detalhado de constru\u00e7\u00e3o do gr\u00e1fico que vai ilustrar a distribui\u00e7\u00e3o de frequ\u00eancia da an\u00e1lise de sentimento.<\/p>\n<p><strong>Figura 5: Elabora\u00e7\u00e3o do gr\u00e1fico<\/strong><\/p>\n\n<p>Ao final, o c\u00f3digo vai produzir os seguintes resultados:<\/p>\n<p>tabela com a frequ\u00eancia absoluta e relativa da an\u00e1lise de sentimentos (positivo, negativo e neutro);<br \/>\ntabela sint\u00e9tica com a classifica\u00e7\u00e3o de cada palavra (\u00e9 importante verificar caso a caso para ter certeza de que a ferramenta fez o servi\u00e7o corretamente);<br \/>\num gr\u00e1fico de barras com os resultados consolidados da an\u00e1lise de sentimentos (ver Figura 6).<\/p>\n<p><strong>Figura 6: Visualiza\u00e7\u00e3o da an\u00e1lise de sentimento <\/strong><\/p>\n\n<p>Assim, considerando as 5.576 palavras escritas nas 25 p\u00e1ginas da Peti\u00e7\u00e3o 14.129, observamos que a maior parte do conte\u00fado \u00e9 neutro (54,9%), sendo cerca de 1 em 4 palavras com sentimento positivo e 20,95% dos termos associados a sensa\u00e7\u00f5es negativas.<\/p>\n<h3><a href=\"https:\/\/conteudo.jota.info\/marketing-lp-newsletter-jota-principal-lancamento\">Informa\u00e7\u00f5es direto ao ponto sobre o que realmente importa: assine gratuitamente a <span class=\"jota\">JOTA<\/span> Principal, a nova newsletter do <span class=\"jota\">JOTA<\/span><\/a><\/h3>\n<p>Em resumo, voc\u00ea viu como funciona uma an\u00e1lise de sentimentos no R, desde a prepara\u00e7\u00e3o do texto at\u00e9 a classifica\u00e7\u00e3o autom\u00e1tica das palavras com base no l\u00e9xico.<\/p>\n<p>O passo a passo mostrou que, com um pouco de criatividade e algumas linhas de c\u00f3digo, podemos realizar an\u00e1lises inovadoras e identificar padr\u00f5es emocionais que muitas vezes passariam despercebidos. Se esse tema despertou seu interesse, o caminho n\u00e3o precisa parar aqui. Pelo contr\u00e1rio. Pode ser apenas o seu primeiro passo.<\/p>\n<p>Materiais de replica\u00e7\u00e3o, incluindo dados e scripts computacionais, est\u00e3o publicamente <a href=\"https:\/\/osf.io\/trvjb\/\" target=\"_blank\" rel=\"noopener\">dispon\u00edveis aqui<\/a>.<\/p>\n<p><a href=\"https:\/\/www.jota.info\/#_ftnref1\">[1]<\/a> Como explicam os professores Pushman (@cbpuschmann) e Haim (@DrFollowMario), no livro \u201c<a href=\"https:\/\/content-analysis-with-r.com\/\"><em>Automated Content Analysis With R<\/em><\/a>\u201d, ao mostrarem que essa t\u00e9cnica, crescentemente difundida nas Ci\u00eancias Sociais, \u201c(sic) busca determinar a polaridade de um texto [\u2026] geralmente com palavras atribu\u00eddas a categorias positivas e negativas\u201d. Se quiser aprender mais sobre o tema, sugerimos os seguintes artigos: a) Bestvater, S. E., &amp; Monroe, B. L. (2023). Sentiment is not stance: Target-aware opinion classification for political text analysis. <em>Political Analysis<\/em>, <em>31<\/em>(2), 235-256; b) Rice, D. R., &amp; Zorn, C. (2021). Corpus-based dictionaries for sentiment analysis of specialized vocabularies. <em>Political Science Research and Methods<\/em>, <em>9<\/em>(1), 20-35 e c) Wilkerson, J., &amp; Casas, A. (2017). Large-scale computerized text analysis in political science: Opportunities and challenges. <em>Annual Review of Political Science<\/em>, <em>20<\/em>(1), 529-544.<\/p>\n<p><a href=\"https:\/\/www.jota.info\/#_ftnref2\">[2]<\/a> Dois artigos que devem te ajudar a visualizar as potencialidades da an\u00e1lise de texto na pesquisa empirica: &lt;https:\/\/bibanpocs.emnuvens.com.br\/revista\/article\/view\/455\/433&gt; e &lt;<a href=\"https:\/\/www.scielo.br\/j\/rsocp\/a\/W34dV4fXQfthZmSmQLmkXzs\/\">https:\/\/www.scielo.br\/j\/rsocp\/a\/W34dV4fXQfthZmSmQLmkXzs\/<\/a>&gt;.<\/p>","protected":false},"excerpt":{"rendered":"<p>Considere o seguinte texto: \u201cO evento foi maravilhoso! A organiza\u00e7\u00e3o estava impec\u00e1vel, os palestrantes foram inspiradores e os participantes super engajados. Sa\u00ed de l\u00e1 com o cora\u00e7\u00e3o cheio de gratid\u00e3o e motiva\u00e7\u00e3o para aplicar tudo o que aprendi. O ambiente era acolhedor, as pessoas muito simp\u00e1ticas e a energia contagiante. A comida estava \u00f3tima, os [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/posts\/13934"}],"collection":[{"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/comments?post=13934"}],"version-history":[{"count":0,"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/posts\/13934\/revisions"}],"wp:attachment":[{"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/media?parent=13934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/categories?post=13934"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aprimora.site\/carvalhoalmeidaadvogados\/wp-json\/wp\/v2\/tags?post=13934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}