Ich habe einige neuronale Netze (MLP (vollständig verbunden), Elman (wiederkehrend)) für verschiedene Aufgaben aufgebaut, z. B. zum Spielen von Pong, zum Klassifizieren handgeschriebener Ziffern und anderer Dinge ...
Zusätzlich habe ich versucht, einige erste Faltungs-Neuronale Netze aufzubauen, z. B. zum Klassifizieren von mehrstelligen handschriftlichen Notizen, aber ich bin völlig neu darin, Texte zu analysieren und zu gruppieren, z. RGB oder Graustufen usw. Es gibt viele Voraussetzungsfunktionen.
Für Text Mining, zum Beispiel für Nachrichtenartikel, haben Sie eine ständig wechselnde Eingabegröße (verschiedene Wörter, verschiedene Sätze, verschiedene Textlängen, ...).
Wie kann ein modernes Text-Mining-Tool implementiert werden, das künstliche Intelligenz verwendet, vorzugsweise neuronale Netze / SOMs?
Leider konnte ich keine einfachen Tutorials zum Starten finden. Komplexe wissenschaftliche Arbeiten sind schwer zu lesen und meiner Meinung nach nicht die beste Möglichkeit, ein Thema zu erlernen. Ich habe bereits einige Artikel über MLPs, Dropout-Techniken, Faltungs-Neuronale Netze und so weiter gelesen, aber ich konnte kein grundlegendes über Text-Mining finden - alles, was ich fand, war viel zu hoch für meine sehr eingeschränkten Text-Mining-Fähigkeiten.
Abgesehen von LDA können Sie Latent Semantic Analysis mit K-Means verwenden . Es handelt sich nicht um neuronale Netze, sondern um "klassisches" Clustering, aber es funktioniert ganz gut.
Beispiel in sklearn (von hier genommen ):
Jetzt sind Cluster-Zuweisungsbezeichnungen in verfügbar
km.labels_
Dies sind beispielsweise die Themen, die aus 20 Newsgroups mit LSA extrahiert wurden:
Sie können auch die nicht negative Matrixfaktorisierung anwenden , die als Clustering interpretiert werden kann. Alles, was Sie tun müssen, ist, die größte Komponente jedes Dokuments im transformierten Bereich zu übernehmen - und sie als Clusterzuweisung zu verwenden.
In sklearn:
quelle
LSA + KMeans funktioniert gut, aber Sie müssen die Anzahl der erwarteten Cluster eingeben. Außerdem ist der Silhouettenkoeffizient der gefundenen Cluster normalerweise niedrig.
Eine andere Methode, mit der ich bessere Ergebnisse erzielen kann, ist die Verwendung des DBSCAN- Beispiels . Es sucht nach Zentren mit hoher Dichte und dehnt sich aus, um Cluster zu bilden. Bei dieser Methode wird automatisch die optimale Anzahl von Clustern ermittelt.
Ich fand es auch sehr wichtig, einen Stemmer wie zum Beispiel Snowball zu verwenden, der die Fehler aufgrund von Tippfehlern reduziert. Eine gute Stoppwortliste ist auch sehr wichtig, wenn Sie sicher sein möchten, dass Sie einige Cluster entfernen, die keine Bedeutung haben, da häufig gebräuchliche Wörter ohne signifikante Bedeutung vorkommen. Wenn Sie Ihre Zählmatrix erstellen, ist auch die Normalisierung wichtig. Sie ermöglicht es, einem Wort mit einem geringen Vorkommen im Datensatz, jedoch mit einem hohen Vorkommen in bestimmten Stichproben, eine Gewichtung hinzuzufügen. Diese Wörter sind bedeutungsvoll und Sie möchten sie nicht verfehlen. Es verringert auch die Gewichtung von Wörtern mit hohem Vorkommen in allen bestimmten Samples (in der Nähe des Stoppworts, aber für Wörter, die eine kleine Bedeutung haben können). Als letztes ist mir aufgefallen, dass es nicht wichtig ist, die Top-10-Wörter Ihrer Cluster auszudrucken, sondern eine erweiterte Auswahl. In der Regel wird die Qualität und Relevanz der Keywords in Bezug auf das Label, das Sie dem Cluster geben würden, nach diesen Top-10-20-Wörtern drastisch verringert. Eine erweiterte Ansicht der wichtigsten Keywords hilft Ihnen zu analysieren, ob Ihr Cluster wirklich relevant oder stark durch Lärm belastet ist.
quelle
Meine Lieblingsmethode ist LDA ; Sie können hier nach einem Tutorial mit Python-Paketen suchen .
Sie können auch viel einfachere Methoden wie diese betrachten .
quelle