J'ai essayé de regrouper le logiciel suivant qui est utile pour le traitement du langage naturel japonais dans une image Docker.
Pour le moment, si vous souhaitez configurer un conteneur et y aller, vous pouvez le faire comme ceci:
$ docker run --rm -it ototadana/nlp-jp bash
Le démarrage de Python ressemble à ceci:
$ docker run --rm -it ototadana/nlp-jp python
MeCab Un exemple d'exécution de la commande mecab:
$ echo "Le crash d'OVNI qui est devenu un sujet brûlant l'année dernière n'est plus qu'une ressource touristique. Spécialités de la ville" | docker run --rm -i ototadana/nlp-jp mecab
L'année dernière,Avocat possible,*,*,*,*,l'année dernière,Sakunen,Sakunen
Nomenclature des sujets,Général,*,*,*,*,sujet,Wadai,Wadai
Auxiliaire,Assistant de cas,Général,*,*,*,À,ré,ré
Verbe naru,Indépendance,*,*,Cinq étapes, La ligne,Connexion continue,Devenir,Natsu,Natsu
Verbe auxiliaire,*,*,*,Spécial,Forme basique,Ta,Ta,Ta
OVNI substantif,Nom propre,Général,*,*,*,UFO,OVNI,OVNI
Crash substantif,Changer de connexion,*,*,*,*,crash,Twirac,Twirac
Nomenclature des cas,Général,*,*,*,*,Incident,Jiken,Jiken
, Symbole,Point de lecture,*,*,*,*,、,、,、
Maintenant nomenclature,Avocat possible,*,*,*,*,maintenant,Ima,Ima
Est un assistant,Assistance,*,*,*,*,Est,C,sensationnel
Juste un nom,Général,*,*,*,*,pourtant,gratuit,gratuit
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
Ressource touristique substantif,Nom propre,Général,*,*,*,Ressources touristiques,Kankoushigen,Kanko Shigen
.. symbole,Phrase,*,*,*,*,。,。,。
Ville substantif,Général,*,*,*,*,Ville,Machi,Machi
Mots auxiliaires,syndicat,*,*,*,*,de,Non,Non
Nomenclature de spécialité,Général,*,*,*,*,Spécialité,Mabutsu,Mabutsu
EOS
CaboCha Exemple d'exécution de la commande cabocha:
$ echo "Le crash d'OVNI qui est devenu un sujet brûlant l'année dernière n'est plus qu'une ressource touristique. Spécialités de la ville" | docker run --rm -i ototadana/nlp-jp cabocha
l'année dernière---D
Vers le sujet-D
devenu-D
Crash d'OVNI,-----D
maintenant---D
Juste-D
Ressources touristiques.---D
la ville-D
Spécialité
Il est stocké sous forme de base de données au format sqlite dans WordNet japonais. Vous pouvez y accéder avec du code python comme ci-dessous:
example-wordnet.py:
import sqlite3
query = """
select c.def from sense a, word b, synset_def c
where b.lemma = ? and c.lang = 'jpn'
and a.wordid = b.wordid and a.synset = c.synset
"""
with sqlite3.connect('/dictionary/wnjpn.db') as conn:
print([row[0] for row in conn.cursor().execute(query, ['sujet'])])
Si vous avez écrit ce code côté hôte, montez et exécutez le répertoire courant côté hôte avec l'option -v
comme suit:
$ docker run --rm -i -v $PWD:/app ototadana/nlp-jp python /app/example-wordnet.py
['Sujet de conversation ou de discussion']
MeCab est également accessible à partir du code Python. À partir du code Python, vous pouvez utiliser MeCab en combinaison avec WordNet japonais comme suit:
example-mecab+wordnet.py:
import MeCab, sqlite3
def get_definition(word):
query = """
select c.def from sense a, word b, synset_def c
where b.lemma = ? and c.lang = 'jpn'
and a.wordid = b.wordid and a.synset = c.synset
"""
with sqlite3.connect('/dictionary/wnjpn.db') as conn:
return [row[0] for row in conn.cursor().execute(query, [word])]
tagger = MeCab.Tagger()
tagger.parse('')
node = tagger.parseToNode('Le crash d'OVNI qui est devenu un sujet brûlant l'année dernière n'est plus qu'une ressource touristique. Spécialités de la ville').next
while node:
print('%s:' % node.surface)
print(' - %s' % node.feature)
for definition in get_definition(node.feature.split(',')[6]):
print(' - %s' % definition)
print()
node = node.next
Quand je fais cela, cela ressemble à ceci:
$ docker run --rm -i -v $PWD:/app ototadana/nlp-jp python /app/example-mecab+wordnet.py
l'année dernière:
-nom,Avocat possible,*,*,*,*,l'année dernière,Sakunen,Sakunen
sujet:
-nom,Général,*,*,*,*,sujet,Wadai,Wadai
-Sujet de conversation ou de discussion
À:
-Particule,Assistant de cas,Général,*,*,*,À,ré,ré
Devenu:
-verbe,Indépendance,*,*,Cinq étapes, La ligne,Connexion continue,Devenir,Natsu,Natsu
-Accepter le changement ou le développement
-Fort et joyeux
-Tomber malade et être victime de maladie
-Officiellement prendre un an
-Approprié
-Faire ou représenter:
-Exister
-Le calcul du nombre ou de la quantité correspond
-Développer et atteindre la maturité
-Gagner en maturité
-Se produit d'une manière particulière
-Atteindre ou entrer un état, une relation, une condition, une utilisation ou un statut
-Peut, changer, être fait ou c'est possible
-Passer progressivement à un état et présenter certaines propriétés ou attributs
-Devenir
-Être ou être dans un état ou un état particulier
-Déformé ou sujet à des changements de position ou de comportement
-Diriger ou distraire l'attention, les intérêts, les pensées ou les intérêts d'une personne de quelque chose
-Développer
Ta:
-Verbe auxiliaire,*,*,*,Spécial,Forme basique,Ta,Ta,Ta
UFO:
-nom,Nom propre,Général,*,*,*,UFO,OVNI,OVNI
crash:
-nom,Changer de connexion,*,*,*,*,crash,Twirac,Twirac
-Chute libre rapide due à la gravité
-Sous l'influence de la gravité, il tombe sans s'arrêter
-Tomber ou tomber brusquement
Incident:
-nom,Général,*,*,*,*,Incident,Jiken,Jiken
-Tollé public
-Problèmes qui doivent être étudiés
-Un seul événement notable
-Quelque chose est arrivé
、:
-symbole,Point de lecture,*,*,*,*,、,、,、
maintenant:
-nom,Avocat possible,*,*,*,*,maintenant,Ima,Ima
-Actuel ou moderne
-Présent momentané
-Temps qui passe actuellement
-Une série d'heures incluant le moment du discours
-Juste un peu avant
-Dans le présent historique
-À ce stade de la narration d'une série d'événements passés
-À l'heure actuelle, le modèle temporel
-Juste maintenant
-En ce moment
-Courant
-En ce moment
Est:
-Particule,Assistance,*,*,*,*,Est,C,sensationnel
pourtant:
-nom,Général,*,*,*,*,pourtant,gratuit,gratuit
-Sans rien d'autre inclus ou lié
-Et beaucoup ne sont rien
de:
-Particule,syndicat,*,*,*,*,de,Non,Non
Ressources touristiques:
-nom,Nom propre,Général,*,*,*,Ressources touristiques,Kankoushigen,Kanko Shigen
。:
-symbole,Phrase,*,*,*,*,。,。,。
Ville:
-nom,Général,*,*,*,*,Ville,Machi,Machi
-Des situations qui donnent des opportunités
-Une région de la ville aux caractéristiques distinctives
de:
-Particule,syndicat,*,*,*,*,de,Non,Non
Spécialité:
-nom,Général,*,*,*,*,Spécialité,Mabutsu,Mabutsu
-Divertissement offert aux masses
:
- BOS/EOS,*,*,*,*,*,*,*,*
L'exemple de phrase utilisé dans l'exemple ci-dessus est le début des paroles de Oedo Controller --Yunomi feat. TORIENA.
** Yunomi est le meilleur! ** (Bref, c'est l'entrée que je voulais juste dire ...)