2016-05-05 5 views
2

Ich versuche, einige Textanalyse zu tun, um festzustellen, ob eine bestimmte Zeichenfolge ... über Politik reden ist. Ich denke, ich könnte ein neuronales Netzwerk erstellen, wo die Eingabe entweder eine Zeichenfolge oder eine Liste von Wörtern ist (die Reihenfolge ist wichtig?) Und die Ausgabe ist, ob die Zeichenfolge über Politik ist.Verwenden Sie brain.js neuronales Netzwerk, um Textanalyse zu tun

Allerdings nimmt die brain.js-Bibliothek nur Eingaben von einer Zahl zwischen 0 und 1 oder ein Array von Zahlen zwischen 0 und 1. Wie kann ich meine Daten so erzwingen, dass ich die Aufgabe erfüllen kann?

Antwort

0

Sie müssen sich mit dem Modell zu entwickeln, um Ihre Daten auf eine Liste von [input, expected_output] Tupeln zu konvertieren, wo input ist eine Liste von Zahlen zwischen 0 und 1, die die angegebenen Wörter darstellen, und output ist eine Zahl zwischen 0 und 1 darstellt, wie Schließen Sie den Satz zu Ihrer objektiven Analyse (politisch sein). Zum Beispiel für den Satz "Die schnelle braune Katze sprang über den faulen Hund" möchten Sie vielleicht eine Punktzahl von Null geben. Ein Satz wie "Präsident schüttelt Korruptionsskandal" ab, Sie könnten eine Punktzahl sehr nahe an einem geben.

Wie Sie sehen können, besteht Ihre größte Herausforderung darin, die Daten zu erhalten und zu säubern. Das Konvertieren in das Trainingsformat ist einfach. Sie können einfach Wörter in Zahlen zwischen 0 und 1 hashen und sicherstellen, dass Sie unterschiedliche Umhüllungen und Interpunktionszeichen verwenden, und Sie möchten vielleicht Wörter nachschlagen, um die besten Ergebnisse zu erzielen.

Noch eine Sache, Sie können einen Begriff Relevanz-Algorithmus verwenden, um die Wichtigkeit von Wörtern in Ihrem Trainingsdatensatz zu ordnen, so dass Sie nur die oberen k relevanten Wörter in einem Satz auswählen können, da Sie einheitliche Datengröße für jedes benötigen Satz.

+0

Ich denke nicht, dass dies funktionieren würde, da die Zahl zwischen 0 und 1 kontinuierlich sein soll. Das bedeutet, dass "fox" zu 0.492 hashen könnte und "president" könnte zu 0.493 hashen und zum neuronalen Netz sind diese Eingaben wirklich ähnlich, aber in Wirklichkeit sind sie nicht. Ich untersuche jetzt NLP. –

+0

@arasmussen ist es egal, ob die Hashes für verschiedene Wörter in der Nähe sind, solange sie unterschiedlich sind. Das NN braucht nur unterschiedliche Zahlen für verschiedene Wörter zu erhalten, dann macht es die Assoziation für sich. Ihr einziges Problem ist hier, wenn "fox" und "president" irgendwie auf genau denselben Wert hashen, aber Sie können das umgehen, wenn Sie eine gute Hash-Funktion wählen. – yelsayed

+0

Ich glaube nicht, dass das stimmt. Hast du eine Quelle? –

0

Also scheinbar Text nicht sehr gut zu NN-Eingabe zwingen.

Ein Naive Bayes Classifier sieht genau so aus, wie ich es möchte.

Verwandte Themen