[python] Décomposez la chronologie Twitter acquise en morphologie avec MeCab

Objectif

La chronologie Twitter est un fichier txt. La chronologie de plusieurs utilisateurs est stockée dans un dossier. Le but de cette fois est d'analyser tous ces fichiers à l'aide de MeCab.

Contexte / préparation

Obtenir la chronologie

J'ai eu la chronologie comme dans l'article suivant. [python] Obtenez la chronologie Twitter pour plusieurs utilisateurs

Préparation pour MeCab

Pour l'analyse morphologique, utilisez le moteur d'analyse morphologique «MeCab». Comment utiliser sur Mac procédure d'installation de mecab J'ai été autorisé à faire référence.

la mise en oeuvre

  1. Obtenez la liste des noms de fichiers dans le dossier dans la liste de python

  2. Une fonction qui crée une liste de chronologies à partir d'une liste de noms de fichiers

  3. Fonction d'analyse morphologique

  4. Analyse morphologique de tous les fichiers du dossier

1. Obtenez une liste des noms de fichiers dans un dossier

Le fichier 'lignes de temps' contient tous les fichiers txt avec lesquels vous souhaitez travailler. Stockez ces noms de fichiers (chaînes de caractères) dans la liste "noms_fichiers".

import glob

file_names=[]

files = glob.glob("./timelines/*")
for file in files:
    file_names.append(file)

Les noms de fichier obtenus ont la forme suivante.

['./timelines/20191210_user0_***.txt',..,'./timelines/20191210_user199_***.txt']

2. Une fonction qui crée une liste de chronologies à partir d'une liste de noms de fichiers

timelines.py



def timelines(file_list):
    timelines=[]
    for file in file_list:
        text=open(file).read()
        open(file).close()

        timelines.append([text])
    return timelines

3. Fonction d'analyse morphologique

Définit une fonction pour l'analyse morphologique. L'argument de la fonction est une chaîne de caractères et la valeur de retour est une liste de résultats d'analyse morphologique.

mecab_list.py


import MeCab

def mecab_list(text):
    tagger = MeCab.Tagger("-Ochasen")
    tagger.parse('')
    node = tagger.parseToNode(text)
    mecab_output = []
    while node:
        word = node.surface
        wclass = node.feature.split(',')
        if wclass[0] != u'BOS/EOS':
            if wclass[6] == None:
                mecab_output.append([word,wclass[0],wclass[1],wclass[2],""])
            else:
                mecab_output.append([word,wclass[0],wclass[1],wclass[2],wclass[6]])
        node = node.next
    return mecab_output

Vérifions le fonctionnement de la fonction "liste_mecab".


print(mecab_list('Je mange souvent des chats que j'ai commencé à garder hier.'))
'''
résultat
[['hier', 'nom', 'Avocat possible', '*', 'hier'], ['Domestication', 'verbe', 'Indépendance', '*', 'garder'], ['Commencer', 'verbe', '非Indépendance', '*', 'Commencerる'], ['Ta', '助verbe', '*', '*', 'Ta'], ['chat', 'nom', 'Général', '*', 'chat'], ['Est', 'Particule', '係Particule', '*', 'Est'], ['Souvent', 'adverbe', 'Général', '*', 'Souvent'], ['manger', 'verbe', 'Indépendance', '*', 'manger'], ['。', 'symbole', 'Phrase', '*', '。']]

Il ne semble y avoir aucun problème.

4. Analyse morphologique de tous les fichiers du dossier

mecab_results_list=[]
the_timelines=timelines(file_names)

for the_timeline in the_timelines:
    mecab_result=[]
    for twt in the_timeline:
        mecab_result.append(mecab_list(twt))
    mecab_results_list.append(mecab_result)
print(mecab_results_list)
#résultat
[[[['w', 'symbole', 'Alphabet', '*', 'w'], ['encore', 'adverbe', 'Connexion auxiliaire', '*', 'encore'], ['Sous', 'nom', '固有nom', 'zone', 'Sous'], ['la graine', 'nom', 'suffixe', 'Général', 'la graine'], ['?', 'symbole', 'Général', '*', '?'], ['Mais', 'Particule', '格Particule', 'Général', 'Mais'],..,]]]]

J'ai eu le résultat que je voulais.

environnement

macOS Catalina Jupyter notebook

Recommended Posts

[python] Décomposez la chronologie Twitter acquise en morphologie avec MeCab
Obtenez la chronologie Twitter avec Python
Utiliser mecab avec Python 3
Collecte d'informations sur Twitter avec Python (analyse morphologique avec MeCab)
Explorez l'URL contenue dans le tweet Twitter avec python
Essayez d'utiliser l'API Twitter rapidement et facilement avec Python
[Python] Analyse morphologique avec MeCab
Mémo graphique Twitter avec Python
Utiliser l'API Twitter avec Python
Créez un Twitter BOT avec le SDK GoogleAppEngine pour Python
Comment entrer dans l'environnement de développement Python avec Vagrant
Appelez l'API avec python3.
Rechercher des tweets Twitter avec Python
Extraire le fichier xz avec python
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Trouvez la distance d'édition (distance de Levenshtein) avec python
Accédez à l'API Etherpad-lite avec Python
Installer le plug-in Python avec Netbeans 8.0.2
Publiez plusieurs images Twitter avec python
J'ai aimé le tweet avec python. ..
Maîtriser le type avec Python [compatible Python 3.9]
Publiez facilement sur Twitter avec Python 3
Accéder à l'API Twitter avec Python
Lors de l'utilisation de MeCab avec python dans virtualenv
[Memo] Tweet sur Twitter avec Python
Correction d'un bug où node.surface ne pouvait pas être obtenu avec python3 + mecab
Rendre la console Python couverte d'UNKO
Collecter des informations sur Twitter avec Python (API Twitter)
Touchez la liste Twitter avec tweepy
INSÉRER dans MySQL avec Python [Pour les débutants]
[Python] Définissez la plage du graphique avec matplotlib
[Python] Visualisez les informations acquises par Wireshark
Derrière le flyer: utiliser Docker avec Python
Utilisation de Python et MeCab avec Azure Databricks
Vérifier l'existence du fichier avec python
[Python] Récupère le nom de la variable avec str
[Python] Arrondissez avec juste l'opérateur
Afficher Python 3 dans le navigateur avec MAMP
Mettez des tampons de protocole dans sqlite avec python
Tweet de python avec Twitter Developer + Tweepy
Tweet à l'aide de l'API Twitter en Python
Rechercher le labyrinthe avec l'algorithme python A *
Lisons le fichier RINEX avec Python ①
Travailler avec OpenStack à l'aide du SDK Python
Télécharger des fichiers sur le Web avec Python
[python] Obtenir la chronologie Twitter pour plusieurs utilisateurs
Analyse des tweets avec Python, Mecab et CaboCha
Apprenez le modèle de conception "Singleton" avec Python
[Python] Utiliser automatiquement le navigateur avec Selenium
Faisons un bot Twitter avec Python!
Utiliser Python et MeCab avec Azure Functions
Apprenez le modèle de conception "Façade" avec Python
La route de la compilation vers Python 3 avec Thrift
[Python] Remplacez le texte généré par MeCab par les mots importants extraits par MeCab + Term Extract.
Obtenez des informations sur les 100 utilisateurs techniques de Twitter les plus influents au monde avec python.