2016-07-01 9 views
2

Kann mir jemand sagen, was bedeutet für den unteren Code und die Ausgänge? Ich habe Corpus schaffen hierText Mining Sparse/Non-spärliche Bedeutung

frequencies = DocumentTermMatrix(corpus) 
frequencies 

Ausgang ist

<<DocumentTermMatrix (documents: 299, terms: 1297)>> 
Non-/sparse entries: 6242/381561 
Sparsity   : 98% 
Maximal term length: 19 
Weighting   : term frequency (tf) 

Und Code für spärlich ist hier.

sparse = removeSparseTerms(frequencies, 0.97) 
sparse 

Ausgang ist

> sparse 
<<DocumentTermMatrix (documents: 299, terms: 166)>> 
Non-/sparse entries: 3773/45861 
Sparsity   : 92% 
Maximal term length: 10 
Weighting   : term frequency (tf) 

Was hier geschieht, Was bedeutet Non-/spärliche Einträge und Sparsity bedeuten? Kann mir jemand helfen, diese zu verstehen?

Vielen Dank.

Antwort

5

Durch diesen Code, den Sie ein Dokument Begriff Matrix des Korpus geschaffen haben

frequencies = DocumentTermMatrix(corpus) 

Document Begriff Matrix (DTM) listet alle Vorkommen der Wörter im Korpus, durch das Dokument. Im DTM werden die Dokumente in Zeilen und die Begriffe (oder Wörter) in Spalten dargestellt. Wenn ein Wort in einem bestimmten Dokument vorkommt, ist der Matrixeintrag für diese Zeile und Spalte 1, sonst ist es 0 (mehrere Vorkommen innerhalb eines Dokuments werden aufgezeichnet - das heißt, wenn ein Wort zweimal in einem Dokument vorkommt) im entsprechenden Matrixeintrag als "2" aufgezeichnet).

Als Beispiel betrachten Korpus von zwei Dokumenten.

Doc1: Bananen sind gut

Doc2: Bananen wie

sind
   banana   are  yellow  good 
Doc1   1    1   1   0 

Doc2   1    1   0   1 

Der Ausgang

<<DocumentTermMatrix (documents: 299, terms: 1297)>> 
Non-/sparse entries: 6242/381561 
Sparsity   : 98% 
Maximal term length: 19 
Weighting   : term frequency (tf) 

Der Ausgang gelb

DTM für die oben Korpus bedeutet aussehen würde, dass Die DTM hat 299 Einträge mit über 1297 Begriffen, die mindestens erschienen sind Einmal.

sparse = removeSparseTerms(frequencies, 0.97) 

Jetzt entfernen Sie die Begriffe, die in Ihren Daten nicht allzu oft vorkommen. Wir entfernen jedes Element, das nicht in mindestens 3% der Einträge (oder Dokumente) erscheint. In Bezug auf den oben erstellten DTM entfernen wir grundsätzlich diejenigen Spalten, deren Einträge 1 in der geringsten Anzahl von Dokumenten sind.

Nun, wenn Sie die Ausgabe sehen

> sparse 
<<DocumentTermMatrix (documents: 299, terms: 166)>> 
Non-/sparse entries: 3773/45861 
Sparsity   : 92% 
Maximal term length: 10 
Weighting   : term frequency (tf) 

Die Anzahl der Einträge (Dokumente) sind immer noch die gleichen d.h 299 aber Anzahl von Begriffen Begriffe, die mindestens einmal erschienen sind, hat sich auf 166 geändert.

+0

Danke Ravi, das hilft – subro

+0

Wenn es hilft dann wäre ein upvote nett – Ravi

3

Non-/spärlich Einträge: 6242/381561
Sparsity: 98%

Dies liest sich wie 381561 Zellen in frequencies sind 0, 6242 haben Nicht-Null-Werte. 98% aller Zellen Null sind diese Begriffe in

frequencies

removeSparseTerms(frequencies, 0.97) entfernt (die 381561/(381561+6242) ist), für die zumindest 97% aller Zellen Null sind, das heißt, die im Korpus ziemlich ungewöhnlich sind. Als Ergebnis erhalten Sie eine neue DocumentTermMatrix mit 166 Bedingungen und nur 45861 Null Einträge.

Sparsity ist ein häufiger Begriff. Im Text Mining erhalten Sie oft sehr große Matrizen mit vielen Zellen, die Null sind. Es könnte klug sein, nicht alle Zellen einzeln im Speicher zu speichern, sondern nur die wenigen Nicht-Null-Einträge und ihre Positionen zu speichern, um Speicher zu sparen. Sie können mehr darüber lesen, indem Sie nach Sparse-Matrizen suchen.

+0

Das hilft, danke. Eine Frage hier, Auf die Aussage "für die mindestens 97% aller Zellen Null sind", Wie diese 97% zu bestimmen? Auch, wie man die Ausdrücke mit 97% der Zellen kennt, sind null ?? @lukeA – subro