Wie funktioniert die removeSparseTerms in R arbeiten?
Ich bin mit dem removeSparseTerms-Methode in R, und es erforderlich, einen Schwellwert eingegeben werden. Ich habe auch gelesen, dass je höher der Wert, desto mehr wird die Anzahl der Begriffe, bleibt in der matrix zurückgegeben.
Wie funktioniert diese Methode funktioniert und was ist die Logik dahinter? Ich verstehe das Konzept der Kargheit aber hat diese Schwelle anzugeben, wie viele Dokumente sollte ein Begriff vorhanden sein, oder einige andere ratio, etc?
InformationsquelleAutor der Frage London guy | 2015-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Sinne der
sparse
argumentremoveSparseTerms()
sparsity bezieht sich auf die Schwelle des relative Dokument-Frequenz für einen Begriff, über die der Begriff entfernt wird. Relative Dokument-Frequenz bedeutet hier einen Anteil. Wie die Hilfe-Seite für den Befehl Staaten (obwohl nicht sehr klar), sparsity ist kleinerewie es Ansätze 1.0. (Beachten Sie, dass sparsity nicht nehmen nur die Werte 0 oder 1.0, nur Werte dazwischen.)Zum Beispiel, wenn Sie
sparse = 0.99
als argument zuremoveSparseTerms()
dann wird das entfernen nur unter Bedingungen, die mehr spärlich als 0,99.Die genaue interpretation für
sparse = 0.99
ist, dass für den Begriff " $j$, behalten Sie alle Begriffe, für die$df_j > N * (1 - 0.99)$, wobei $N$ ist die Anzahl der Dokumente-in diesem Fall wohl alle Begriffe beibehalten werden (siehe Beispiel unten).
In der Nähe das andere extrem, wenn
sparse = .01
dann nur die Begriffe angezeigt, die in (fast) jedes Dokument beibehalten werden. (Natürlich hängt dies von der Anzahl der Begriffe und die Anzahl der Dokumente, die in natürlicher Sprache, häufige Wörter wie "die" sind wahrscheinlich in jedem Dokument und daher nie "sparse".)Ein Beispiel für die sparsity Schwelle von 0.99, wo ein Begriff, der tritt bei den meisten (erstes Beispiel) weniger als 0,01 Dokumente, und (zweites Beispiel) nur über 0.01 Dokumente:
Hier sind ein paar weitere Beispiele mit tatsächlichen text und Bedingungen:
Im letzten Beispiel mit
sparse = 0.34
nur Begriffe auftreten in zwei Drittel der Dokumente wurden beibehalten.Einen alternativen Ansatz für das trimmen Begriffe aus der Dokument-term-Matrix basiert auf einem Dokument-Frequenz ist die text-Analyse-Paket quanteda. Die gleiche Funktionalität bezieht sich hier nicht auf sparsitysondern direkt auf die Dokument Frequenz der Bedingungen (wie in tf-idf).
Diese Verwendung scheint viel einfacher für mich.
InformationsquelleAutor der Antwort Ken Benoit
In der Funktion
removeSparseTerms()
ist das argument, sparse = x bedeutet:"entfernen Sie alle Ausdrücke, deren sparsity größer ist als der Schwellenwert (x)".
e.g:
removeSparseTerms(my_dtm, sparse = 0.90)
bedeutet entfernen Sie alle Bedingungen im Korpus, deren sparsity ist größer als 90%.Zum Beispiel, ein Begriff, der angezeigt wird, sagen Sie nur 4 mal in einem Korpus von sagen Größe 1000, wird die Häufigkeit des Auftretens von 0.004 =4/1000.
Dieser Begriff sparsity wird
(1000-4)/1000 = 1- 0.004 = 0.996 = 99.6%
.Also wenn sparsity Schwellenwert eingestellt ist, um sparse = 0.90, die diesen Begriff enthalten, werden entfernt sein sparsity (
0.996
) ist größer als die Obere Grenze sparsity (0.90
).Allerdings, wenn sparsity Schwellenwert eingestellt ist, um
sparse = 0.999
, die diesen Begriff nicht entfernt werden, da seine sparsity (0.996
) niedriger ist als die Obere Grenze sparsity (0.999
).InformationsquelleAutor der Antwort PatrickBeuseize
Einfach sein, wie die Häufigkeit eines Elements, Wenn Sie den Wert als 0 festlegen, wird es wieder all die Elemente, die in allen der text, wo auch immer, wenn Sie es als 1, wird es wieder alle das Element im text. Wenn ich wählen Sie 0.5, wird es lassen Sie mich, um nur die Texte, die erscheinen in 50% der Zeiten in das gesamte element. Dies erfolgt durch die Berechnung nach all diesen pro-Verarbeitung als
1- (Summe(no_off_times_of_the_individual_text_element)/Summe(no_off_total_text_elements)) <= Set_Value
InformationsquelleAutor der Antwort Sherl