Einführung in Aktivitäten mit Python

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?

Beilage / Bericht

[Bericht] Verständnis der natürlichen Sprache (NLU) (25.12.2018)

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.

[Bericht] Groß angelegte Berechnung (27.02.2018)

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)

[Bericht] Formel ⇔ Japanisch (27.02.2018)

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)

[Über python_ai_note.pdf]

-------------- 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

Einführung in Aktivitäten mit Python
Einführung von Python
Einführung des Python-Zeichenpakets Pygal
Aufzeichnung der Python-Einführung für Neulinge
Allgemeine Relativitätstheorie in Python: Einführung
Einführung von PyGMT
Einfache Einführung der Spracherkennung mit Python
Python-Grundlagen ①
Grundlagen von Python ①
Kopie von Python
Einfache Einführung in die Python3-Serie und OpenCV3
[Einführung in Data Scientist] Grundlagen von Python ♬
[Einführung in die Udemy Python3 + -Anwendung] 26. Kopie des Wörterbuchs
[Einführung in die Udemy Python3 + -Anwendung] 19. Kopie der Liste
Einführung der Python Imaging Library (PIL) mit HomeBrew
Python-Vorlesungsmaterial der Universität Kyoto: Einführung in Spalten
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
[Python] Operation der Aufzählung
Liste der Python-Module
Einführung von trac (Windows + trac 1.0.10)
Vereinheitlichung der Python-Umgebung
Kopie der Python-Einstellungen
Grundlagen der Python-Scraping-Grundlagen
[Python] Verhalten von Argmax
Verwendung von Python-Einheimischen ()
Einführung des Virtualenv-Wrappers
der Zen von Python
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
Installieren von Python 3.3 rc1
Python-Grundkurs (Einführung)
# 4 [Python] Grundlagen der Funktionen
Grundkenntnisse in Python
Nüchterne Trivia von Python3
Zusammenfassung der Python-Argumente
Python-Anfängerhandbuch (Einführung)
Grundlagen von Python: Ausgabe
Installation von matplotlib (Python 3.3.2)
Anwendung von Python 3 vars
Verschiedene Verarbeitung von Python
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Einführung in Udemy Python3 + Application] 53. Wörterbuch der Schlüsselwortargumente
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
[Einführung in Udemy Python3 + Application] 52. Tapple von Positionsargumenten
Erläuterung zum NoReverseMatch-Fehler in "Python Django Super Introduction"
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Python] Richtige Verwendung der Karte
Auf dem Weg zum Ruhestand von Python2
Einführung in Python Django (2) Win
Zusammenfassung der Python-Dateivorgänge
Zusammenfassung der Python3-Listenoperationen
Python - Schneller Start der Protokollierung
Empfehlung der binpacking Bibliothek von Python
[Einführung in cx_Oracle] Übersicht über cx_Oracle
Automatisches Update des Python-Moduls
Python --Überprüfen Sie den Wertetyp
[Python] Der Ursprung des Namens der Python-Funktion