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.
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.
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 Polygotendroit、Organisation、HommeVous 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égatif、neutre、positifVous 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.
$ 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 ...
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.
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...
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', '.']
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