[PYTHON] Erstellen einer einfachen Tabelle mit Stettytable

Erstellen einer Tabelle mit Prettyprint

Klicken Sie hier für Details: https://pypi.python.org/pypi/PrettyTable Ich habe folgendes mit pip installiert. Dies ist praktisch, wenn die Länge jedes Listenelements unterschiedlich ist und es selbst dann schwer zu erkennen ist, wenn Sie versuchen, es auszugeben. Dieser Zeitcode: 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

Ich werde es tatsächlich schaffen

Dieses Mal werde ich die Verwendung von "Mecab" erklären, das die Morphologie analysiert. Wenn Sie einen Satz eingeben, gibt mecab das Ergebnis der morphologischen Analyse als Zeichenfolge zurück. Dies kann auch einfach mit pip installiert werden.

mecab_test.


$ python
Python 3.5.0
>>> import MeCab
>>> MeCab.Tagger().parse('Der Körper besteht aus Schwert')
'Körper\t Substantiv,Allgemeines,*,*,*,*,Körper,Körper,Körper\n ist\t Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend\n Schwert\t Substantiv,Allgemeines,*,*,*,*,Schwert,Ken,Ken\bei n\t Assistent,Fallassistent,Allgemeines,*,*,*,damit,De,De\n fertig\t verb,Unabhängigkeit,*,*,Ein Schritt,Kontinuierlicher Typ,Tun können,Deキ,Deキ\n\t Assistent,Verbindungsassistent,*,*,*,*,Hand,Te,Te\n\t verb,非Unabhängigkeit,*,*,Ein Schritt,Grundform,Ist,Il,Il\nEOS\n'
>>> print(MeCab.Tagger().parse('Der Körper besteht aus Schwert') )
Körpernomenklatur,Allgemeines,*,*,*,*,Körper,Körper,Körper
Ist ein Assistent,Hilfe,*,*,*,*,Ist,C.,Beeindruckend
Schwert Nomen,Allgemeines,*,*,*,*,Schwert,Ken,Ken
Hilfs,Fallassistent,Allgemeines,*,*,*,damit,De,De
Fertiges Verb,Unabhängigkeit,*,*,Ein Schritt,Kontinuierlicher Typ,Tun können,Deki,Deki
Der Assistent,Verbindungsassistent,*,*,*,*,Hand,Te,Te
Das Verb das ist,Nicht unabhängig,*,*,Ein Schritt,Grundform,Ist,Il,Il
EOS

Es wird so ausgegeben, aber wenn Sie es nur drucken, ist es schwer zu erkennen, da nichts dahinter steckt Daher möchte ich "hübsche Tabelle" verwenden, um dies besser sichtbar zu machen.

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 = 'Oberflächentyp,Teil,Teil細分類1,Teil細分類2,Teil細分類3,Nutzungsart,Nutzungsart,Prototyp,lesen,Aussprache'
    parser = MeCab.Tagger().parse
    header = mecab_output.split(',')
    print(make_mecab_info_table(input(), header, parser) )

Ausgabebeispiel

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

Kommentar

Es wurde einfacher, so zu sehen. make_prettytable enthält den Inhalt des ersten Arguments ( other) und die Informationen in der oberen Zeile des zweiten Arguments (header). Wenn header kein Argument erhält, wird es mit range nummeriert. Fügen Sie für "andere" eine Liste wie "[[1,2, ...], [2,3, ...] ...]" ein. Fügen Sie in "prettytable.PrettyTable" die obere Zeile ("header") ein und bilden Sie die Basis der Tabelle. In der folgenden "for" -Anweisung wird "other" gedreht und ".add_row" wird zeilenweise hinzugefügt. Danach können Sie die Tabelle einfach durch Drucken sehen.

make_mecab_info_table behandelt Zeichen nur normal.

Dies ist praktisch, wenn die Längen der Listenelemente unterschiedlich sind, da es selbst dann schwer zu erkennen ist, wenn Sie versuchen, etwas auszugeben und zu überprüfen.

Recommended Posts

Erstellen einer einfachen Tabelle mit Stettytable
Erstellen einer Webanwendung mit Flask ②
Lerne Zundokokiyoshi mit einem einfachen RNN
Erstellen einer Webanwendung mit Flask ①
Erstellen eines Lernmodells mit MNIST
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Erstellen einer einfachen Power-Datei mit Python
Erstellen einer Datenanalyseanwendung mit Streamlit
[Python] Eine Tabelle mit Beautiful Soup kratzen
Eine Geschichte über einfaches maschinelles Lernen mit TensorFlow
Erstellen einer interaktiven Anwendung mithilfe eines Themenmodells
Beispiel zum Zeichnen einer einfachen Uhr mit ebiten
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
4. Erstellen eines strukturierten Programms
Erstellen Sie ein Diagramm mit der Plot-Schaltfläche und dem Schieberegler
Erstellung von Schabewerkzeugen
Erstellen eines Dataset Loader
Durchsuchen Sie die Tabelle mit sqlalchemy und erstellen Sie ein Wörterbuch
100 Sprachverarbeitung Knock-84 (mit Pandas): Erstellen einer Wortkontextmatrix
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
(Für Anfänger) Versuchen Sie, mit Django eine einfache Web-API zu erstellen
Erstellen Sie eine einfache CRUD-App mit der generischen Klassenansicht von Django
Die Geschichte des Erstellens einer Datenbank mithilfe der Google Analytics-API
Ich habe mit PyQt einen einfachen Texteditor erstellt
Ein einfaches Beispiel für pivot_table.
Erstellen von Spigot-Plugins mit Eclipse
Zeitmessung mit einer Uhr
Erstellen Sie einen (einfachen) REST-Server
# 1 [python3] Einfache Berechnung mit Variablen
Pfeffer-Tutorial (5): Verwenden eines Tablets
Verwenden eines Druckers mit Debian 10
Erstellen Sie einen einfachen Textlint-Server
Ein Memorandum zur Verwendung von eigen3
Machen Sie einen einfachen CO2-Inkubator mit Raspberry PI und CO2-Sensor (MH-Z14A)
Erstellen und Bereitstellen von Django-Apps (PTVS) mithilfe des Azure Table-Speichers
Erstellen Sie einen einfachen geplanten Stapel mit Dockers Python Image und parse-crontab
Verwenden Sie sqlalchemy, um die DB-Tabelle zu durchsuchen und eine Datenflamme für Pandas zu erstellen
So formatieren Sie eine Tabelle mit Pandas Apply, Pivot und Swaplevel
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
Bewerten Sie die Leistung eines einfachen Regressionsmodells mithilfe der LeaveOneOut-Schnittstellenvalidierung
[Python] Analysieren Sie Splatoon 2-Ligaspieldaten mithilfe einer Korrelationskoeffiziententabelle
Erstellen einer Shogi-Score-Management-Anwendung mit Django 1-Environment building-