De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python

introduction

Il est presque toujours nécessaire d'utiliser l'analyse morphologique pour faire des choses liées au traitement du langage naturel. Les analyseurs morphologiques qui peuvent utiliser le japonais sont "MeCab" et "[JUMAN ++](http://nlp.ist.i.kyoto-u.ac." jp / index.php? JUMAN ++) "est célèbre. Cette fois, nous présenterons JUMAN ++ et effectuerons une analyse morphologique.

Le contenu de cet article est le suivant.

Qu'est-ce que le traitement du langage naturel?

Le traitement du langage naturel (anglais: traitement du langage naturel, abréviation: NLP) est une série de technologies qui permettent à un ordinateur de traiter le langage naturel que les humains utilisent au quotidien, et est utilisé en intelligence artificielle et en linguistique. C'est un champ. [Traitement du langage naturel | Wikipédia](https://ja.wikipedia.org/wiki/Traitement du langage naturel)

** "En un mot" **: Technologie qui traite le langage que les humains utilisent habituellement sur un ordinateur

Qu'est-ce que l'analyse morphologique?

L'analyse morphologique va de données textuelles (phrases) en langage naturel sans notes d'informations grammaticales à des informations telles que la grammaire de la langue cible et les paroles partielles de mots appelés dictionnaires. À l'origine, il s'agit de diviser en colonnes d'éléments morphologiques (Morphème, en gros, la plus petite unité qui a un sens dans la langue), et de déterminer la partie de chaque élément morphologique. [Analyse morphologique | Wikipédia](https://ja.wikipedia.org/wiki/Analyse morphologique)

** "En un mot" **: Processus consistant à diviser une phrase donnée en les plus petits mots significatifs et à donner des informations sur une partie de mot, etc.

Qu'est-ce que JUMAN ++

JUMAN ++ est un système d'analyse morphologique haute performance développé par le laboratoire Kurohashi / Kawahara de l'Université de Kyoto. En utilisant RNNLM comme modèle de langage, l'analyse est effectuée en tenant compte du caractère sémantique de la séquence de mots. La précision de base ne change pas, mais en plus de la bonne connexion des mots, il semble qu'une précision supérieure à MeCab ait été confirmée à certains égards. Cependant, cela semble être plus lent que d'autres, donc si vous avez besoin de performances en temps réel, vous pouvez utiliser MeCab.

** "En bref" **: Un analyseur morphologique haute performance en japonais, qui peut être plus précis que MeCab.

Environnement d'exploitation

Introduction de JUMAN ++

Commençons maintenant à introduire JUMAN ++. Cette fois, nous allons introduire JUMAN ++ sous Linux.

Pour les utilisateurs de Mac, veuillez consulter ici.

Ce sont les deux sites auxquels j'ai fait référence.

Tout d'abord, installez deux packages prérequis pour l'utilisation de JUMAN ++.

Ensuite, installez JUMAN ++ lui-même.

$ wget http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.01.tar.xz
$ tar xJvf jumanpp-1.01.tar.xz
$ cd jumanpp-1.01
$ ./configure
$ make
$ make install

JUMAN ++ est maintenant installé! Par défaut, il est installé dans / usr / local /, donc si vous souhaitez spécifier la destination de l'installation, ./configure Ajoutez l'option --prefix = / path à.

Essayez immédiatement.

$ jumanpp
J'ai commencé à étudier l'analyse morphologique

Forme Keitai Forme Nez 6 Nez ordinaire 1* 0 * 0 "Notation représentative:forme/Catégorie Keitai:Forme / motif"
Nez élémentaire 6 Nez ordinaire 1* 0 * 0 "Notation représentative:Élémentaire/Alors lecture de kanji:Catégorie sonore:Abstrait"
Analyse Kaiseki Analyse Nominal 6 Sahen Nom 2* 0 * 0 "Notation représentative:une analyse/Catégorie Kaiseki:Domaine abstrait:Éducation / apprentissage;Science et technologie"
Non non non auxiliaire 9 assistant de connexion 3* 0 * 0 NIL
Study Benkyo Study Noun 6 Sahen Nom 2* 0 * 0 "Notation représentative:étude/Catégorie Benkyo:Domaine abstrait:Éducation / apprentissage"
Vers deux auxiliaires 9 boîtier auxiliaire 1* 0 * 0 NIL
Commencer Commencer Commencer le verbe 2*0 voyelle verbe 1 forme continue de base 8"Notation représentative:début/Début Verbe attaché candidat (basique) Verbe auto-autre:Soi:Début/Rébellion qui commence:verbe:terminer/Ouais"
Masu Masu suffixe 14 verbe sexe suffixe 7 verbe sexe suffixe type 31 ta forme 7"Notation représentative:Masu/Masu"
.. .. .. Spécial 1 Phrase 1* 0 * 0 NIL
EOS

Le fichier exécutable de JUMAN ++ est jumanpp. Dans mon environnement, il était dans / bin dans le dossier de destination. L'analyse morphologique a été réussie avec JUMAN ++!

Utilisez JUMAN ++ de Python

Ensuite, nous utiliserons JUMAN ++ de Python.

JUMAN ++ est disponible depuis Python en utilisant PyKNP. Lorsque vous utilisez PyKNP, si JUMAN et KNP ne sont pas inclus dans l'environnement actuel, vous devez les installer tous les deux.

Je me suis référé au site suivant. Utilisation de JUMAN ++ depuis Python

Veuillez utiliser le Site de référence pour les trois méthodes d'installation ci-dessus.

Appelons enfin JUMAN ++ depuis Python!

python_jumanpp.py


#-*- encoding: utf-8 -*-
from pyknp import Jumanpp
import sys
import codecs
sys.stdin = codecs.getreader('utf_8')(sys.stdin)
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
# Use Juman++ in subprocess mode
jumanpp = Jumanpp()
result = jumanpp.analysis(u"J'ai commencé à traiter le langage naturel.")
for mrph in result.mrph_list():
	print u"Titre:%s" % (mrph.midasi)
$ python python_jumanpp.py
Titre:La nature
Titre:Langue
Titre:En traitement
Titre:début
Titre:Était
Titre:。

Vous avez utilisé avec succès JUMAN ++ de Python!

c'est tout

Recommended Posts

De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Analyse morphologique japonaise avec Python
Introduction à l'analyse de données par Python P17-P26 [ch02 1.usa.gov données de bit.ly]
Introduction à Python avec Atom (en route)
De l'introduction de pyethapp à l'exécution du contrat
De la préparation à l'analyse morphologique avec python en utilisant polyglotte au marquage des mots partiels
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Introduction à Python] Quelle est la méthode de répétition avec l'instruction continue?
[Python] De l'analyse morphologique des données CSV à la sortie CSV et à l'affichage graphique [GiNZA]
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
[Python] Analyse morphologique avec MeCab
Apprenez Nim avec Python (dès le début de l'année).
Python: texte japonais: analyse morphologique
[Introduction à Python] Comment itérer avec la fonction range?
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
Calculer le coefficient de régression d'une analyse de régression simple avec python
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Introduction à Python] Utilisation basique de la bibliothèque matplotlib
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
J'ai essayé de trouver l'entropie de l'image avec python
20200329_Introduction à l'analyse de données avec Python 2nd Edition Personal Summary
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
[Raspi4; Introduction au son] Enregistrement stable de l'entrée sonore avec python ♪
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Récupérez la source de la page à charger indéfiniment avec python.
Existence du point de vue de Python
Text mining avec Python ① Analyse morphologique
Introduction à l'analyse d'image opencv python
Comment gratter le cours d'une action individuelle du site Web Nikkei Shimbun avec Python
Comment connaître le nombre de GPU de python ~ Remarques sur l'utilisation du multitraitement avec pytorch ~
Porté du langage R de "Sazae-san's Janken Data Analysis" vers Python
Système de notation IPynb réalisé avec TA d'introduction à la programmation (Python)
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
Introduction aux bases de Python de l'apprentissage automatique (apprentissage non supervisé / analyse principale)
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
Introduction à l'analyse de données avec Python P32-P43 [ch02 3.US Baby Names 1880-2010]
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Je veux sortir le début du mois prochain avec Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 1
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 2
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Notes d'apprentissage depuis le début de Python 1
Je souhaite extraire une URL arbitraire de la chaîne de caractères de la source html avec python
Vérifier l'existence du fichier avec python
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Introduction facile de la reconnaissance vocale avec Python
[Introduction à Python] Utilisons foreach avec Python
Chapitre 1 Introduction à Python Découpez uniquement les bons points de Deeplearning à partir de zéro
Envoie le résultat de l'analyse morphologique avec Mecab vers un navigateur WEB compatible avec le serveur Sakura / UTF-8
Comment entrer le japonais avec les malédictions Python
Essayez de calculer la position de l'émetteur à partir du modèle de propagation des ondes radio avec python [Wi-Fi, Beacon]
Python: analyse morphologique simplifiée avec des expressions régulières
Notes d'apprentissage depuis le début de Python 2