[PYTHON] Ich habe das Sudachi-Synonymwörterbuch mit Pandas gelesen und versucht, nach Synonymen zu suchen

Am 11. November 2019 wurde der morphologische Analysator Sudachi entwickelt. Ein Synonymwörterbuch wurde von Works Applications veröffentlicht!

Das Synonymwörterbuch wird hauptsächlich für die Dokumentensuche und Chatbots verwendet, um Notationsschwankungen zu absorbieren.

Dieses Mal habe ich den Inhalt dieses Wörterbuchs mit der Python-Bibliothek Pandas untersucht.

Umgebung

Laden Sie das Sudachi Synonyms Dictionary herunter

$ wget https://raw.githubusercontent.com/WorksApplications/SudachiDict/develop/src/main/text/synonyms.txt

Lesen

Wenn Sie sich [Dokumente] ansehen (https://github.com/WorksApplications/SudachiDict/blob/develop/docs/synonyms.md), sieht es wie ein CSV-Format aus! Ich werde von hier aus ein Python-Skript schreiben.

import pandas as pd

df = pd.read_csv("synonyms.txt", skip_blank_lines=True,
                 names=('group_id', 'type', 'expand', 'vocab_id',         
                'relation', 'abbreviation', 'spelling', 'domain',  
                'surface', 'reserve1', 'reserve2'))

Da es sich um eine CSV mit Leerzeilen handelt, setzen Sie skip_blank_lines. names ist angemessen.

Suche

Lassen Sie uns vorerst eine Funktion erstellen, die alle dfs mit übereinstimmenden Überschriften anzeigt.

def search_synonyms(word):
    for row in df[df.surface==word].itertuples():
        print(df[df.group_id==row.group_id].loc[:,['group_id', 'domain', 'surface']])

Synonyme werden nach Gruppennummer (group_id) gruppiert. Es scheint also in Ordnung zu sein, wenn Sie dieselbe Zeile wie die Gruppennummer der Zeile verwenden, deren Überschrift ( Oberfläche) mit Wort übereinstimmt!

Ein Fall

Wenn Sie beispielsweise "search_synonyms (" Giant ")" ausführen, sieht dies folgendermaßen aus!

      group_id    domain   surface
5662      3895  (Sport)Yomiuri Riesenarmee
5663      3895  (Sport)Riese
5664      3895  (Sport)Yomiuri
5665      3895  (Sport)Riesenarmee
5666      3895  (Sport)Yomiuri Giants
5667      3895  (Sport)Riesen
5668      3895  (Sport)    Giants
       group_id domain surface
31690     16305  (Mann)      巨Mann
31691     16305  (Mann)Riese
31692     16305  (Mann)   giant

Ich konnte verschiedene Notationen des "Riesen" des Teams und der allgemeinen Nomenklatur "Riese" abrufen!

Zusammenfassung

Diesmal habe ich mir Sudachis Synonymwörterbuch angesehen. Sudachi selbst und dieses Synonymwörterbuch werden in Zukunft ständig aktualisiert. Behalte zukünftige Updates im Auge!

Recommended Posts

Ich habe das Sudachi-Synonymwörterbuch mit Pandas gelesen und versucht, nach Synonymen zu suchen
Lesen Sie CSV und analysieren Sie mit Pandas und Seaborn
Ich habe die Geschwindigkeit der Listeneinschlussnotation für und während mit Python2.7 gemessen.
Ich habe nach Railway Kawayanagi aus den Daten gesucht
Ich habe vorerst mit Floydhub gespielt
[Python] Ich habe nach dem längsten Pokemon Shiritori gesucht
Ich habe den gleitenden Durchschnitt des IIR-Filtertyps mit Pandas und Scipy verglichen
Ich habe die Varianten von UKR gelesen und implementiert
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Ich habe versucht, mit VOICEROID2 2 automatisch zu lesen und zu speichern
Ich habe versucht, mit VOICEROID2 automatisch zu lesen und zu speichern
Extrahieren Sie den Maximalwert mit Pandas und ändern Sie diesen Wert
Ich habe nach dem Inhalt von CloudWatch Logs Agent gesucht
Ich war 2 Minuten lang süchtig nach Python-Debugger-PDF
Ich habe den Code für die japanische Satzgenerierung mit DeZero geschrieben
Lesen Sie die URL-Liste mit Robot Framework und umgeben Sie die Screenshots
[Python] Lesen Sie die CSV-Datei und zeigen Sie die Abbildung mit matplotlib an
Ich habe den Amazon Dash Button gehackt und mich bei Salesforce registriert
Lesen Sie die VTK-Datei und zeigen Sie die Farbkarte mit Jupiter an.
Ich habe zum ersten Mal versucht, mit DynamoDB und Step Functions eine serverlose Stapelverarbeitung zu erstellen
Lesen Sie CSV mit Python-Pandas
Ich habe nach CD-Befehlen gesucht.
Ich habe SHAPs Zeitung gelesen
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich habe PEP 560 gelesen (Kernunterstützung für das Schreiben von Modulen und generischen Typen).
Ich suchte mit Deep Learning nach einer ähnlichen Karte von Hearthstone
[Pandas] Ich habe versucht, Verkaufsdaten mit Python zu analysieren. [Für Anfänger]
[Python3] Speichern Sie die Mittelwert- und Kovarianzmatrix in json mit Pandas
Ich habe die Grundoperation von Pandas im Jupyter Lab geschrieben (Teil 1)
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
Ich habe die grundlegende Operation von Pandas im Jupyter Lab geschrieben (Teil 2).
Ich habe versucht, das TensorFlow-Tutorial mit Kommentaren auszuführen (_TensorFlow_2_0_Einführung für Anfänger).