[PYTHON] J'ai analysé les tweets sur le nouveau virus corona publiés sur Twitter, partie 2

Aperçu

Ceci est une continuation de Dernière fois.

Nous élargirons l'ensemble de données que nous avons construit la dernière fois pour une analyse plus approfondie.

Les objectifs de cet article sont deux choses:

――Comprendre comment le sujet du nouveau virus corona évolue sur Twitter

En ce qui concerne les objectifs ci-dessus, nous analyserons les données de tweet publiées sur Twitter.

Détails des données

Les données de tweet utilisées dans cet article incluent l'un des "Corona", "COVID-19" et "Maladies infectieuses" publiés entre le 1er janvier 2020 et le ** 30 avril 2020 **. Ceci est un tweet. Chaque tweet contenu dans l'ensemble de données a été RT plus de 100 fois.

(29 jours de tweets ont été ajoutés à l'ensemble de données depuis le dernier ensemble de données.)

La taille de l'ensemble de données était la dernière fois: 47071-> cette fois: 79562.

日毎のツイート数.png

La figure ci-dessus montre le nombre de tweets pour chaque jour pour l'ensemble de données construit. Les nombres encerclés dans la figure correspondent à chaque considération ci-dessous. (Voir Article précédent pour une discussion du 01/01 au 04/01 dans ce graphique.)

Analyse des mots fréquemment utilisés

À partir de la fréquence d'apparition des mots contenus dans les tweets quotidiens, il est possible de déduire ce qui intéressait l'utilisateur ce jour-là. Dans cet article, nous avons appliqué le prétraitement suivant à tous les tweets.

def pre_process(texts):
    texts_mod = []
    for text in tqdm(texts):
        text = re.sub(r'd+', '', text) #Suppression de numéros(Inutile?)
        text = zenhan.z2h(text) #Angle complet à demi-angle
        text = mecab_wakati(text) #Partage(Cela seul peut suffire)
        text = text.lower() #Unification des types de caractères

        stopwords = load_stopwords()
        #Supprimer le mot d'arrêt(Inutile?)
        for sw in stopwords:
            if sw in text:
                text = text.replace(sw, '')
                
        texts_mod.append(text)

    return texts_mod

Cependant, l'analyse morphologique extrait uniquement la nomenclature des tweets, les adjectifs et les verbes adjectifs.

Ensuite, agrégons les mots de chaque jour et sortons les mots fréquemment utilisés.

<détails>

** Tableau: Mots quotidiens fréquents (cliquez pour agrandir) ** </ font> </ summary>

Date Mots fréquents
2020-02-01 pneumonie,Absent,Corona Wils,Contre-mesures,Expansion,Wils,Wuhan,la prévention,Médical,Alcor
2020-02-02 pneumonie,Wuhan,Contre-mesures,Traitement,Corona Wils,Wils,La grippe,Présentation,Expansion,mort
2020-02-03 pneumonie,Expansion,Inspection,Contre-mesures,Wuhan,La grippe,Wils,Corona Wils,la diffusion,Masque
2020-02-04 pneumonie,Wuhan,Vérification,hôpital,Expansion,Absent,Hong Kong, who,Contre-mesures,mort
2020-02-05 pneumonie,Masque,Croisière,Vérification,Inspection,Absent,Wuhan,Contre-mesures,Wils,Expansion
2020-02-06 pneumonie,Wuhan,Wils,Corona Wils,Correspondance,Masque,Inspection,l'étude,Impact,Absent
2020-02-07 Médecin,Croisière,pneumonie,Vérification,Wils,Expansion,Corona Wils,La grippe,Wuhan,Absent
2020-02-08 pneumonie,Wuhan,mort,Masque,Corona Wils,Présentation,Hospitalisation,Doute,Absent,Contre-mesures
2020-02-09 pneumonie,Aérosol,Corona Wils,Croisière,Vérification,Contre-mesures,Absent, who,Wuhan,Expansion
2020-02-10 Croisière,Inspection,pneumonie,Vérification,Contre-mesures,Corona Wils,Présentation,Expansion,Wuhan,Correspondance
2020-02-11 pneumonie,Corona Wils,Correspondance,Wuhan,Vérification,Médical,Absent,Abe,Contre-mesures,Inspection
2020-02-12 covid,quarantaine,pneumonie, who,Inspection,Contre-mesures,Masque,Croisière,Absent,Wils
2020-02-13 Vérification,mort,pneumonie,Inspection,opération,Tokyo,Taxi,Kanagawa,Dernières nouvelles,Contre-mesures
2020-02-14 Contre-mesures,Vérification,Inspection,Abe,Correspondance,pneumonie,Expansion,Absent,Présentation,Médecin
2020-02-15 Contre-mesures,Inspection,Abe,Correspondance,Corona Wils,Absent,Vérification,administration,Tokyo,Spécialité
2020-02-16 Contre-mesures,Abe,Inspection,Correspondance,Absent,pneumonie,Spécialité,Expansion,Corona Wils,Vérification
2020-02-17 Contre-mesures,Expansion,Absent,Corona Wils,Présentation,Abe,Opposition,Inspection,Correspondance,pneumonie
2020-02-18 Contre-mesures,Opposition,Correspondance,Inspection,Symptômes,pneumonie,Tenue,Absent,Vérification,Expansion
2020-02-19 Contre-mesures,Iwata,Spécialité,Prince,Dymond,Expansion,Abe,Correspondance, covid,Kentaro
2020-02-20 Contre-mesures,Tenue,Croisière,Vérification,Expansion,Iwata,un événement,Correspondance,des plans,Absent
2020-02-21 Expansion,Vérification,Contre-mesures,Inspection,pneumonie,Tenue,S'il vous plaît,Remarquer,des plans,un événement
2020-02-22 Inspection,Contre-mesures,Vérification,Expansion,pneumonie,Correspondance,Croisière,Corona Wils,Wils,Abe
2020-02-23 Inspection,Contre-mesures,Abe,Absent,Correspondance,Corona Wils,pneumonie,Vérification,Expansion,Wils
2020-02-24 Inspection,Contre-mesures,Abe,Absent,Expansion,Correspondance,pneumonie,hôpital,Présentation,Corona Wils
2020-02-25 Inspection,Contre-mesures,Expansion,Absent,Tenue,Correspondance,Corona Wils,Reporté,Abe,Vérification
2020-02-26 Inspection,Expansion,Contre-mesures,Tenue,Remarquer,Performance,un événement,Reporté,Correspondance,des plans
2020-02-27 Expansion,Contre-mesures,Remarquer,Tenue,Inspection,un événement,des plans,Performance,Reporté,La prévention
2020-02-28 Expansion,Contre-mesures,Remarquer,La prévention,Tenue,Inspection,Abe,Vérification,budget,S'il vous plaît
2020-02-29 Contre-mesures,Abe,Inspection,Vérification,Expansion,Correspondance,Absent,Corona Wils,Présentation,pneumonie
2020-03-01 Contre-mesures,Inspection,Absent,Abe,Expansion,Masque,Corona Wils,pneumonie,Vérification,Correspondance
2020-03-02 Expansion,Contre-mesures,Abe,Inspection,Impact,Corona Wils,Spécialité,urgence,Absent,Remarquer
2020-03-03 Expansion,Contre-mesures,pneumonie,Inspection,Absent,Vérification,Abe,Impact,Wuhan,urgence
2020-03-04 Expansion,Contre-mesures,Abe,Inspection,Vérification,Absent,pneumonie,urgence,Correspondance,Tenu
2020-03-05 Contre-mesures,Abe,Expansion,Vérification,Absent,Impact,Présentation,Reporté,urgence,Correspondance
2020-03-06 Contre-mesures,Expansion,Inspection,Impact,Vérification,Absent,Abe,Correspondance,Tenu,Corona Wils
2020-03-07 Contre-mesures,Abe,Inspection,Expansion,Masque,Vérification,Absent,Correspondance,Médical,Impact
2020-03-08 Contre-mesures,Inspection,Absent,Abe,Vérification,Corona Wils,Italie,Wils,Expansion,hôpital
2020-03-09 Contre-mesures,Expansion,Abe,Impact,Absent,Médical,Inspection,urgence,Reporté,Wils
2020-03-10 Contre-mesures,Expansion,Inspection,Absent,Spécialité,Abe,urgence,Correspondance,Wils,Impact
2020-03-11 Inspection,Expansion,Tenue,Absent,Contre-mesures,Impact,Médical,des plans,Reporté,consommation
2020-03-12 Inspection,Contre-mesures,Expansion,Médical,Absent,Présentation,Pandemick, who,Impact,des plans
2020-03-13 Contre-mesures,Expansion,Inspection,Reporté,Impact,Tenue,Présentation,Possible,urgence,des plans
2020-03-14 Inspection,Contre-mesures,Abe,Absent,Déclaration,Président,Correspondance,Expansion,Corona Wils,Clochard
2020-03-15 Inspection,Contre-mesures,Expansion,Absent,Médical,hôpital,Abe,Impact,Correspondance,urgence
2020-03-16 Inspection,Contre-mesures,Expansion,Correspondance,Absent,Corona Wils,pneumonie,Impact,Abe,Italie
2020-03-17 Inspection,Expansion,Contre-mesures,Vérification,Abe,Absent,Impact, who,Performance,Tenu
2020-03-18 Contre-mesures,Expansion,Inspection,Wils,Absent,Impact,Tenu,mort,des plans,Avantages
2020-03-19 Expansion,Contre-mesures,Inspection,Impact,Absent,Économie,Vérification,Tenu,Osaka,Correspondance
2020-03-20 Expansion,Contre-mesures,Absent,Inspection,Présentation,Impact,Tenu,Vérification,Italie,Reporté
2020-03-21 Contre-mesures,Expansion,Inspection,Absent,Tokyo,Impact,Italie,hôpital,Tenu,Présentation
2020-03-22 Contre-mesures,Inspection,Expansion,Absent,La retenue de soi,Économie,Vérification,Impact,Italie,échelle
2020-03-23 Contre-mesures,Expansion,Tokyo,Absent,Reporté,Tenue,Économie,Présentation,Inspection,Vérification
2020-03-24 Contre-mesures,Reporté,Tokyo,Expansion,Inspection,Impact,Absent,Médical,Tenue,Économie
2020-03-25 Contre-mesures,Tokyo,Économie,Inspection,Reporté,Vérification,Expansion,Impact,Absent,urgence
2020-03-26 Contre-mesures,Expansion,Tokyo,La retenue de soi,Inspection,Remarquer,Vérification,Absent,Impact,Reporté
2020-03-27 Expansion,Contre-mesures,Inspection,Tokyo,La retenue de soi,Impact,Vérification,Présentation,Remarquer,Tenu
2020-03-28 Contre-mesures,Vérification,Expansion,La retenue de soi,Tokyo,Absent,Abe,Inspection,Médical,hôpital
2020-03-29 Contre-mesures,La retenue de soi,Absent,Tokyo,Inspection,Expansion,Vérification,Économie,hôpital,Abe
2020-03-30 Ken,Contre-mesures,Expansion,Tokyo,pneumonie,Absent,Décédés,Vérification,La retenue de soi,Inspection
2020-03-31 Expansion,Contre-mesures,Vérification,Tokyo,Présentation,La retenue de soi,Absent,Impact,Inspection,S'il vous plaît
2020-04-01 Contre-mesures,Vérification,Expansion,Masque,Médical,Absent,Tokyo,Présentation,Abe,Statut
2020-04-02 Masque,Expansion,Contre-mesures,Vérification,Tokyo,Médical,Absent,Inspection,soutien,Impact
2020-04-03 Expansion,Contre-mesures,Avantages,Vérification,Tokyo,Ménage,Impact, nhk,Remarquer,Tenue
2020-04-04 Contre-mesures,Expansion,Vérification,Inspection,Médical,Masque,Tokyo,hôpital,Absent, nhk
2020-04-05 Contre-mesures,Tokyo,Expansion,Inspection,Médical,Absent,Vérification,hôpital,La retenue de soi,Corona Wils
2020-04-06 urgence,Expansion,Contre-mesures,Déclaration,Inspection,Tokyo,Impact,Remarquer,La retenue de soi,Vérification
2020-04-07 urgence,Déclaration,Expansion,Contre-mesures,Tokyo,Remarquer,Vérification,Absent,Fermé,S'il vous plaît
2020-04-08 Expansion,Contre-mesures,urgence,Déclaration,Vérification,Impact,Remarquer,Absent,La retenue de soi,Reporté
2020-04-09 Contre-mesures,Expansion,Vérification,urgence,Inspection,Déclaration,Impact,Tokyo,Absent,Médical
2020-04-10 Expansion,Contre-mesures,Vérification,Impact,Inspection,Médical,urgence,Absent,Tokyo,Remarquer
2020-04-11 Contre-mesures,Expansion,Abe,Absent,Inspection,La retenue de soi,Médical,Vérification,urgence,hôpital
2020-04-12 Contre-mesures,Inspection,Vérification,Abe,Expansion,Médical,Absent,Masque,hôpital,Tokyo
2020-04-13 Expansion,Contre-mesures,urgence,Inspection,Impact,Vérification,Absent,Déclaration,Fermé,Présentation
2020-04-14 Expansion,Contre-mesures,urgence,Médical,Impact,Vérification,Correspondance,Absent,hôpital,Abe
2020-04-15 Contre-mesures,Expansion,hôpital,Médical,Abe,Absent,Correspondance,Impact,Tokyo,Vérification
2020-04-16 Contre-mesures,Expansion,Avantages,urgence,Absent,Médical,Inspection,soutien,Impact,Masque
2020-04-17 Contre-mesures,Expansion,Inspection,urgence,Médical,Impact,Correspondance,Abe,Avantages,Absent
2020-04-18 Médical,Contre-mesures,Inspection,Absent,Expansion,Vérification,Masque,Abe,hôpital,nécessaire
2020-04-19 Contre-mesures,Médical,Expansion,Absent,Masque,Inspection,Correspondance,l'étude,Impact,hôpital
2020-04-20 Inspection,Contre-mesures,Expansion,Médical,Impact,Vérification,Absent, pcr,S'est avéré,Abe
2020-04-21 Contre-mesures,Expansion,Impact,Absent,Médical,Avantages,Masque,Inspection,Abe,soutien
2020-04-22 Inspection,Expansion,Contre-mesures,Médical,Absent,Vérification,Impact, pcr, nhk,La retenue de soi
2020-04-23 Okae,Inspection,Kumi,Médical,hôpital,Expansion,Contre-mesures,Absent,domicile,soutien
2020-04-24 Expansion,Inspection,Contre-mesures,Médical,Impact,Vérification,Absent, nhk,Tokyo,S'il vous plaît
2020-04-25 Inspection,Contre-mesures,Médical,Expansion,La retenue de soi,Économie,Vérification,Absent, nhk,soutien
2020-04-26 Inspection,Contre-mesures,Médical,Absent,Masque,La retenue de soi,Expansion,Impact,Tokyo, rt
2020-04-27 Contre-mesures,Expansion,Inspection,Médical,soutien,Absent,La retenue de soi,Impact,Économie,Nouveau
2020-04-28 Expansion,Inspection,Contre-mesures,Impact,Absent,soutien,Médical,Tokyo, news, nhk
2020-04-29 Contre-mesures,Inspection,urgence,Expansion,Médical,Absent,Impact,Symptômes,Abe,Économie
2020-04-30 Inspection,Contre-mesures,Expansion,Médical,Impact,Absent,Abe,La retenue de soi,soutien,Vérification

Le tableau ci-dessus présente les 10 mots les plus fréquemment utilisés pour chaque jour de février à avril. Cependant, «Colon Wils», «COVID-19» et «Maladies infectieuses» sont exclus de la sortie. De plus, les parties du tableau auxquelles vous souhaitez prêter attention sont affichées en rouge.

(1) De janvier à début février, les symptômes du nouveau virus corona tels que «pneumonie», «influenceur», «buhan», «confirmation» et «croisière», ainsi que les tendances des guerriers et des navires de croisière où des personnes infectées ont été confirmées ont été discutés. Tu peux voir ça.

(2) Depuis le 14 février, des mots liés aux tendances de l'administration japonaise tels que «contre-mesures», «annonces» et «réponses» sont apparus fréquemment, et il peut être confirmé que les sujets d'intérêt pour les utilisateurs ont changé. De plus, dans le graphique présenté dans [Détails des données](#Détails des données), le nombre de tweets a fortement augmenté depuis le 14 février environ. Les utilisateurs devraient être plus intéressés par les tendances administratives que par les dommages causés par le nouveau virus corona.

③ Concernant le 26 février, l'article précédent indiquait que la cause était inconnue en raison de l'augmentation du nombre de tweets. Ici, il existe de nombreux mots fréquemment utilisés liés à des événements tels que «tenue», «conférence», «événement» et «report». À partir de là, il est probable que le nombre de tweets et le nombre de RT ont augmenté en réponse au fait que l'événement intéressant l'utilisateur a été reporté en raison de l'influence du nouveau virus corona.

De plus, de (1) à (3) ci-dessus, on considère que les utilisateurs ont tendance à être plus intéressés par les choses qui se produisent plus près d'eux. (Wuhan et bateaux de croisière-> Réponse du gouvernement-> Report des événements, et le contenu est familier (directement lié) dans l'ordre.)

④ Après le 23 mars, le mot «Tokyo» est apparu fréquemment. On pense que cela est dû à l'augmentation rapide du nombre de personnes infectées à Tokyo. Aussi, dans le graphique présenté dans [Détails des données](# Détails des données), le nombre de tweets a fortement augmenté depuis cette date, ce qui montre qu'il y a un grand intérêt pour les tendances à Tokyo. ..

⑤ Du 6 au 7 avril, des déclarations d'urgence ont été évoquées dans plusieurs villes dont Tokyo. On pense que de nombreux utilisateurs se sont intéressés au contenu car il est étroitement lié à la vie quotidienne en raison de la demande de s'abstenir de sortir et de la fermeture de divers magasins.

⑥ Les 19 février, 30 mars et 23 avril, il y a des «Messages sur le bateau de croisière de Kentaro Iwata», «Les nouvelles de Ken Shimura» et «Les nouvelles de Kumiko Okae», qui sont des mots fréquemment utilisés chaque jour. Vous pouvez voir que cela affecte. De plus, chaque jour du graphique affiché dans [Détails des données](#Data Details), les pics peuvent être observés sur plusieurs jours. De là, nous pouvons voir que de nombreux utilisateurs s'intéressent à ces sujets depuis plusieurs jours. En outre, les sujets personnels sont probablement moins d'actualité que les sujets qui affectent de nombreux utilisateurs.

Prédire le nombre de RT à partir de la signification des tweets

Ici, en quantifiant le contenu du tweet et en construisant un modèle qui prédit le nombre de RT (quelle popularité), le nombre de RT diffère-t-il en fonction du contenu du tweet et des mots inclus? Vérifier.

Vue d'ensemble du modèle à construire

Ici, le contenu du tweet est quantifié par TF-IDF, et le nombre de RT est prédit par Light GBM.

TF-IDF Il existe de nombreux articles de commentaires sur le Web, veuillez donc les consulter pour plus de détails [^ 1] [^ 2]. Qualitativement, il s'agit "d'une quantification de l'importance de chaque mot dans une phrase", et pour chaque tweet, un vecteur de dimensions égales au nombre de mots inclus dans tous les tweets peut être obtenu. En conséquence, dans cet ensemble de données, TF-IDF a obtenu une matrice de 79562 tweets x 5236 6 dimensions.

Light GBM Pour plus de détails, veuillez consulter les commentaires sur le Web [^ 3] [^ 4]. Ce modèle est une extension de l'arbre de décision et peut être utilisé pour la régression et la classification. En outre, les dimensions qui ont contribué à la régression / classification peuvent être facilement sorties, et en combinant avec TF-IDF, «quel contenu a contribué au nombre de RT» peut être facilement saisi.

Cette fois, 80% des tweets de l'ensemble de données ont été utilisés pour l'apprentissage du modèle, et les 20% restants ont été utilisés pour vérifier l'exactitude et la contribution de chaque dimension (test). Par conséquent, le problème que LightGBM prédit cette fois peut être interprété comme "quel est le contenu qui intéresse les utilisateurs à tout moment concernant le nouveau virus corona".

train_data = lgb.Dataset(x_train, label=y_train)
test_data = lgb.Dataset(x_test, label=y_test, reference= train_data)

params = {
    'task': 'train',
    'boosting_type': 'gbdt',
    'objective': 'regression'
}

gbm = lgb.train(
    params,
    train_data
)

preds = gbm.predict(x_test)

résultat

Évaluer quantitativement dans quelle mesure le modèle entraîné peut prédire le nombre de RT. Ici, nous utilisons les indicateurs d'erreur moyenne absolue (MAE) et d'erreur quadratique moyenne (RMSE), qui sont fréquemment utilisés pour évaluer les modèles de régression qui prédisent des valeurs numériques. Je laisserai les détails de chacun à l'article de commentaire. Il est facile de dire que plus la valeur est petite, plus la prédiction est précise.

Ici, à quel point est-il bon simplement en regardant les valeurs numériques de chaque indice d'évaluation? Par conséquent, il est nécessaire de le comparer avec un autre modèle. Cette fois, nous comparons le modèle (BaseLine) qui "prédit toujours que le nombre RT de tous les tweets est le nombre RT moyen de l'ensemble de données (1429,36)".

MAE RMSE
LightGBM 1462.95 4565.19
BaseLine 1429.36 4559.26

Dans le tableau ci-dessus, BaseLine dépasse LightGBM dans tous les index d'évaluation, ce qui suggère que le nombre de RT ne peut pas être prédit avec une grande précision à partir du contenu du tweet (TF-IDF + LightGBM).

En outre, sortons l'importance de la fonctionnalité exprimée par le nombre d'apparitions dans les feuilles de Light BGM de chaque dimension.

importance = pd.DataFrame(gbm.feature_importance(), 
                index=x_condition.get_feature_names(), columns=['importance'])
display(importance.sort_values("importance", ascending=False).head(100))
mot Feature Importance
Couronne 138
Corona Wils 111
Comédien 99
Notre compagnie 95
rt 93
cov 85
bénéfique 81
Ryokan 78
Grand-papa 77
just 77
Nouveau modèle 71
com 64

Plus le mot est élevé dans le tableau ci-dessus, plus il peut être interprété comme un mot que Light BGM a jugé important pour prédire le nombre de RT. Cependant, "Korona", "rt", "com (URL?)", Etc. sont inclus dans de nombreux tweets quel que soit le nombre de RT, et il peut être confirmé qualitativement que LightGBM n'a pas été appris avec précision. D'un autre côté, par exemple, «comédien» est probablement un mot extrait d'un tweet sur Ken Shimura, et on pense également que LightGBM a capturé la caractéristique mentionnée ci-dessus selon laquelle «un sujet individuel important fait un pic». Peut être fait.

Sur la base de ce qui précède, LightGBM n'a pas réussi à résoudre avec succès le problème de «quel est le contenu qui intéresse les utilisateurs à tout moment concernant le nouveau virus corona», et sur la base de l'analyse des mots fréquents mentionnés ci-dessus, «symptômes causés par le virus». "Tendances au Japon" "Report des événements" ... Alors que les intérêts des utilisateurs changent, Il a été suggéré qu'il n'y avait aucun contenu sur le nouveau virus corona qui dit: "Les tweets avec ce contenu attireront toujours l'attention des utilisateurs à tout moment."

Résumé

Dans cet article, les points suivants ont été suggérés.

―― À partir des mots fréquents des tweets et de la transition du nombre de tweets par jour, sur l'intérêt de l'utilisateur --Sur les sujets impliquant des personnalités éminentes, il y a un pic local du nombre de tweets liés au cours de plusieurs jours, mais la baisse est rapide.

  • Les utilisateurs sont plus intéressés par les sujets car ils sont plus proches d'eux. Étonnamment, les utilisateurs sont plus intéressés par le report de l'événement que par la maladie infectieuse elle-même ou la réponse du gouvernement.

――Il n'y a aucun contenu qui augmentera sûrement le nombre de RT quelle que soit l'heure.

À l'avenir, nous effectuerons une analyse en utilisant les informations utilisateur sur la base de l'hypothèse que "les tweets envoyés par des utilisateurs bien connus tels que le nombre de followers et les comptes officiels attireront l'attention de nombreux utilisateurs, et il sera plus facile d'attirer l'attention des utilisateurs" je veux faire

[^ 1]: Référence TF-IDF (1): https://qiita.com/AwaJ/items/5937665d5a4152cc24cf [^ 2]: Référence TF-IDF (2): https://dev.classmethod.jp/articles/yoshim_2017ad_tfidf_1-2/ [^ 3]: Référence LightGBM (1): https://www.codexa.net/lightgbm-beginner/ [^ 4]: Référence LightGBM (2): https://qiita.com/ryo_naka/items/f479e5b7cb49fb55f150

Recommended Posts