[PYTHON] Exécutez Polyglot sur Raspberry Pi pour effectuer une analyse morphologique en anglais

Il était nécessaire d'effectuer une analyse morphologique en anglais lors de la fabrication de matériel pour le calendrier de l'Avent, mais je suis resté un peu coincé, donc je vais le laisser.

Qu'est-ce que Polygot

Dans le domaine japonais, MeCab est souvent repris comme un outil d'analyse morphologique, mais il n'y a pas tellement de cas lorsqu'il s'agit d'analyses morphologiques en anglais. Polygot est une bibliothèque qui a de nombreuses fonctions d'analyse du langage naturel telles que l'identification et la détection de la langue, y compris l'analyse morphologique des phrases en anglais.

Gamme de prise en charge linguistique

C'est comme décrit dans le Document officiel, mais les langues prises en charge diffèrent selon la fonction.

Nom de la fonction Nombre de langues prises en charge La description
Tokenisation 165 langues Divisez la chaîne de caractères en plus petites unités de phrases à gérer lors du traitement du langage naturel
Détection de la langue 196 langues Identifier la langue de la chaîne à analyser
Extraction d'expression unique 40 langues Extrait l'expression unique de la chaîne de caractères à analyser PolygotendroitOrganisationHommeVous pouvez extraire 3 types de
Marquage de mot partiel 16 langues Ajouter une balise de mot partiel à chaque jeton de la chaîne de caractères à analyser
Analyse des émotions 136 langues NégatifneutrepositifVous pouvez obtenir 3 types de
Représentation distribuée 137 langues Mapper les mots sur un espace vectoriel en d dimensions
Analyse morphologique 135 langues Divisez la chaîne de caractères à analyser dans les plus petites unités significatives
Translitération 69 langues Convertit la chaîne de caractères saisie en chaîne de caractères de la langue spécifiée

Comme vous pouvez le voir dans le tableau ci-dessus, il prend en charge de nombreuses langues.

Install Configurons Polygot pour qu'il fonctionne réellement.

Installer Polygot

$ sudo pip3 install -U polyglot

polyglot lui-même peut être installé simplement en exécutant la commande ci-dessus. Cependant, pour effectuer effectivement une analyse de la langue avec polyglotte, il est nécessaire d'obtenir un dictionnaire de la langue à analyser. Si ICU n'est pas installé lors de la récupération du dictionnaire, une erreur sera générée. Donc, avant de télécharger, exécutez la commande suivante pour obtenir la bibliothèque requise.

$ sudo apt-get -y install libicu-dev
$ sudo pip3 install -U pyicu
$ sudo pip3 install -U morfessor

De plus, ** pycld2 ** est requis pour télécharger le modèle. Dans un environnement Linux normal, vous pouvez installer en appuyant simplement sur `` $ sudo pip install pycld2 ''. Cependant, lorsque j'exécute la commande ci-dessus sur Raspberry Pi, l'erreur suivante s'affiche.

arm-linux-gnueabihf-gcc: error: unrecognized command line option ‘-m64’
  error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pycld2

L'erreur ci-dessus se produit car le compilateur de l'architecture ARM ne fournit pas l'option -m64 et la compilation échoue. Tel quel, pycld2 ne peut pas être installé, donc Polyglot ne peut pas être exécuté sur Raspberry Pi. J'ai des problèmes ...

Installez pycld2 sur Raspberry Pi

Comme il ne peut pas être installé tel quel, il est nécessaire d'exécuter setup.py après avoir supprimé l'option de compilation -m64 spécifiée dans setup.py '' de pycld2. Après git cloneà partir du référentiel suivant, jouez avec setup.py``. aboSamoor/pycld2 - Github

$ git clone https://github.com/aboSamoor/pycld2.git
$ cd pycld2/

Déplacez-vous vers le répertoire de pycld2 qui a été cloné par git, supprimez ** - m64 ** du tableau des options de compilation décrites dans la ligne 78 de setup.py situé directement en dessous, puis enregistrez-le.

Changer avant


    language="c++",
    # TODO: -m64 may break 32 bit builds
    extra_compile_args=["-w", "-O2", "-m64", "-fPIC"],

Après le changement


    language="c++",
    # TODO: -m64 may break 32 bit builds
    extra_compile_args=["-w", "-O2", "-fPIC"],

Après avoir effectué les modifications, exécutez la commande suivante.

$ sudo pip3 install hogehoge/pycld2/
Successfully built pycld2
Installing collected packages: pycld2
Successfully installed pycld2-0.42

Après l'exécution, si Réussie s'affiche, l'installation est réussie.

Téléchargez le modèle

Vous pouvez télécharger le modèle qui exécute la commande suivante. Cette fois, nous analyserons la morphologie des phrases anglaises, alors téléchargez le modèle anglais.

$ polyglot download morph2.en
[polyglot_data] Downloading package morph2.en to
[polyglot_data]     /home/pi/polyglot_data...

Analyse morphologique réelle

Tout ce que vous avez à faire est d'exécuter l'exemple de code ci-dessous.

morph.py


from polyglot.text import Text

sample_text = "One Hamburger and a Medium Coffee please."
tokens = Text(sample_text)
print(tokens.morphemes)

Lorsque vous exécutez réellement le script ci-dessus, vous pouvez obtenir le résultat sous la forme suivante.

$ python3 morph.py 
['One', ' ', 'Ham', 'burg', 'er and a Medium Coffee p', 'lease', '.']

en conclusion

Cette fois, j'ai utilisé Polyglot pour la première fois pour créer un certain programme. Étant donné que la langue peut être déterminée, s'il s'agit du japonais en relation avec l'API Twitter, elle peut être traitée du côté MeCab et le reste peut être laissé à Polyglot. Je ne pense pas que le traitement en langage naturel des phrases en anglais sera utilisé dans les affaires, mais je le laisserai comme un mémorandum comme un tiroir.

Recommended Posts

Exécutez Polyglot sur Raspberry Pi pour effectuer une analyse morphologique en anglais
Comment installer NumPy sur Raspeye
Connectez-vous à MySQL avec Python sur Raspberry Pi
Le mur pour mettre OpenCV 3.1.0 dans raspberry pi 3 et exécuter l'exemple en python3: ImportError: Aucun module nommé solution cv2
Exécutez la matrice LED de manière interactive avec Raspberry Pi 3B + sur Slackbot
pigpio sur Raspberry pi
Sortie sur "LED 7 segments" en utilisant python avec Raspberry Pi 3!
Cython sur Raspberry Pi
Exécutez AWS IoT Device SDK for Python sur Raspberry Pi
Je souhaite désactiver les interruptions sur le Raspberry Pi (≒ DI / EI)
Changer le message affiché lors de la connexion à Raspberry Pi
J'ai parlé à Raspberry Pi
Présentation de PyMySQL à Raspberry pi3
Introduction de pyenv sur Raspberry Pi
Utilisez NeoPixel avec la tarte aux framboises
Installez OpenCV4 sur Raspberry Pi 3
Installez TensorFlow 1.15.0 sur Raspberry Pi
Connectez-vous à Raspberry PI avec ssh sans mot de passe (authentification par clé)
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Résolution d'une erreur lors de la mise en place de pygame dans python3 sur raspberry pi
Effectuer une analyse morphologique dans l'environnement d'apprentissage automatique lancé par GCE
Je veux exécuter l'interface graphique Python au démarrage de Raspberry Pi
Utilisez python sur Raspberry Pi 3 pour éclairer la LED (Hello World)
Comment lire des fichiers musicaux (wav / mp3) sur Raspberry Pi python
Portez FreeRTOS vers Raspberry Pi 4B
Test de la communication UART avec Raspberry Pi
MQTT sur Raspberry Pi et Mac
Préparation à l'exécution de Flask sur EC2
Installez ghoto2 sur Raspberry Pi (Remarque)
Sortie du Raspberry Pi vers la ligne
Comment exécuter matplotlib sur heroku
Essayez d'utiliser ArUco avec Raspberry Pi
Procédure d'installation d'OpenCV sur Raspberry Pi
Allumer / éteindre le Raspberry pi avec Arduino
Comment exécuter du code TensorFlow 1.0 en 2.0
Détecter l'état du commutateur avec Raspberry Pi 3
Installez OpenMedia Vault 5 sur Raspberry Pi 4
L Chika avec Raspberry Pi C #
[Raspberry Pi] Changement par défaut de Python en Python3
Construisez wxPython sur Ubuntu 20.04 sur Raspberry Pi 4
Créez des raccourcis pour exécuter des fichiers Python sur le terminal avec VScode
De la préparation à l'analyse morphologique avec python en utilisant polyglotte au marquage des mots partiels