[PYTHON] L'histoire de la création d'un package qui accélère le fonctionnement de Juman (Juman ++) & KNP

Que présenter dans cet article

Qu'est-ce que KNP?

C'est un "analyseur de syntaxe japonaise". Tu peux le faire.

--Analyse de cas

Article précédent pour référence

Eh bien, RNN va bien, n'est-ce pas?

Vous vous demandez peut-être: "Êtes-vous toujours en train d'analyser?" En fait, il a déjà été montré que le RNN conçu donne la plus grande précision dans la tâche de deviner la note (http://www.slideshare.net/hirokiouchi5/ss-70436298). En fait, le code source est également ouvert au public, donc je pense que c'est correct d'aller ici.

Cependant, [KNP est toujours la cible la plus analysée](http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/corpus/KyotoCorpus4.0/doc/rel_guideline. pdf) et KNP est un outil facile à utiliser car il affiche non seulement une analyse de cas, mais également des informations de syntaxe à partir d'informations morphologiques.

Un petit problème avec KNP

La vitesse d'analyse n'est pas très rapide. ~~ Certaines personnes disent que la vitesse d'analyse de Mecab et Cabocha est tout simplement trop rapide ~~

Je m'en fiche quand il n'y a qu'une petite quantité de données d'entrée, mais à mesure que la quantité de données augmente, j'aimerais en concevoir un peu.

Cependant, je ne veux pas toucher au contenu.

Ensuite, le package présenté dans cet article est une idée simple de __ "Il est normal de décentraliser" __.

J'ai créé un package qui décentralisera le traitement des appels KNP

Installation

Maintenant que vous vous êtes enregistré avec Pypi, vous pouvez l'installer avec pip.

pip install knp-utils

Fonctionnalité

Comparaison de vitesse (Juman & KNP)

C'est plus rapide. La différence a tendance à augmenter à mesure que le nombre de documents d'entrée augmente. Les chiffres ci-dessous sont des comparaisons pour 40 documents.

Au fait, pexpect, ʻeverytimeest un nom de mode qui gère les processus humains et KNP dans le multithreading. pexpect laisse le processus Human & KNP en cours d'exécution. ʻEverytime lance Human & KNP pour chaque texte d'entrée.

pexpect mode, finished with :44.13979196548462[sec]
everytime mode, finished with :38.31942701339722[sec]
pyknp, finished with :64.74086809158325[sec]

Comparaison de vitesse (Juman ++ & KNP)

Comparaison du temps lors de la combinaison Juman ++ & KNP. On dit que Juman ++ (1.02) est "lent, qu'est-ce que c'est?" En effet, le chargement du fichier modèle prend du temps au démarrage du processus.

Donc, si vous laissez le processus en cours d'exécution, il sera plus rapide. C'est une histoire simple.

pexpect mode, finished with :48.096940994262695[sec]
everytime mode, finished with :64.07872700691223[sec]
pyknp, finished with : 602.032340992232452[sec]

Contenu de l'opération

Il répète simplement le processus suivant.

finalement

Ayez une vie d'analyse syntaxique rapide, facile et amusante!

[^ 1]: 40 Différences entre les documents. Plus vous entrez de documents, plus vite ce sera. [^ 2]: le multiprocessus est plus rapide, mais j'ai eu une erreur et cela n'a pas fonctionné (´ ・ ω ・ `)

Recommended Posts

L'histoire de la création d'un package qui accélère le fonctionnement de Juman (Juman ++) & KNP
Une histoire qui réduit l'effort de fonctionnement / maintenance
L'histoire de la création d'un module qui ignore le courrier avec python
L'histoire de la création d'un générateur d'icônes mel
L'histoire de la fabrication d'une boîte qui interconnecte la mémoire AL de Pepper et MQTT
L'histoire de la création d'une application Web qui enregistre des lectures approfondies avec Django
L'histoire de la création d'un Line Bot qui nous raconte le calendrier de la programmation du concours
L'histoire de la création d'un réseau neuronal de génération musicale
Une histoire qui a analysé la livraison de Nico Nama.
L'histoire de la création d'un bot de boîte à questions avec discord.py
L'histoire de l'exportation d'un programme
L'histoire de la création d'un pilote standard pour db avec python.
L'histoire de la création d'un outil qui fonctionne sur Mac et Windows sur le site de développement de jeux
Une histoire qui a trébuché sur un calcul de comparaison
L'histoire du traitement A du blackjack (python)
Une histoire qui visualise le présent de Qiita avec Qiita API + Elasticsearch + Kibana
L'histoire du développement d'une application WEB qui génère automatiquement des copies de capture [MeCab]
L'histoire de la création d'une caméra sonore avec Touch Designer et ReSpeaker
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
L'histoire de la création du Mel Icon Generator version 2
Autour de l'authentification de PyDrive2, un package pour faire fonctionner Google Drive avec Python
L'histoire de Django créant une bibliothèque qui pourrait être un peu plus utile
L'histoire du lancement d'un serveur Minecraft depuis Discord
[Python] Un programme qui compte le nombre de vallées
Créez un BOT qui raccourcit l'URL Discord
#Une fonction qui renvoie le code de caractère d'une chaîne de caractères
Une histoire qui a eu du mal avec l'ensemble commun HTTP_PROXY = ~
Générer cette forme du fond d'une bouteille pour animaux de compagnie
Une histoire sur le changement du nom principal de BlueZ
L'histoire selon laquelle la valeur de retour de tape.gradient () était None
Le problème Zip 4 Gbyte est une histoire du passé
[Python] Un programme qui compare les positions des kangourous.
L'histoire de sys.path.append ()
L'histoire de la création d'un canal VIP dans le chatwork en interne
L'histoire de l'introduction de Jedi (package de complétion automatique de python) dans emacs
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
Script Python qui compare le contenu de deux répertoires
Une histoire qui a vérifié si le nombre de coronas augmente vraiment rapidement chez les jeunes
Une petite histoire addictive avec les permissions du répertoire spécifié par expdp (pour les débutants)
L'histoire de la création d'un Bot qui affiche les membres actifs dans un canal spécifique de Slack avec Python
L'histoire de la construction de Zabbix 4.4
Mémorandum de l'outil de gestion de paquets Python ez_setup
Lors de l'incrémentation de la valeur d'une clé qui n'existe pas
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
L'histoire selon laquelle la version de python 3.7.7 n'était pas adaptée à Heroku
pandas Récupère le nom d'une colonne contenant un caractère spécifique
L'histoire de l'erreur de hachage est apparue lors de l'utilisation de Pipenv
Une formule qui calcule simplement l'âge à partir de la date de naissance
Une fonction qui mesure le temps de traitement d'une méthode en python
L'histoire du travail de sortie de l'application que Google ne raconte pas
Le problème que la version de Vue CLI n'a pas augmenté
J'ai fait un bot mou qui m'informe de la température
[Pythonista] L'histoire de la réalisation d'une action pour copier le texte sélectionné
Une histoire qui prend en charge la notation électronique des examens avec reconnaissance d'image
[python] Une note que j'ai commencé à comprendre le comportement de matplotlib.pyplot
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche