Ich unterrichte Programmieren in der Schule. In meinem Seminar arbeite ich mit Python an AI-bezogenen Themen (künstliche Intelligenz). ------------------- ・ Hinweise zu Tools und Bibliotheken (PDF-Format 40 Seiten: 502 KB) Aktualisiert am 29. September 2018 Erwähnte Werkzeuge: MeCab, CaboCha, JUMAN, KNP, Open JTalk, Julius, OpenSSL Referenzierte Bibliotheken: GMP, MPFR Erwähnte Verarbeitungsumgebung: Visual Studio, MSYS / MinGW Erwähnte Module: Mecab-Python, PySwip ------------------- ・ Prologtext Wir planen, es zu einer Back-End-Inferenz-Engine für Python-Programme zu machen. ------------------- Der Text zum Erlernen von Python basiert darauf. → Ich habe einen Python-Text erstellt (2017/07/11) Wir arbeiten an der Implementierung einer "Dialogfunktion, mit der Japanisch richtig verwendet werden kann". Zunächst bereite ich mich auf die Verwendung von MeCab und Open JTalk aus Python vor. Das nächste Ziel ist die Realisierung einer interaktiven Funktion, mit der Sätze in Prädikatenlogikformeln erster Ordnung (FOL) umgewandelt und "aussagekräftiges" Japanisch ausgetauscht werden können. (Der Typ, der vor und nach dem Dialog eine ordnungsgemäße Verbindung hat) Daher möchte ich eine Verknüpfung mit Prolog herstellen, daher benötige ich eine Funktion, um die SWI-Prolog-Funktion von Python aus aufzurufen. Das PySwip-Modul funktioniert jedoch nicht gut und es scheint schneller zu sein, die Kooperationsfunktion selbst zu erstellen ... Die Aktivitätshaltung meines Seminars ist übrigens "kognitive Architektur" und "AGI". Heutzutage scheint es eine Tendenz zu geben, dass "KI" "tiefes neuronales Netzwerk" bedeutet, aber in unserem Seminar steht die Behandlung von tiefem NN noch bevor. Es scheint, dass die Stimme des "Zeitfehlers" fliegen wird, aber überraschenderweise ist der einfache Teil wichtig. Unter Python gibt es wunderbare Module wie Datenanalyse und mathematische Verarbeitung. Sie können auch Verarbeitungs- und Inferenz-Engines in natürlicher Sprache verwenden. Warum wollen wir nicht alle "japanische künstliche Allzweckintelligenz" realisieren?
In der diesjährigen Abschlussforschung arbeiten Studenten am Thema des Verständnisses der natürlichen Sprache (NLU). Ich habe [Programmmodul und Dokument veröffentlichen] erstellt (http://www.k-techlabo.org/blog2/?page_id=1222). Anwesend auf der 81. Nationalen Tagung der Information Processing Society.
Dies ist eines der Ergebnisse der diesjährigen Abschlussforschung und ein vergrößerter Film des Mandelbrot-Sets. Auf YouTube hochgeladen Es ist ein Film, der bis zu 10 ^ 260 Mal erweitert wird und aus 8.855 Bildern besteht. Das Generieren eines Frames dauert ungefähr 3 Minuten. Wenn Sie also einen Film auf einem Computer erstellen, ist dies ein "kontinuierlicher Betrieb für 18 Tage". Wenn Sie jedoch Jobs auf vielen Computern teilen, verteilen und integrieren Es war in ca. 6 Stunden abgeschlossen. Ich habe keine neue Technologie verwendet, aber mit Schülern ein System zum Verteilen und Ausführen von in C ++ in Python geschriebenen Frame-Generierungsprogrammen erstellt. Kurz gesagt, RJE (Remote Job Entry) für Grid Computing wurde in Python improvisiert. Ich habe es mit 3 Studenten der Freien Künste + mir selbst gemacht. (Anwesend auf der Konferenz)
Dies ist auch das Ergebnis der diesjährigen Abschlussforschung. Wir streben ein System an, das mathematische Probleme auf Japanisch löst, aber dieses Mal implementieren wir eine Funktion, die "mathematische Formeln auf Japanisch korrekt liest". Die mathematische Verarbeitungs-Engine ist Pythons Sympy, die faire Kopie ist TeX und die Lesung ist Open JTalk. Der nächste Schritt besteht darin, eine Funktion zu entwickeln, die antwortet, wenn Sie die Anfrage auf Japanisch übermitteln. Führen Sie jedoch nach der Eingabe von Japanisch eine morphologische Analyse (mit MeCab) durch, machen Sie sie zu einem logischen Prädikatenausdruck und übermitteln Sie sie an Prolog. Ich mache es. Es ist gut, dass Python alles verbinden kann. Es wird Spaß machen. ● Formel 01 vorlesen: Einfache Addition ● Formel 02 vorlesen: Unbestimmte Integration ● Lesen Sie die Formel 03: Summe vor ● Formel 04 vorlesen: komplizierter Fall ● Leseformeln 05: Japanische morphologische Analyse Ich habe es mit einem Studenten der Freien Künste + mir selbst gemacht. (Anwesend auf der Konferenz)
-------------- Nachtrag Informationen zu japanischen Werkzeugen für morphologische Analyse und Syntaxanalyse (CaboCha, JUMAN, KNP) hinzugefügt. Es scheint, dass diese verwendet werden können, um in "japanischen Satz-> Prädikatenlogikausdruck" umzuwandeln. -------------- Nachtrag Für diejenigen, die das C / C ++ - Sprachverarbeitungssystem verwenden, haben wir die Installationsmethode und die einfache Verwendung von Microsoft Visual Studio, MSYS / MinGW, veröffentlicht. Wenn die Visualisierung des "Mandelbrot-Sets" als Benchmark verwendet wurde, war das Ergebnis wie üblich, dass VC 16% schneller war als GCC (MinGW64). (Beide Compiler mit O2-Option optimiert) → Quellprogramm Dieses Programm erstellt ein Bild in einem Array und exportiert es in SVG. Um ehrlich zu sein, wenn die Pixelkonfiguration nicht klein genug ist (ca. 128 x 128), kann das generierte SVG nicht im Webbrowser angezeigt werden, sondern ist auch ein Vergleich der Schreibgeschwindigkeit beim Schreiben großer SVG-Daten in eine Datei. Die Ausgabe in eine Datei war mit GCC schneller (ungefähr doppelt so viel). -------------- Nachtrag Die grundlegende Verwendung von Mecab-Python und PySwip wurde hinzugefügt. PySwip funktioniert endlich einwandfrei. -------------- Nachtrag Es wurde eine Beschreibung der Funktion hinzugefügt, die den Speicherbereich eines Objekts für GMP / MPFR freigibt. -------------- Nachtrag Es wurde eine Einführung (Einführungs- und Demonstrationsmethode) in die Verwendung des Spracherkennungsprogramms Julius hinzugefügt. Da die Spracherkennung tief ist, können Sie durch das Erlernen von Julus viel lernen. Nachdem ich in der Schule die Grundlagen der Sprachverarbeitung gelernt habe, halte ich es für eine gute Idee, Julius zu üben. Klicken Sie hier, um einen Link zu den im Text angegebenen Beispiel-Sprachdaten für die Spracherkennung zu erhalten: snd01.wav snd02.wav -------------- Nachtrag Eine kleine Ergänzung zur Erklärung von GMP. -------------- Nachtrag Es wurde eine Beschreibung der grundlegenden Verwendung der numerischen Berechnungsbibliothek GMP und MPFR mit beliebiger Genauigkeit hinzugefügt. Da es Studenten gibt, die hochpräzise Simulationen komplexer dynamischer Systeme durchführen, habe ich deren Verwendung beschrieben. Hochpräzise Arithmetik kann auch mit einem mathematischen Verarbeitungssystem ausgeführt werden, aber es gibt Fälle, in denen es aufgrund des Rechenaufwands und der Berechnungsgeschwindigkeit besser ist, in C / C ++ zu schreiben. Deshalb habe ich sie als Material dafür verwendet. -------------- Nachtrag Informationen zur Verwendung von Open JTalk wurden hinzugefügt. Wir haben ein Beispielprogramm veröffentlicht, das japanische Sätze vorliest, indem die erstellte Datei im WAV-Format mit PyAudio abgespielt wird, nachdem der Befehl Open JTalk mit dem Unterprozessmodul ausgeführt wurde. -------------- Nachtrag Informationen zur Verwendung von OpenSSL wurden hinzugefügt. Hinweise zu Tools und Bibliotheken Es gab Kritik von den Studenten und er sagte: "Es ist eine Schande, AI zum Titel zu machen, obwohl wir noch keine AI-ähnlichen Funktionen gemacht haben!" Also wurde der Titel korrigiert ...
geschrieben von Katsunori Nakamura
Recommended Posts