Texto minería de combate: para ver lo que están haciendo en su casa en el extranjero durante el aislamiento del virus?

A través de la minería de texto, personas encerradas durante el coronavirus es que hacer y explorar sus sentimientos y emociones llevó a cabo el análisis

A medida que más y más países anunciaron el cierre del país, se pidió a la gente a permanecer en aislamiento en el hogar. Tomamos un vistazo a las personas extranjeras cómo gastar el "apagado" durante este tiempo y lo que se siente, por lo que he analizado algunos de los tweets en este artículo para ver lo que todos los amigos de lo ajeno en el final.

Adquisición de datos y procesamiento previo

Para la recogida de datos, utilizo biblioteca txxxR para extraer los 20.000 tweets con hashtags "#stayhome" de la push "#quarantine" y.

Después de importar los datos en R, tenemos que impulsar pretratados y texto en una palabra (token) para el análisis de marcado.

tweet_words <- tweets %>%
  select(id,
         screenName,
         text,
         created) %>%
  mutate(created_date = as.POSIXct(created, format="%m/%d/%Y %H")) %>%
  mutate(text = replace_non_ascii(text, replacement = "", remove.nonconverted = TRUE)) %>%
  mutate(text = str_replace_all(text, regex("@\\w+"),"" )) %>%
  mutate(text = str_replace_all(text, regex("[[:punct:]]"),"" )) %>%
  mutate(text = str_replace_all(text, regex("http\\w+"),"" )) %>%
  unnest_tokens(word, text)

Elimina las palabras comunes y las palabras vacías de los datos

Después de que los conjuntos de datos y premarcado, necesitamos eliminar palabras de parada inútiles para el análisis, tales como "para", "el", "una" y así sucesivamente.

#Remove stop words
my_stop_words <- tibble(
  word = c(
    "https","t.co","rt","amp","rstats","gt",
    "cent","aaya","ia","aayaa","aayaaaayaa","aaaya"
  ),
  lexicon = "txxxxr"
)#Prepare stop words tibble
all_stop_words <- stop_words %>%
  bind_rows(my_stop_words)#Remove numbers
suppressWarnings({
  no_numbers <- tweet_words %>%
    filter(is.na(as.numeric(word)))
})#Anti-join the stop words and tweets tibbles
no_stop_words <- no_numbers %>%
  anti_join(all_stop_words, by = "word")

También podemos usar el siguiente código para comprobar rápidamente para ver cuántas palabras de borrado concentrados con discapacidad de los datos:

tibble(total_words = nrow(tweet_words),
  after_cleanup = nrow(no_stop_words)
)

Los resultados son como sigue:

Número de la derecha (155.940) es el número de fichas que quedan después de la eliminación de palabras vacías.

Ahora nuestra limpieza de datos se ha completado, se puede manejar

El análisis de frecuencia de palabras

Los métodos comunes de minería de texto es mirar la frecuencia de palabras. En primer lugar, echemos un vistazo a algunos de los tweets palabras más comúnmente utilizadas.

Las cinco primeras palabras son:

 隔离-出现13358次
 Covid19 –出现1628次
 冠状病毒-出现了1566次
 天-出现1200次
 家-出现了1122次

Es evidente que el coronavirus aislados COVID-19 situación / se relaciona con las personas con el fin de evitar la exposición al virus y la estancia en casa.

#Unigram word cloud
no_stop_words %>%
  count(word) %>%
  with(wordcloud(word, n, max.words = 100, random.order = FALSE,scale=c(4,0.7), 
colors=brewer.pal(8, "Dark2"),random.color = TRUE))

Las palabras positivas y negativas más comunes

Después de obtener la frecuencia de las palabras, podemos utilizar el "NRC" Diccionario asignar una etiqueta a cada palabra (positivo o negativo). Entonces, podemos crear etiquetas para etiquetar la nube de palabras.

Nube de palabras espectáculo, sabemos que la mayoría de la gente siente la presión durante el aislamiento y el aburrimiento. Pero en el lado positivo, también aprendimos que está enviando un mensaje amistoso, decimos que otros permanecen seguros y saludables.

#Positive and negative terms word cloud
no_stop_words %>%
  inner_join(get_sentiments("bing"), by = c("word" = "word")) %>%
  count(word, sentiment, sort = TRUE) %>%
  acast(word ~ sentiment, value.var = "n", fill = 0) %>%
  comparison.cloud(colors = brewer.pal(2, "Dark2"),
                   max.words = 100)

El análisis de sentimientos

Texto y análisis de los sentimientos nos pueden ayudar a expresar puntos de vista de la identificación de datos de texto. Nos ayuda a comprender las actitudes y sentimientos sobre un tema en particular.

Tweets extraen rango emoción

Cuando la gente se preocupa de corona virus, la mayoría de nosotros todavía mantienen una actitud positiva. Sorprendentemente, en comparación con las palabras negativas, se emite una palabra más positiva durante el aislamiento.

#Sentiment ranking
nrc_words <- no_stop_words %>%
  inner_join(get_sentiments("nrc"), by = "word")sentiments_rank <- nrc_words %>%
  group_by(sentiment) %>%
  tally %>%
  arrange(desc(n))#ggplot
sentiments_rank %>%
  #count(sentiment, sort = TRUE) %>%
  #filter(n > 700) %>%
  mutate(sentiment = reorder(sentiment, n)) %>%
  ggplot(aes(sentiment, n)) +
  geom_col(fill = "mediumturquoise") +
  xlab(NULL) +
  coord_flip() +
  ggtitle("Sentiment Ranking") +
  geom_text(aes(x = sentiment, label = n), vjust = 0, hjust = -0.3, size = 3)

Emocional introspección - para averiguar emociones de la gente

Al utilizar el diccionario "NRC", también podemos marcar la palabra, así como las palabras positivas y negativas emoción ocho tipos.

Después de la dispensación de la etiqueta, que puede agrupar la emoción y genera un gráfico de frecuencia de la palabra, como se muestra a continuación. También tenga en cuenta que algunos términos se pueden encontrar en las etiquetas más emocionales, como la música y el dinero.

Con base en lo anterior una idea de las etiquetas emocionales:

 在此期间,人们正在努力争取金钱,(没有)生日,音乐和艺术品
 人们在谈论政府:国会与协议
#Ten types of emotion chart
tweets_sentiment <- no_stop_words %>%
  inner_join(get_sentiments("nrc"), by = c("word" = "word"))tweets_sentiment %>%
  count(word, sentiment, sort = TRUE)#ggplot
tweets_sentiment %>%
  # Count by word and sentiment
  count(word, sentiment) %>%
  # Group by sentiment
  group_by(sentiment) %>%
  # Take the top 10 words for each sentiment
  top_n(10) %>%
  ungroup() %>%
  mutate(word = reorder(word, n)) %>%
  ggplot(aes(word, n, fill = sentiment)) +
  geom_col(show.legend = FALSE) +
  facet_wrap(~ sentiment, scales = "free") +
  coord_flip() +
  ggtitle("Word frequency based on emotion")

palabra relación visualización

Cuando la minería de texto, palabra relación visualización es muy importante. Mediante la disposición de la palabra "red" en el dibujo, podemos ver cómo están interconectadas la palabra en el conjunto de datos.

En primer lugar, tenemos que el conjunto de datos se marca como una palabra doble (dos palabras). A continuación, se puede alinear a la combinación de palabras de nodos conectados de visualizar.

La figura de red "aislado" conjunto de datos

#Tokenize the dataset into bigrams
tweets_bigrams <- tweets %>%
  select(id,
  #       screenName,
         text,
         created) %>%
  mutate(created_date = as.POSIXct(created, format="%m/%d/%Y %H")) %>%
  mutate(text = replace_non_ascii(text, replacement = "", remove.nonconverted = TRUE)) %>%
  mutate(text = str_replace_all(text, regex("@\\w+"),"" )) %>%
  mutate(text = str_replace_all(text, regex("[[:punct:]]"),"" )) %>%
  mutate(text = str_replace_all(text, regex("http\\w+"),"" )) %>%
  unnest_tokens(bigram, text, token = "ngrams", n = 2)#Separate the bigrams into unigrams
bigrams_separated <- tweets_bigrams %>%
  separate(bigram, c("word1", "word2"), sep = " ")#Remove stop words
bigrams_filtered <- bigrams_separated %>%
  filter(!word1 %in% all_stop_words$word) %>%
  filter(!word2 %in% all_stop_words$word)#Combine bigrams together
bigrams_united <- bigrams_filtered %>%
  unite(bigram, word1, word2, sep = " ")

Algunas ideas interesantes desde el mapa de la red:

 人们在隔离期间在推上写日记
 在检疫期间,人们会听李·摩根(Lee Morgan)的爵士音乐
 在检疫期间,Jojo的现场表演越来越受欢迎
 自我隔离是与Covid-19对抗的一种方式,人们对健康技巧和消除压力的技巧很感兴趣

análisis de correlación palabra - ¿Cómo la percepción de la distancia social?

El aislamiento social puede conducir a o lejos del desafío emocional, me gustaría aprender más acerca de los sentimientos de la gente durante este período.

correlación palabra nos permite estudiar el alcance de un par de palabras comunes que aparecen juntos en el conjunto de datos. Que nos permite tener una comprensión más específica de la palabra y su asociación con otras palabras.

Por nube de palabras, sabemos que la "presión" y "aburrido" a menudo aparecen en nuestro conjunto de datos. Por lo tanto, se extrajo tres palabras: "aburrido", "acento", "pegado" para ver su relevancia palabra.

Durante el aislamiento, la sensación de estar en casa durante la relevancia de la palabra

A partir de la "presión" y "pegado" "aburrido" en las palabras de los conocimientos obtenidos por la correlación:

 人们在感到无聊时会使用TikTok(抖音的海外版)和游戏来消磨时间
 乏味几乎可以概括大多数人在2020年的生活
 造成压力,人们正在网上寻找减轻压力的提示
 人们在家中“被困”时在Netflix上观看恐怖电影/连续剧

Análisis de correlación palabra - para que la gente en casa?

Con el fin de entender cómo la gente en esta casa y qué hacer durante la cuarentena en casa para pasar el tiempo, extraje tres palabras: "juego", "leer" y "reloj" para una visión más clara.

Durante el período de aislamiento, para quedarse en casa durante las medidas adoptadas palabra relevancia

Desde el "juego", "leer" y "reloj", una palabra derivada ideas relevancia:

 大多数人可能会通过玩游戏,看电影和视频来度过自己的时间
 人们花时间阅读他们的孩子
 人们在此期间也终于有时间阅读

Palabra análisis de correlación - cumpleaños, el dinero y la comunidad ...

etiquetas emocionales tabla que aparecen a menudo en tres palabras, a saber, "comunidad" y "cumpleaños" "dinero". Así que he estudiado la correlación entre la palabra y otros términos.

A partir de la "comunidad" y la palabra "dinero" del conocimiento obtenido por la correlación "cumpleaños":

 生日聚会被取消。 取而代之的是,人们在推上表达自己的愿望
 人们同意金钱并不能阻止我们感染该病毒的观点

conclusión

Podemos entender la gente se siente durante este coronavirus cerrada y lo que están haciendo, sin dejar de seguir las reglas de aislamiento social.

Extraemos algunas de las ideas principales son las siguientes:

 人们在冠状病毒情况下感到压力重重,但仍保持积极态度
 在此居家和隔离期间,Tiktok和Netflix被广泛使用
 人们将更多的时间花在与孩子,艺术,音乐和电影上

Por último: La principal investigación anterior y los datos científicos basados ​​en el aprendizaje automático. No somos profesionales o epidemiólogos de salud, y por lo tanto, el punto de este artículo no debe interpretarse como asesoramiento profesional.

Originalmente dirección: https://imba.deephub.ai/p/96b84f50722111ea90cd05de3860c663

 

Supongo que te gusta

Origin www.cnblogs.com/deephub/p/12597944.html
Recomendado
Clasificación