[PYTHON] J'ai lu le dictionnaire de synonymes Sudachi avec Pandas et essayé de rechercher des synonymes

Le 11 novembre 2019, l'analyseur morphologique Sudachi a été développé. Un dictionnaire de synonymes a été publié par Works Applications!

Le dictionnaire de synonymes est principalement utilisé pour la recherche de documents et les chatbots pour absorber les fluctuations de notation.

Cette fois, j'ai examiné le contenu de ce dictionnaire en utilisant la bibliothèque Python Pandas.

environnement

Télécharger le dictionnaire des synonymes Sudachi

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

Lis

En regardant Documents, cela ressemble au format csv! J'écrirai un script python à partir d'ici.

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

Puisqu'il s'agit d'un csv avec des lignes vides, définissez skip_blank_lines. «names» est approprié.

Chercher

Pour le moment, créons une fonction qui affiche tous les dfs avec les en-têtes correspondants.

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

Les synonymes sont regroupés par numéro de groupe (group_id), il semble donc normal que vous preniez la même ligne que le numéro de groupe de la ligne dont l'en-tête ( surface) correspond à mot!

Un cas

Par exemple, lancer search_synonymes ('Giant') ressemblera à ceci!

      group_id    domain   surface
5662      3895  (Des sports)Armée géante de Yomiuri
5663      3895  (Des sports)Géant
5664      3895  (Des sports)Yomiuri
5665      3895  (Des sports)Armée géante
5666      3895  (Des sports)Géants de Yomiuri
5667      3895  (Des sports)géants
5668      3895  (Des sports)    Giants
       group_id domain surface
31690     16305  (Homme)      巨Homme
31691     16305  (Homme)Géant
31692     16305  (Homme)   giant

J'ai pu récupérer diverses notations du "géant" de l'équipe et de la nomenclature générale "géant"!

Résumé

Cette fois, j'ai jeté un coup d'œil au dictionnaire de synonymes de Sudachi. Sudachi lui-même et ce dictionnaire de synonymes seront mis à jour régulièrement à l'avenir. Gardez un œil sur les futures mises à jour!

Recommended Posts

J'ai lu le dictionnaire de synonymes Sudachi avec Pandas et essayé de rechercher des synonymes
Lisez CSV et analysez avec Pandas et Seaborn
J'ai mesuré la vitesse de la notation d'inclusion de liste, pendant et pendant avec python2.7.
J'ai recherché Railway Kawayanagi à partir des données
J'ai joué avec Floydhub pour le moment
[Python] J'ai cherché le plus long Pokémon Shiritori
J'ai comparé la moyenne mobile du type de filtre IIR avec les pandas et scipy
J'ai lu et implémenté les variantes de UKR
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
Extraire la valeur maximale avec les pandas et modifier cette valeur
J'ai recherché le contenu de l'agent CloudWatch Logs
J'étais accro au débogueur Python pdb pendant 2 minutes
J'ai écrit le code pour la génération de phrases japonaises avec DeZero
Lisez la liste des URL avec Robot Framework et entourez les captures d'écran
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
J'ai piraté le bouton Amazon Dash et je me suis inscrit à Salesforce
Lisez le fichier VTK et affichez la carte des couleurs avec jupyter.
J'ai essayé de créer un traitement par lots sans serveur pour la première fois avec DynamoDB et Step Functions
Lire csv avec des pandas python
J'ai recherché des commandes de CD.
J'ai lu l'article de SHAP
J'ai comparé la vitesse de Hash avec Topaz, Ruby et Python
J'ai lu PEP 560 (support de base pour le module de saisie et les types génériques)
J'ai recherché une carte similaire de Hearthstone avec Deep Learning
[Pandas] J'ai essayé d'analyser les données de ventes avec Python [Pour les débutants]
[Python3] Enregistrez la matrice de moyenne et de covariance dans json avec les pandas
J'ai écrit le fonctionnement de base de Pandas dans Jupyter Lab (partie 1)
Pour le moment, je veux convertir n'importe quel fichier avec ffmpeg !!
J'ai écrit le fonctionnement de base de Pandas dans Jupyter Lab (partie 2)
J'ai essayé d'exécuter le didacticiel TensorFlow avec des commentaires (_TensorFlow_2_0_Introduction pour les débutants)