

# Como verificar o assunto de uma resposta no Reddit

Leia o contexto pai de uma resposta no Reddit, encontre o alvo específico e rotule a posição em relação a cada alvo separadamente. Você pode montar um conjunto de dados de sentimento limpo a partir de discussões da comunidade. Este método mostra como preparar comentários do Reddit antes de testar qualquer modelo.

## Configuração da coleta

Para obter dados brutos, use um programa hospedado de coleta de dados chamado Actor. O scraper Reddit Comments ajuda a extrair threads públicas. Altere a predefinição da tarefa para usar um URL de thread conhecido. Defina o limite máximo de comentários por postagem entre 1 e 500, com padrão de 100. Nesta tarefa inicial, use um teto de 3 linhas. A entrada postUrls exige de 1 a 50 threads públicas conhecidas, e maxCommentsPerPost é de 1 a 500 por postagem, com a predefinição 250 alterada para 3 no piloto.

Cada linha de comentário tem nomes de campo exatos: postId, commentId, parentId, depth, body, status, unavailableFields e observedAt. Preserve os nomes exatos, não aliases com espaços. O status do conjunto de dados é somente ok, deleted ou removed. Uma execução parcial ou com falha, ou um estado de entrada, é separado do status da linha.

Os dados de saída da execução incluem commentsSaved, duplicatesSkipped, hiddenBranchesRemaining, completionReason, status, isComplete e inputResults. Os campos por entrada incluem commentsFound, commentsSaved, status e reason. No piloto atual, três IDs com body presente têm parentId e depth nulos, hiddenBranchesRemaining nulo, e os resultados gerais ou de entrada são parciais apesar do sinalizador de processamento isComplete=true. Isto não é prova de contexto completo nem de qualidade do classificador. Se um pai correspondente for necessário, use uma verificação pública manual autorizada ou mantenha o contexto desconhecido. Nunca adivinhe uma linha vizinha.

## Definição de alvos e rótulos

Antes de ler qualquer texto, defina o conjunto de alvos e a unidade de rótulo. Uma unidade aqui é um comentário mais um alvo, não um comentário ou uma pessoa. Especifique cinco rótulos com regras simples:

- Positivo: aprovação expressa.
- Negativo: desaprovação expressa.
- Neutro: exposição de fatos sem uma posição.
- Misto: ter visões positivas e negativas ao mesmo tempo.
- Incerto: o alvo ou a posição não está claro.

Um alvo é a pessoa, o produto, a política ou a ação específica de que as palavras falam.

## Oito passos para analisar comentários

1. Defina a pergunta, o conjunto de alvos e a unidade de rótulo antes de ler.
2. Preserve as linhas de origem e os dados de saída. Mantenha a identidade do comentário, o texto, o status e os dados ausentes. Faça uma tabela de rótulos de trabalho em vez de gravar sentimento adivinhado nos campos originais.
3. Leia o contexto do pai correspondente quando estiver disponível. Encontre menções explícitas ao alvo e pronomes. Se você não puder resolver um pronome com segurança, mantenha o alvo e o contexto incertos. Trate o sarcasmo como motivo para revisão, não como rótulo negativo automático.
4. Separe afirmações com vários alvos. Um comentário pode elogiar a velocidade e não gostar de uma mudança de preço. Não atribua uma preferência universal.
5. Salve o ID do comentário, o alvo, a passagem de evidência, a fonte do contexto, o rótulo e o motivo. Mantenha palavras citadas de outras pessoas separadas da posição do próprio autor. Não rotule uma pergunta como reclamação sem contexto.
6. [Peça a um segundo leitor que codifique um pequeno subconjunto comum](/pt-BR/articles/verificar-concordancia-entre-codificadores-de-comentarios-do-reddit/). Registre a concordância bruta e anote quais regras causaram discordâncias. Não afirme alta acurácia sem um padrão de referência justificado. Refine as regras e rotule de novo os casos afetados.
7. Informe separadamente as contagens por unidades de comentário-alvo e por IDs de comentário distintos. Comentários com vários alvos acrescentam mais linhas de rótulo do que comentários. Mantenha visíveis, fora dos denominadores resolvidos, os rótulos incertos e os comentários cujo texto (campo body) está indisponível.
8. Entregue uma tabela de posição por alvo, um livro de códigos e notas de discordância. Isto prepara um conjunto de dados que pode ser inspecionado. Não dá prioridades de produto, opiniões representativas nem ações automáticas de resposta.

Todo o texto e todos os IDs neste exemplo são inventados. Imagine que o contexto pai P pergunta sobre o novo preço mensal do produto A e o onboarding do produto B.

| commentID | fonte de contexto correspondente | alvo | passagem exata da fonte | rótulo | motivo |
| --- | --- | --- | --- | --- | --- |
| C1 | Contexto P | Produto A | "Ainda gosto de A" | Positivo | Expressa posição positiva sobre o produto A |
| C1 | Contexto P | Mudança de preço (A) | "o novo preço é ruim" | Negativo | Expressa posição negativa sobre a mudança de preço |
| C2 | Contexto P | Onboarding (B) | "B foi fácil de aprender" | Positivo | Elogio à facilidade do onboarding |
| C2 | Contexto P | Velocidade (A) | "A foi mais rápido para a nossa equipe" | Positivo | Elogio à velocidade limitado à equipe do autor |
| C3 | Contexto P (confirmado) | Aumento de preço | "Ótimo, mais um aumento de preço" | Negativo | Reclamação sarcástica confirmada pelo pai P |
| C4 | Desconhecido | Desconhecido | "Isso funciona offline?" | Incerto | Alvo não resolvido sem contexto pai |

Observe que C5 tem status de body removed e fica fora da tabela de sentimento, como um registro de disponibilidade sem rótulo de sentimento.

## Exemplo fictício passo a passo

O comentário C1 diz: "Ainda gosto de A, mas o novo preço é ruim." Isto gera duas unidades. O produto A é positivo. A mudança de preço de A é negativa. Não atribua uma posição negativa universal ao produto A.

O comentário C2 diz: "B foi fácil de aprender; A foi mais rápido para a nossa equipe." Isto torna o onboarding de B positivo e a velocidade de A positiva somente para a equipe do autor. Nenhum vencedor geral é declarado.

O comentário C3 diz: "Ótimo, mais um aumento de preço." Esta mudança de preço, como alvo, só é contada se o contexto pai P estiver confirmado. Rotule como negativo ou como sarcasmo após revisão manual; caso contrário, mantenha como incerto.

O comentário C4 diz: "Isso funciona offline?" Há um pronome não resolvido sem contexto pai. O alvo é desconhecido, então rotule como incerto. Não transforme uma pergunta em feedback negativo sobre o modo offline.

O comentário C5 teve o body removido, então não é analisado. [Mantenha a posição de disponibilidade](/pt-BR/articles/como-registrar-texto-ausente-em-estudo-de-modera%C3%A7%C3%A3o-no-reddit/) na tabela.

Com um pai confirmado para C3, a tabela de rótulos tem seis unidades de comentário-alvo a partir de quatro comentários com body disponível. Isso significa duas para C1, duas para C2, uma para C3 e uma para C4.

As unidades resolvidas somam cinco. Três são positivas para C1 A, C2 B e C2 A. Duas são negativas para o preço de C1 e o preço de C3. Uma é incerta para C4.

A pontuação positiva é 3 dividido por 5, o que equivale a 60 por cento somente das unidades de alvo resolvidas. Não é 60 por cento dos comentaristas nem da opinião da comunidade. Há cinco posições observadas e quatro comentários com body disponível, e C5, com o valor de status removed, fica fora do sentimento.

## Concordância da codificação e limites

Dois codificadores fictícios rotulam as cinco unidades resolvidas. A concordância inicial deles é 4 de 5, o que equivale a 80 por cento. A diferença deles em C3 diz respeito a sarcasmo e contexto. Eles revisam a condição real do pai e concordam com uma regra. Isto não estabelece uma acurácia geral de 80 por cento. Se o pai de C3 estiver ausente, o caso deve permanecer incerto. O denominador resolvido cai para 4. Não invente confirmação de pai a partir de linhas vizinhas.

O artefato final mostra ponteiros de origem e cada alvo separadamente, com C4 e C5 em um registro de desconhecidos e indisponíveis. Não fornece tabelas de frequência de tema nem de prioridade de funcionalidade. Discussões reais seguem padrões semelhantes de comunidade. Você pode consultar uma [discussão real de projeto de sentimento](https://www.reddit.com/r/webscraping/comments/15x92f1/how_do_i_scrape_comments_from_reddit_posts/) para mais contexto.

## Próxima ação

Abra a [Tarefa do conjunto de dados de análise de sentimento de comentários do Reddit](https://apify.com/chronometrica/reddit-comments-scraper/examples/reddit-comment-sentiment-dataset) usando o [Reddit Comments Scraper Actor](https://apify.com/chronometrica/reddit-comments-scraper) com uma thread conhecida e pequena, mantenha os contextos desconhecidos e codifique cada unidade de comentário-alvo antes de testar qualquer modelo de sentimento.

## Fontes e leituras adicionais

- [Reddit Comments Scraper Actor](https://apify.com/chronometrica/reddit-comments-scraper)
- [Tarefa do conjunto de dados de análise de sentimento de comentários do Reddit](https://apify.com/chronometrica/reddit-comments-scraper/examples/reddit-comment-sentiment-dataset)
- [Guia de extração de legendas do YouTube](https://chronometrica.com/pt-BR/articles/como-obter-transcri%C3%A7%C3%A3o-do-youtube-e-verificar-legendas-ausentes/)
- [Discussão sobre web scraping no Reddit](https://www.reddit.com/r/webscraping/comments/15x92f1/how_do_i_scrape_comments_from_reddit_posts/)