Ich benutze SVM-Light (auf der Website http://svmlight.joachims.org/). Ich möchte Ihnen ein Problem stellen. Ich habe einen Satz "Er ist schlau und er ist ein guter Schüler". Dieser Satz ist ein positiver Satz. Wenn ich eine Liste von Wörtern aus diesem Satz erstelle, werde ich eine Liste mit dem Index jedes Wortes wie folgt haben: {1 - er, 2 - ist, 3 - schlau, 4 - und, 5 - a, 6 - gut, 7 - Schüler}. Dann schreibe ich Satz nach Index der Wörter wie folgt um: "1 2 3 4 1 2 5 6 7". Und der Wert jedes Wortes ist "1: 0,4 2: 0,2 3: 0,8 4: 0,3 1: 0,2 2: 0,4 5: 0,5 6: 0,7 7: 0,6" Entsprechend dem Format der Zugdatei muss der Index der Wörter durch bestellt werden steigende Indexzahl, so stelle ich wie folgt "1 1: 0,4 1: 0,2 2: 0,2 2: 0,4 3: 0,8 4: 0,3 5: 0,5 6: 0,7 7: 0,6" ein. Allerdings bekomme ich einen Fehler "Features müssen in aufsteigender Reihenfolge sein !!!" wenn ich svm_learn starte. Ich habe diesen Fehler bemerkt, weil mein Satz zwei "er" Wörter und zwei "is" Wörter hat. Während Ihrer Zugdatei erscheint jedes Merkmal nur einmal. Wie soll ich dieses Problem lösen? Erklärst du für mich? Ich danke Ihnen sehr.Wie erstellt man die Zugdatei für SVM Licht, wenn ein Wort mehrmals in einem Satz auftritt
Antwort
Sie können nicht mehrere Werte für dieselbe Funktion haben. Von dem, was Sie in Ihrer Frage geschrieben haben, denke ich, die Lösung für diesen Fall würde nur ignorieren, dass einige Wörter zweimal gesehen werden, da im Wesentlichen diese Wörter unterschiedliche Werte im Satz haben.
Sie können davon ausgehen, dass Sie so viele Funktionen haben wie viele Wörter in einem Satz. Das erste Merkmal ist das Gewicht des ersten Wortes im Satz, das zweite Merkmal ist das Gewicht des zweiten Wortes im Satz, das dritte ist das Gewicht des dritten Wortes im Satz und so weiter. Also für Ihr Beispiel haben Sie einen Feature-Vektor [1:0.4 2:0.2 3:0.8 4:0.3 5:0.2 6:0.4 7:0.5 8:0.7 9:0.6]
. Das Problem bei diesem Ansatz besteht darin, dass unterschiedliche Sätze unterschiedliche Längen haben. In diesem Fall wird SVMlight annehmen, dass jeder Satz die Länge des längsten hat, und der Rest der Werte sind einfach Nullen (das ist im Wesentlichen die Idee hinter dem Bereitstellen von Indizes für Merkmale in Ihrer Eingabe: im Falle von spärlichen Daten erlaubt dies nur zu erwähnen die Features, die Werte ungleich Null haben. Wenn der zweite Satz in Ihren Daten zufällig lautet: "Er ist nicht nur schlau, sondern auch ein guter Schüler", wird der Merkmalsvektor für den ersten-Satz folgendermaßen interpretiert: [1:0.4 2:0.2 3:0.8 4:0.3 5:0.2 6:0.4 7:0.5 8:0.7 9:0.6 10:0.0 11:0.0 12:0.0]
.
Eine andere Lösung wäre, ein "Wörterbuch" wie Sie zu erstellen und dann die Werte für dasselbe Wort zu kombinieren, wenn das Wort mehr als einmal in einem Satz gesehen wird. Dies kann durch den Max/Min-Wert, Mittelwert, Summe, Produkt usw. erfolgen. Die Art und Weise, wie Sie die Features kombinieren möchten, hängt von der Domäne der Anwendung ab. Wenn Sie sich beispielsweise für die Summe aller Werte für ein Wort entscheiden, lautet Ihr Merkmalsvektor für das Wörterbuch {1 - he, 2 - is, 3 - smart, 4 - and, 5 - a, 6 - good, 7 - student}
: 1:0.6 2:0.6 3:0.8 4:0.3 5:0.5 6:0.7 7:0.6
- 1. Dateiformat für die Klassifizierung mit SVM-Licht
- 2. Finden der ursprünglichen Positionen von Wörtern in einem Satz, wenn das Wort mehr als einmal auftritt
- 3. Ein Wort aus einem Satz mit Batch
- 4. In Perl, wie man die Zahl, die vor einem bestimmten Wort auftritt, erhalten?
- 5. erstes wiederholtes Wort in einem Satz
- 6. Finden Sie ein beliebiges Wort in einem Satz
- 7. Finde längstes Wort in einem Satz rekursiv
- 8. Wie zählt man die Anzahl der Wörter in einem Satz?
- 9. Wie man Satz Wort für Wort in einer separaten Zeile zeigt
- 10. Wie erstellt man ein Wörterbuch, dessen Name ein Wort aus einem anderen Array in Python ist?
- 11. Wie erhält man die n-te Zeichenkette in einem generischen Wort oder Satz mit Leerzeichen?
- 12. Wie alle Fälle von Wort-Präsentation in einem Satz JAVA
- 13. Wie ein Computer blinkt ein Licht
- 14. Druck, wie oft ein Wort in einem String vorkommt
- 15. Wie man swf stoppt, wenn ein Fehler auftritt
- 16. Wie erstellt man ein Verzeichnis, wenn nötig?
- 17. Wie erstellt man Dokumentfunktionen aus Wort-Vektoren?
- 18. Zählen Sie, wie oft ein Wort in einer Datei und E-Mail auftritt, wenn das Wort 5+ mal erscheint
- 19. Satz ohne Wort nach Sonderzeichen
- 20. Wie nach einem Wort in einem Satz suchen, die auch ein Teil eines großen Wortes in der gleichen Zeichenfolge ist?
- 21. Suche Synonyme für ein bestimmtes Wort erstellt ein WordNetError
- 22. Wie analysiert man ein Wort von einem Autovervollständigungsvorschlag in jQuery?
- 23. Python-Extrakt-Satz mit Wort
- 24. Wie erstellt man ein Backup für die Verbindungsdetails in sqldeveloper?
- 25. wie man android fackel licht stabil
- 26. Wie erstellt man einen Satz von Listenelementen in Python?
- 27. Einen Satz in mysql beginnend mit einem Wort auswählen und NICHT gefolgt von einem anderen Wort
- 28. Kann ein SVM inkrementell lernen?
- 29. Wie man zurückkehrt, wenn die Variable mehrmals geloopt wird
- 30. Wie trainieren SVM in Matlab für die Zeichenerkennung?