Informe del panel - Sentimiento general

Este es un informe de panel SQL para el sentimiento general.

:discourse: Este informe requiere el plugin Discourse AI y Análisis de Sentimiento habilitados.

Este informe de panel compara el número de publicaciones clasificadas como positivas o negativas con la IA de “Sentimiento”, durante un período específico.

Al aprovechar el análisis de sentimiento, el informe clasifica las publicaciones como positivas o negativas según un umbral definido, que se puede ajustar. Esta categorización se utiliza luego para calcular el sentimiento general de cada día dentro del rango de fechas dado. Este informe es particularmente útil para comprender el estado de ánimo o el sentimiento general de las discusiones de la comunidad durante momentos específicos.

-- [params]
-- date :start_date = 2024-01-13
-- date :end_date = 2024-02-14
-- double :threshold = 0.60

SELECT
    DATE_TRUNC('day', p.created_at)::DATE AS date,
    COUNT(CASE WHEN (classification->>'positive')::float > :threshold THEN 1 ELSE NULL END) AS positive_sentiment_posts,
    COUNT(CASE WHEN (classification->>'negative')::float > :threshold THEN 1 ELSE NULL END) AS negative_sentiment_posts,
    COUNT(CASE WHEN (classification->>'positive')::float > :threshold THEN 1 ELSE NULL END) - COUNT(CASE WHEN (classification->>'negative')::float > :threshold THEN 1 ELSE NULL END) AS overall_sentiment
FROM
    classification_results AS cr
    INNER JOIN posts p ON p.id = cr.target_id AND cr.target_type = 'Post'
    INNER JOIN topics t ON t.id = p.topic_id
    INNER JOIN categories c ON c.id = t.category_id
WHERE
    t.archetype = 'regular' AND
    p.user_id > 0 AND
    cr.model_used = 'cardiffnlp/twitter-roberta-base-sentiment-latest' AND
    (p.created_at > :start_date AND p.created_at < :end_date)
GROUP BY
    DATE_TRUNC('day', p.created_at)

Explicación de la consulta SQL

La consulta SQL opera realizando los siguientes pasos:

  • Definición de parámetros: Comienza definiendo tres parámetros:
    • :start_date y :end_date para especificar el rango de fechas para el análisis.
    • :threshold para establecer la puntuación mínima para clasificar los sentimientos como positivos o negativos. El valor predeterminado para :threshold se establece en 60 para que coincida con el informe del panel.
  • Selección y unión de datos:
    • La consulta selecciona datos de la tabla classification_results, que almacena los resultados del análisis de sentimiento en las publicaciones.
    • Une classification_results con la tabla posts para filtrar las publicaciones según su fecha de creación y asegura que el análisis sea solo para publicaciones (cr.target_type = 'Post').
    • Uniones adicionales con las tablas topics y categories aseguran que el análisis se limite a publicaciones regulares en categorías específicas.
  • Clasificación de sentimiento:
    • Para cada publicación, verifica la puntuación de sentimiento de la tabla classification_results. Si la puntuación de sentimiento positivo es mayor que el umbral, cuenta la publicación como positiva. De manera similar, cuenta una publicación como negativa si su puntuación de sentimiento negativo excede el umbral.
  • Agregación:
    • La consulta luego agrupa los resultados por día, basándose en la marca de tiempo created_at de cada publicación. Para cada día, calcula:
      • El número total de publicaciones positivas.
      • El número total de publicaciones negativas.
      • El sentimiento general, que es la diferencia entre el número total de publicaciones positivas y negativas.

Resultados de ejemplo

fecha positive_sentiment_posts negative_sentiment_posts overall_sentiment
2024-01-13 10 21 -11
2024-01-14 11 20 -9
2024-01-15 23 7 16
2024-01-16 27 10 17
2024-01-17 47 22 25
5 Me gusta

9 publicaciones se dividieron en un nuevo tema: Problemas con el relleno de sentimiento

He intentado ejecutar esto y obtengo 0 resultados, sin embargo, tenemos análisis de sentimiento y tickets de IA, puedo verlo en ese informe de front-end pero no en esta consulta.

Hola Sophie:

¿Cuándo habilitaste el análisis de sentimiento en tu sitio?

Si elegiste febrero de 2024 como fecha de finalización en esta consulta, ¿se habilitó el análisis antes de esa fecha?

Con el análisis de sentimiento de IA, solo las nuevas publicaciones se clasifican desde la fecha en que se habilitó el análisis, por lo que si no lo tenías habilitado antes de las fechas que elegiste en la consulta, esperaría que devolviera 0 resultados.

Es posible que necesites ajustar los siguientes parámetros en la consulta para que coincidan con las fechas en las que deseas ver el sentimiento en tu sitio:

-- date :start_date = 2024-01-13
-- date :end_date = 2024-02-14