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
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) )
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