Créer un tableau simple à l'aide de prettytable

Créer une table avec prettyprint

Cliquez ici pour plus de détails: https://pypi.python.org/pypi/PrettyTable J'ai installé ce qui suit avec pip. Ceci est pratique lorsque la longueur de chaque élément de la liste est différente et qu'il est difficile de voir même si vous essayez de le sortir. Ce code temporel: https://github.com/KodairaTomonori/Qiita/blob/master/module/prettyprint/make_table.py

pip.


$ pip search prettytable
prettytable-extras     - An extension to the excellent prettytable Python library

Je vais vraiment le faire

Cette fois, j'expliquerai en utilisant «mecab», qui analyse la morphologie. Lorsque vous entrez une phrase, mecab renvoie le résultat de l'analyse morphologique sous forme de chaîne de caractères. Cela peut également être facilement installé avec pip.

mecab_test.


$ python
Python 3.5.0
>>> import MeCab
>>> MeCab.Tagger().parse('Le corps est fait d'épée')
'corps\t substantif,Général,*,*,*,*,corps,Corps,Corps\n est\t assistant,Assistance,*,*,*,*,Est,C,sensationnel\n épée\t substantif,Général,*,*,*,*,épée,Ken,Ken\à n\t assistant,Assistant de cas,Général,*,*,*,alors,De,De\n fait\t verbe,Indépendance,*,*,Un pas,Type continu,Peut faire,Deキ,Deキ\n\t assistant,Assistant de connexion,*,*,*,*,main,Te,Te\n\t verbe,非Indépendance,*,*,Un pas,Forme basique,Est,Il,Il\nEOS\n'
>>> print(MeCab.Tagger().parse('Le corps est fait d'épée') )
Nomenclature corporelle,Général,*,*,*,*,corps,Corps,Corps
Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
Épée substantif,Général,*,*,*,*,épée,Ken,Ken
Auxiliaire,Assistant de cas,Général,*,*,*,alors,De,De
Verbe fini,Indépendance,*,*,Un pas,Type continu,Peut faire,Deki,Deki
Te assistant,Assistant de connexion,*,*,*,*,main,Te,Te
Le verbe qui est,Non indépendant,*,*,Un pas,Forme basique,Est,Il,Il
EOS

Il sera imprimé comme ceci, mais si vous l'imprimez simplement, ce sera difficile à voir car il n'y a rien derrière J'aimerais donc utiliser «pretty table» pour rendre cela plus facile à voir.

make_prettytable.py


import MeCab
import prettytable

def make_prettytable(others, header=[]):
    if not header: header = range(len(list(others)[0]) )
    if len(header) != len(others[0]):
        print('incorrect length!')
        return 
    table = prettytable.PrettyTable(header)
    for other in others: table.add_row(other)
    return table

def make_mecab_info_table(sentence, output_info=[], \
        mecab_parser=MeCab.Tagger.parse):
    others = list(map(lambda x: x.split(','), \
        mecab_parser(sentence).replace('\t', ',').split('\n') ) )[:-2]
    return make_prettytable(others, output_info)


if __name__ == '__main__':
    mecab_output = 'Type de surface,Partie,Partie細分類1,Partie細分類2,Partie細分類3,Type d'utilisation,Type d'utilisation,Prototype,en train de lire,prononciation'
    parser = MeCab.Tagger().parse
    header = mecab_output.split(',')
    print(make_mecab_info_table(input(), header, parser) )

Exemple de sortie

スクリーンショット 2015-10-21 21.29.05.png

Commentaire

C'est devenu plus facile de voir comme ça. make_prettytable contient le contenu du premier argument (ʻautres) et les informations de la ligne supérieure du deuxième argument ( header). Si header ne reçoit pas d'argument, il le numérotera avec range. «Les autres» devraient inclure une liste comme «[[1,2, ...], [2,3, ...] ...]». Dans prettytable.PrettyTable, placez la ligne supérieure ( header) et créez la base du tableau. Dans l'instruction suivante for, ʻothers est tourné et .add_row est ajouté ligne par ligne. Après cela, vous pouvez facilement voir le tableau simplement en imprimant.

make_mecab_info_table ne gère que les caractères normalement.

C'est pratique lorsque les longueurs des éléments de la liste sont différentes, car il est difficile de voir même si vous essayez de sortir et de vérifier.

Recommended Posts

Créer un tableau simple à l'aide de prettytable
Créer une application Web avec Flask ②
Apprenez Zundokokiyoshi en utilisant un simple RNN
Créer une application Web avec Flask ①
Créer un modèle d'apprentissage à l'aide de MNIST
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④
Créer un fichier power simple avec Python
Création d'une application d'analyse de données à l'aide de Streamlit
[Python] Gratter une table avec Beautiful Soup
Une histoire sur l'apprentissage automatique simple avec TensorFlow
Création d'une application interactive à l'aide d'un modèle de rubrique
Exemple pour dessiner une horloge simple en utilisant ebiten
Essayez de créer un fichier compressé en utilisant Python et zlib
4. Création d'un programme structuré
Créez un graphique à l'aide du bouton et du curseur de l'intrigue
Création d'outils de grattage
Créer un chargeur de jeu de données
Rechercher la table à l'aide de sqlalchemy et créer un dictionnaire
100 Language Processing Knock-84 (en utilisant des pandas): Création d'une matrice de contexte de mots
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
(Pour les débutants) Essayez de créer une API Web simple avec Django
Créez une application CRUD simple en utilisant la vue de classe générique de Django
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
J'ai créé un éditeur de texte simple en utilisant PyQt
Un simple exemple de pivot_table.
Création de plugins Spigot à l'aide d'Eclipse
Mesure du temps à l'aide d'une horloge
Créer un serveur REST (simple)
# 1 [python3] Calcul simple à l'aide de variables
Tutoriel Pepper (5): Utilisation d'une tablette
Utiliser une imprimante avec Debian 10
Créer un serveur textlint simple
Un mémorandum d'utilisation de eigen3
Fabriquez un incubateur à CO2 simple à l'aide de Raspberry PI et d'un capteur de CO2 (MH-Z14A)
Création et déploiement d'applications Django (PTVS) à l'aide du stockage Azure Table
Créez un lot planifié simple à l'aide de l'image Python de Docker et de parse-crontab
Utilisez sqlalchemy pour rechercher la table DB et créer un Dataflame pour les pandas
Comment formater un tableau à l'aide de Pandas Appliquer, pivoter et permuter le niveau
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
Évaluer les performances d'un modèle de régression simple à l'aide de la validation d'intersection LeaveOneOut
[Python] Analysez les données de match de la ligue Splatoon 2 à l'aide d'un tableau de coefficients de corrélation
Création d'une application de gestion de score shogi à l'aide de Django 1-Construction de l'environnement-