[PYTHON] Erstellen einer interaktiven Anwendung mithilfe eines Themenmodells

Ich möchte meine Augen mit Blue Ocean heilen, anstatt meine Augen mit Blue Light zu verbrennen.

2015 nähert sich dem Ende, aber wie geht es euch allen? Ich möchte gegen Ende des Jahres zur Natur zurückkehren, daher werde ich dieses Mal vorstellen, wie eine Anwendung erstellt wird, die mithilfe eines Themenmodells interaktive Reisevorschläge macht.

Dieser Artikel ist ein Schwesterartikel des zuvor veröffentlichten Artikels Erstellen einer Anwendung mit dem Themenmodell. Zu diesem Zeitpunkt holte die Erstellung der Anwendung nicht auf, und obwohl es sich um eine "Erstellung der Anwendung" handelte, wurde die Erstellung der Anwendung nicht abgeschlossen, sodass der Inhalt sie ergänzt. Ich werde dieses Mal nicht auf das Themenmodell selbst eingehen. Wenn Sie interessiert sind, lesen Sie bitte den obigen Artikel.

Was ist ein Themenmodell?

Ich werde die ausführliche Erklärung [hier] überlassen (http://tech-sketch.jp/2015/09/topic-model.html), aber das Themenmodell besteht darin, Dokumente nach Themen zu klassifizieren, wie der Name schon sagt. Es ist eine Methode von. Insbesondere hat das "Thema" hier das folgende Bild.

image

Dies ist eine Wortwolke, die aus einem Reiseblog erstellt wurde. Ein "Thema" besteht also aus Wörtern, und einige der Wörter sind häufig und andere nicht. Die Schätzung der Wahrscheinlichkeitsverteilung, die das "Erscheinungswort" und die "Erscheinungswahrscheinlichkeit" definiert, ist der Hauptfokus des Themenmodells. Sobald diese Wahrscheinlichkeitsverteilung bekannt ist, wird es möglich sein, Dokumente mit ähnlichen Verteilungen zu klassifizieren, und es wird auch möglich sein, den Grad der Relevanz zwischen Dokumenten aus dem Abstand zwischen Verteilungen abzuschätzen.

Anwendung auf interaktive Anwendungen

Themen können wie oben beschrieben durch Wahrscheinlichkeitsverteilungen dargestellt werden, so dass der Abstand zwischen Verteilungen berechnet werden kann (diesmal habe ich KL-Divergenz verwendet). Versuchen Sie anhand dieser Entfernung, einen Punkt für Thema A vorzuschlagen. Wenn die Antwort Nein lautet, schlagen Sie ein entferntes Thema vor (Thema B, das in der Abbildung am weitesten entfernt ist), und implementieren Sie es mit einer einfachen Richtlinie. Ich werde versuchen.

image

Implementierung einer interaktiven Anwendung

Die diesmal implementierte Anwendung ist hier.

Ich schlage ungefähr 3 Kandidaten aus dem gleichen Thema vor, die mit dem Pfeil unten gewechselt werden können. Wenn Ihnen etwas gefällt / das Bild anders ist, können Sie es mit der Schaltfläche Gut / Schlecht unten bewerten. Erhalten Sie Bewertungen und machen Sie Vorschläge für ähnliche / entfernte Themen.

image

Da es über eine Heroku-Schaltfläche verfügt, kann es in Ihrer Heroku-Umgebung bereitgestellt werden. Probieren Sie es mit dem Themenmodell aus, das ich erstellt habe! Das ist durchaus möglich. Als Daten wird die API von AB-ROAD verwendet, und diese Nutzungsregistrierung ist erforderlich.

enigma_abroad

Anwendungsimplementierung

Die Anwendungskonfiguration ist wie folgt.

image

In der Komposition habe ich auf folgende Punkte geachtet.

Schreiben Sie danach wie in der Anwendung den Testcode genau für das Modell des maschinellen Lernens und hängen Sie das Dokument mit dem iPython-Notizbuch für das Modell des maschinellen Lernens an.

Die Konstruktionsannahmen und die Überprüfung des diesmal erstellten Themenmodells können dem folgenden iPython-Notizbuch entnommen werden.

enigma_abroad/pola/machine/topic_model_evaluation.ipynb

Erstellen eines Themenmodells

Wenn Sie einen Vorschlag machen, ist es natürlich wichtig, ein Themenmodell zu erstellen, das das Gehirn der Anwendung darstellt. Diesmal wie im Schwesterartikel Erstellen einer Anwendung mit dem Auswahlmodell, [gensim]( Ich habe es mit https://radimrehurek.com/gensim/) erstellt (ich habe auch versucht, "pymc" zu verwenden, aber es wurde versiegelt, weil der Speicher durch Lernen verloren ging). Und leider war die Genauigkeit nicht so gut wie sie war ... aber ich werde hier weitermachen.

Wenn es darum geht, maschinelles Lernen in einer Anwendung tatsächlich zu verwenden, ist es außerdem unwahrscheinlich, dass "Genauigkeit 99% oder!" Dies ist häufig der Fall.

Um dies zu überwinden, sind eine stetige Datenerfassung und eine stetige Datenvorverarbeitung erforderlich. Ah ... als ich darüber sprach, was passiert ist, habe ich versucht, mit maschinellem Lernen etwas Cooles zu machen, aber bevor ich es wusste, habe ich akribisch Worte gesetzt, um sie aus dem Korpus auszuschließen ... ・. Inhaltsbasierte Empfehlungen wie das Themenmodell haben den Vorteil, dass sie Empfehlungen abgeben können, auch wenn die Bewertungsdaten der Benutzer unwiderstehlich sind, im Vergleich zur Co-Filterung, die häufig für Empfehlungen verwendet wird. Es funktioniert nicht gut (es gibt eine Reihe von Dokumenten, aber ich habe den Eindruck, dass das Volumen eines einzelnen Dokuments in Ordnung sein muss).

Erwägung

Obwohl es zu einer Anwendung gemacht wurde, wurde das wesentliche Themenmodell nicht gut erstellt. Das letzte Mal habe ich mich mit verschiedenen Daten aus dem Friseursalon und diesmal aus dem Reiseplan befasst, aber alle haben traurige Ergebnisse erzielt, dass die Themen nicht gut klassifiziert werden konnten.

Ich denke, die Ursache dafür ist das Datenproblem.

Kurz gesagt, ich halte es für wünschenswert, es in einer Situation anzuwenden, in der es verschiedene Variationen von Dokumenten gibt und jedes ziemlich lang ist. Wenn Sie detailliertere Klassifizierungen innerhalb derselben Kategorie vornehmen möchten, müssen Sie meiner Meinung nach einige Vorkenntnisse aufbauen.

Ich denke, es gibt noch viele andere Ideen. Bitte versuchen Sie, Ihr eigenes Modell zu erstellen und eine Anwendung zu erstellen, die Sie zu Blue Ocean führt.

image Garrett Gill

Recommended Posts

Erstellen einer interaktiven Anwendung mithilfe eines Themenmodells
Erstellen einer Webanwendung mit Flask ②
Erstellen einer Webanwendung mit Flask ①
Erstellen eines Lernmodells mit MNIST
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Erstellen einer Datenanalyseanwendung mit Streamlit
Themenmodelle bearbeiten ~ Interaktives Themenmodell ~
Erstellen einer Web-App für die Sprachtranskription
Erstellen einer einfachen Tabelle mit Stettytable
Erstellen Sie mit turicreate eine API, die Daten aus einem Modell zurückgibt
Entwicklung einer WEB-Anwendung mit Django [Modelldefinition]
Erstellen Sie eine Anwendung mit der Spotify-API
Holen Sie sich ein Referenzmodell mit Django Serializer
Erstellen einer virtuellen Umgebung in einer Anaconda-Umgebung
Erstellt ein Bildunterscheidungsmodell (cifar10) unter Verwendung eines Faltungs-Neuronalen Netzwerks
Erstellen eines Positionsschätzungsmodells für den Intelligenzwettbewerb menschlicher Wölfe mithilfe von maschinellem Lernen
[Python] Implementierung von Clustering mit einem gemischten Gaußschen Modell
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Erstellen eines seq2seq-Modells mithilfe der Funktions-API-Übersicht von keras
Erstellen Sie ein Diagramm mit der Plot-Schaltfläche und dem Schieberegler
Ich habe versucht, ein Beispielmodell von Pytorch mit TorchServe zu hosten
So stellen Sie eine Go-Anwendung auf einer ECS-Instanz bereit
Erstellen eines seq2seq-Modells unter Verwendung der funktionalen API-Inferenz von keras
Erstellen Sie mit tkinter eine Anwendung mit cx_freeze zu einer ausführbaren Datei