J'enseigne la programmation à l'école. Dans mon séminaire, je travaille sur des thèmes liés à l'IA (liés à l'intelligence artificielle) en utilisant Python. ------------------- ・ Notes sur les outils et bibliothèques (format PDF 40 pages: 502 Ko) Mis à jour le 29 septembre 2018 Outils mentionnés: MeCab, CaboCha, JUMAN, KNP, Open JTalk, Julius, OpenSSL Bibliothèques référencées: GMP, MPFR Environnement de traitement mentionné: Visual Studio, MSYS / MinGW Modules mentionnés: mecab-python, PySwip ------------------- ・ Texte du prologue Nous prévoyons d'en faire un moteur d'inférence back-end pour les programmes Python. ------------------- Le texte pour apprendre Python est basé sur ceci. → J'ai fait un texte en Python (2017/07/11) Nous travaillons à la mise en place d'une "fonction de dialogue qui permet d'utiliser correctement le japonais". Donc, tout d'abord, je me prépare à utiliser MeCab et Open JTalk à partir de Python. Le prochain objectif est de réaliser une fonction interactive qui peut convertir des phrases en formules de logique de prédicat du premier ordre (FOL) et échanger du japonais «significatif». (Le type qui a une connexion avant et après le dialogue correctement) Par conséquent, je souhaite créer un lien avec Prolog, j'ai donc besoin d'une fonction pour appeler la fonction SWI-Prolog depuis Python. Cependant, le module PySwip ne fonctionne pas bien, et il semble plus rapide de créer la fonction de coopération par vous-même ... D'ailleurs, la position d'activité de mon séminaire est «architecture cognitive» et «AGI». De nos jours, il semble y avoir une tendance selon laquelle "AI" signifie "réseau neuronal profond", mais dans notre séminaire, le traitement du NN profond est toujours en avance. Il semble que la voix de "l'erreur de temps" volera, mais étonnamment la partie simple est importante. Sous Python, il existe de merveilleux modules tels que l'analyse de données et le traitement mathématique. Vous pouvez également utiliser des moteurs de traitement du langage naturel et d'inférence. Pourquoi ne cherchons-nous pas tous à réaliser «l'intelligence artificielle japonaise polyvalente»?
Dans la recherche de fin d'études de cette année, il y a des étudiants qui travaillent sur le thème de la compréhension du langage naturel (NLU). J'ai créé Publier le module du programme et le document. Présent à la 81e Convention nationale de la société de traitement de l'information.
Ceci est l'un des livrables de la recherche de fin d'études de cette année et est un film agrandi du décor de Mandelbrot. Téléchargé sur YouTube C'est un film qui se développe jusqu'à 10 ^ 260 fois et se compose de 8 855 images. Il faut environ 3 minutes pour générer une image. Par conséquent, si vous générez un film sur une seule machine, ce sera une "opération continue pendant 18 jours", mais si vous divisez, distribuez et intégrez des tâches sur plusieurs machines Il a été achevé en environ 6 heures. Je n'ai utilisé aucune nouvelle technologie, mais j'ai créé un système avec des étudiants pour distribuer et exécuter des programmes de génération de trames écrits en C ++ en Python. En bref, RJE (Remote Job Entry) pour le grid computing a été improvisé en Python. Je l'ai fait avec 3 étudiants en arts libéraux + moi-même. (Présent à la conférence)
C'est également le résultat de la recherche de fin d'études de cette année. Nous visons un système qui résout les problèmes mathématiques en japonais, mais cette fois, nous implémentons une fonction qui "lit correctement les formules mathématiques en japonais". Le moteur de traitement mathématique est Sympy de Python, la copie conforme est TeX et la lecture est Open JTalk. L'étape suivante consiste à développer une fonction qui répondra lorsque vous transmettez la demande en japonais, mais après avoir saisi le japonais, effectuez une analyse morphologique (à l'aide de MeCab) et en faites une expression logique de prédicat et transmettez-la à Prolog. Je le fais. C'est bien que Python puisse tout connecter. Ça va être amusant. ● Lire à voix haute formule 01: ajout simple ● Lire à voix haute formule 02: intégration indéfinie ● Lisez à voix haute la formule 03: Sum ● Lire à voix haute formule 04: cas compliqué ● Lecture des formules mathématiques 05: analyse morphologique japonaise Je l'ai fait avec un étudiant en arts libéraux + moi-même. (Présent à la conférence)
-------------- Supplément Ajout d'informations sur les outils d'analyse morphologique et d'analyse syntaxique japonais (CaboCha, JUMAN, KNP). Il semble que ceux-ci peuvent être utilisés pour convertir en "phrase japonaise -> expression logique de prédicat". -------------- Supplément Pour ceux qui utilisent le système de traitement du langage C / C ++, nous avons publié la méthode d'introduction et l'utilisation simple de Microsoft Visual Studio, MSYS / MinGW. Comme d'habitude, lorsque la visualisation de "Mandelbrot set" a été utilisée comme référence, le résultat était que VC était 16% plus rapide que GCC (MinGW64). (Les deux compilateurs optimisés avec l'option O2) → Programme source Ce programme crée une image sur un tableau et l'exporte en SVG. Pour être honnête, si la configuration des pixels n'est pas assez petite (environ 128x128), le SVG généré ne peut pas être affiché sur le navigateur Web, mais c'est aussi une comparaison de la vitesse d'écriture lors de l'écriture d'énormes données SVG dans un fichier. La sortie vers un fichier était plus rapide avec GCC (environ deux fois). -------------- Supplément Ajout de l'utilisation de base de mecab-python et PySwip. PySwip fonctionne enfin correctement. -------------- Supplément Ajout d'une description de la fonction qui libère la zone de stockage d'un objet pour GMP / MPFR. -------------- Supplément Ajout d'une introduction (introduction et méthode de démonstration) sur l'utilisation du programme de reconnaissance vocale Julius. Puisque la reconnaissance vocale est profonde, je pense que vous pouvez apprendre beaucoup en vous entraînant à utiliser Julus. Après avoir appris les bases du traitement vocal à l'école, je pense que c'est une bonne idée de s'entraîner à utiliser Julius. Cliquez ici pour un lien vers les exemples de données vocales pour la reconnaissance vocale cités dans le texte: snd01.wav snd02.wav -------------- Supplément Un petit ajout à l'explication de GMP. -------------- Supplément Ajout d'une description de l'utilisation de base de la bibliothèque de calcul numérique à précision arbitraire GMP et MPFR. Puisqu'il y a des étudiants qui effectuent des simulations de haute précision de systèmes dynamiques complexes, j'ai décrit comment les utiliser. L'arithmétique de haute précision peut être effectuée même avec un système de traitement mathématique, mais il y a des cas où il est préférable d'écrire en C / C ++ en raison de la quantité de calcul et de la vitesse de calcul, nous l'avons donc utilisé comme matériau à cette fin. -------------- Supplément Ajout d'informations sur l'utilisation d'Open JTalk. Nous avons publié un exemple de programme qui lit les phrases japonaises en lisant le fichier au format WAV créé avec PyAudio après avoir exécuté la commande Open JTalk avec le module de sous-processus. -------------- Supplément Ajout d'informations sur l'utilisation d'OpenSSL. Notes sur les outils et bibliothèques Il y a eu des critiques de la part des étudiants, et il a dit: "C'est dommage de faire de l'IA le titre même si nous n'avons pas encore créé de fonctions de type IA!" Le titre a donc été corrigé ...
écrit par Katsunori Nakamura
Recommended Posts