Twitter Mood Light - humor del mundo en una caja de (11 / 13 paso)

Paso 11: Programación 5: el humor del mundo de la computación

La luz de estado de ánimo debe ser lo suficientemente sensible para reflejar lo que acaba de suceder en el mundo, pero debe no ser tan excesivamente sensible en cuanto a ser susceptibles al ruido y también no ser demasiado lento a fines de informarle de un evento de gran mundo.

Lo importante es normalizar y suavizar los datos cuidadosamente y ajustar los umbrales para dar el nivel correcto de sensibilidad y alarma. (es decir, debe destellar cuando una noticia de titular
sucede y no cuando un programa comienza, GMT)

Emoción y estado de ánimo, temperamento

En primer lugar, se calcula la "emoción del mundo" buscando en twitter por los tweets con cada uno de los tipos 7 Estado de ánimo (amor, alegría, sorpresa, ira, miedo, envidia, tristeza).

Una medida de "tweets por minuto" se utiliza para calcular la emoción actual. Un mayor número de tweets por minuto sugiere que más personas actualmente sienten esa emoción.

Las emociones son volátiles, por lo que estos estados emocionales de breve duración se suavizan con el tiempo mediante el uso de una "media móvil exponencial rápida"
(ver en.wikipedia.org/wiki/Moving_average#Exponential_moving_average)

Esto nos da razones para los diferentes Estados de ánimo.

Cada relación Estado de ánimo se compara a una línea de base, una "lenta media móvil exponencial", que yo llamo el "temperamento del mundo".

El estado de ánimo que se ha desviado más alejado de su valor de temperamento de base se considera que el estado de ánimo actual de mundo.

La desviación se mide como un porcentaje, así, por ejemplo, si el miedo cambia de contabilidad 5% de tweets a 10%, entonces esto es más significativo que la alegría cambia de 40% a 45% (son ambos un + 5% en términos aditivos, pero temen aumentó en un 100% en términos multiplicativas.)

Por último, los valores de temperamento del mundo son retocados ligeramente a la luz de este nuevo resultado. Esto da al sistema un auto propiedad de ajuste para que el temperamento del mundo puede cambiar muy lentamente con el tiempo.

Estos valores en WorldMood.pde se utilizan para ajustar cómo sensibles el sistema es la información.

  • ¿Quieres captar cuando las personas están felices sobre un resultado deportivo o miedo sobre el clima?
  • O ¿sólo rastrear grandes eventos como desastres naturales o ataques terroristas?

ajustar en consecuencia...

#define emotionSmoothingFactor (0.1f)
#define moodSmoothingFactor (0.05f)
#define moderateMoodThreshold (2.0f)
#define extremeMoodThreshold (4.0f)

MOOD_TYPEWorldMood::ComputeCurrentMood() {/ / encontrar lo ratios de corriente floatsum = 0;  para (inti = 0; i < NUM_MOOD_TYPES; i ++) {suma += m_worldMoodCounts [i];  } Si (suma < 1e-4f) {#ifdefDEBUG m_printer -> Imprimir ("inesperado total m_worldMoodCounts"); #endif / / ifdef depuración returnm_worldMood;  } para (inti = 0; i < NUM_MOOD_TYPES; i ++) {m_worldMoodRatios [i] = m_worldMoodCounts [i] / sum;  } / / Encuentre la relación que se ha incrementado en la mayoría, como proporción de su media móvil.  Así que, por ejemplo, un aumento del 5% al 10% es más significativo que un aumento del 50% al 55%.    floatmaxIncrease = - 1.0f;    para (inti = 0; i < NUM_MOOD_TYPES; i ++) {floatdifference = m_worldMoodRatios [i] - m_worldTemperamentRatios [i];       Si (m_worldTemperamentRatios [i] < 1e-4f) {#ifdefDEBUG m_printer -> Imprimir ("m_worldTemperamentRatios inesperado"); #endif / / ifdef depuración continúe;     } de la diferencia / = m_worldTemperamentRatios [i];       Si (diferencia > maxIncrease) {maxIncrease = diferencia;       m_worldMood = (MOOD_TYPE). Este es ahora el estado de ánimo más dominante del mundo!     }} / / actualiza el temperamento del mundo, como una media móvil exponencial del estado de ánimo.  Esto permite que los ratios de referencia, por ejemplo temperamento del mundo, a cambiar lentamente con el tiempo.  Esto significa, en efecto, que el 2 º derivado del estado de ánimo mundo wrt tiempo forma parte de los actuales métodos de estado de ánimo.  y así, después de un gran evento de inducción de ira, podemos ver cuando la gente comienza a enojarse menos.  suma = 0;  para (inti = 0; i < NUM_MOOD_TYPES; i ++) {si (m_worldTemperamentRatios [i] < = 0) {#ifdefDEBUG m_printer -> Imprimir ("m_worldTemperamentRatios debe ser inicializado en la construcción"); #endif / / #ifdef DEBUG m_worldTemperamentRatios [i] = m_worldMoodRatios [i];     } else {constfloata = m_moodSmoothingFactor;       m_worldTemperamentRatios [i] = (m_worldTemperamentRatios [i] * (1.0f - un)) + (m_worldMoodRatios [i] * un);     } suma += m_worldTemperamentRatios [i];  } Si (suma < 1e-4f) {#ifdefDEBUG m_printer -> Imprimir ("total m_worldTemperamentRatios total inesperado"); #endif / / #ifdef DEBUG returnm_worldMood;  } / / y, finalmente, renormalise, para mantener la suma de los cocientes promedio móviles como 1.0f para (inti = 0; i < NUM_MOOD_TYPES; i ++) {m_worldTemperamentRatios [i] * = 1.0f / sum;   #ifdefDEBUG m_printer -> Imprimir ("cociente del temperamento:");     m_printer -> println(m_worldTemperamentRatios[i]); #endif} #ifdefDEBUG / / depurar código - comprobar suma es 1.  suma = 0;  para (inti = 0; i < NUM_MOOD_TYPES; i ++) {suma += m_worldTemperamentRatios [i];  } Si (suma > 1.0f + 1e-4f || suma < 1.0f - 1e-4f) {m_printer -> println ("renormalise inesperado resultado");  } #endif / / #ifdef DEBUG returnm_worldMood; }

Artículos Relacionados

Mapa del mundo en una calabaza

Mapa del mundo en una calabaza

Ya que la forma de una calabaza redonda y el mundo es redondo... ¿por qué no crear un mapa general del mundo en la calabaza? Funciona, pero sólo algunos de los no. No es posible tallar todo el mundo sobre la calabaza. Cuando talladas a mina, había ta
DIY: Hacer tu propio sostenedor del folleto de una caja de tejido

DIY: Hacer tu propio sostenedor del folleto de una caja de tejido

si alguna vez ha tenido la necesidad de uno o dos sostenedores del folleto mostrar su mensaje a los mercados, en su club, u otras aplicaciones limitadas, probablemente te has preguntado si de alguna manera podría hacer su propio de algo alrededor de
Una carcasa del Zippo de una caja de Tic-Tac

Una carcasa del Zippo de una caja de Tic-Tac

Hola. Para mi primer instructable, voy a mostrarle cómo utilizar un cuadro de Tic-Tac para ocultar y utilizar una marca Zippo encendedor. Usted puede tenerlo ahí, delante de alguien, etc., y no serán el más sabio. Con mi técnica, aunque nunca he vist
Mapa del mundo en una pared

Mapa del mundo en una pared

Es realmente fácil de hacer este mural de la pared, y parece que 1 millón de dólares cuando se hace!Materiales:Pintura lápiz (a delinear el mapa)ProyectorProyector de hojasImagen de un mapaElige una imagen en línea que desea utilizar. Recomiendo usar
Cambiar una caja en un lindo organizador del zapato de

Cambiar una caja en un lindo organizador del zapato de

todo el mundo tiene una caja de zapatos tirada por ahí. Tomar y dar un cambio de imagen... para hacer el organizadorY quiero decir algo que no era mi Idea consegui esto de un YouTube video y screenshoted... Sólo quería compartir con ustedesPaso 1: Re
Libro de Loudest (portable) * del mundo

Libro de Loudest (portable) * del mundo

para mi próximo instructable, planeo dar un libro a una voz. Cuando digo a voz, lo que me refiero es un conjunto de altavoces y un lugar para tener el iPod.Los cuadros terminados son similares a los antes fotos. Es cómo esperaba que sería. La impresi
Monstruo en una caja, Haunted House Halloween Prop

Monstruo en una caja, Haunted House Halloween Prop

Cuando construí este proyecto, que originalmente no estaba planeando en hacer un instructable con él, así que por favor me perdone por la falta de fotos desde el principio en el proceso de construcción. Sin embargo, con la excepción de la mecánica, l
Zapato plataforma - de una caja de vino

Zapato plataforma - de una caja de vino

Este es un corto instructables sobre la construcción de este estante del zapato de una caja de vino y unos tubos de aluminio.Paso 1: Paso 1: herramientas y material necesarioPara este estante del zapato, solo necesitas algunas herramientas de mano y
Hacer una caja de engranajes de una turbina de viento

Hacer una caja de engranajes de una turbina de viento

cómo hacer un taladro del pedacito en una caja de engranajes de una turbina de viento de InstructablesPara ello he utilizado:-Bloque de nylon-taladro de manoHerramientas:-Torno-Pie de rey (calibre de la diapositiva)-Fresadora CNC (dependen de taladro
Más pequeño 4 del mundo x 4 x 4 RGB LED cubo

Más pequeño 4 del mundo x 4 x 4 RGB LED cubo

Creo que esto es "actualidad" Tiniest 4 x 4 x 4 COLOR LED cubo del mundo. Hay más pequeños pero son generalmente solo color y conformada por menos LEDs (3 x 3 x 3).El cubo de LED real es menos de 1 pulgada cuadrada. Usa sesenta y cuatro 3.2mmx2.
Treelegram - hackear un árbol de Navidad luces de cualquier parte del mundo!

Treelegram - hackear un árbol de Navidad luces de cualquier parte del mundo!

Hola a todos,después de algunos años había registrado en Instructables y nunca publicaron cualquier tutorial, ha llegado el momento!Así que, aquí estoy, dispuesto a compartir mi último proyecto, llamado Treelegram.Treelegram es un Social árbol de Nav
Bombilla LED de luz (el mejor del mundo) - parte 2

Bombilla LED de luz (el mejor del mundo) - parte 2

Bombilla de luz con corriente alterna de 230 v, con cable conector y sin soldadura. (Instrucciones para 110VAC también dio a entender a continuación.)Vea este enlace para la versión anterior y guía paso a paso:Paso 1: componentes: http://www.youtube.
Kit de supervivencia más pequeño del mundo V2.0

Kit de supervivencia más pequeño del mundo V2.0

¡ Haz más pequeño kit de supervivencia del mundo V2.0! Si no han tenido oportunidad de ver el original siga este enlace: V1.0Esta versión ha sido completamente sumergida en agua para más de una hora, congelado en un bloque de hielo y mucho más. Esta
Acceso a ARIAG25 desde cualquier parte del mundo

Acceso a ARIAG25 desde cualquier parte del mundo

SISTEMAS DE ACMEDiseño y fabricación en Italia Linux incrustado placas desde el 2005. Nuestro negocio principal es para crear alta calidad CPU Linux módulos diseñados para el mercado profesional con la disponibilidad a largo plazo, alta confiabilidad