Comment fonctionne removeSparseTerms dans R?
Je suis en utilisant le removeSparseTerms méthode dans la R et il a fallu une valeur de seuil à l'entrée. J'ai lu aussi que plus la valeur est élevée, plus la valeur sera le nombre de termes retenus dans le retour de la matrice.
Comment cette méthode de travail et quelle est la logique derrière cela? Je comprends le concept de rareté, mais ne ce seuil indiquer le nombre de documents devraient à terme être présents, ou tout autre ratio, etc?
source d'informationauteur London guy
Vous devez vous connecter pour publier un commentaire.
Dans le sens de la
sparse
argumentremoveSparseTerms()
la rareté se réfère au seuil de document relatif fréquence pour une durée, au-dessus de laquelle le terme sera supprimé. Document relatif fréquence signifie ici une proportion. Que la page d'aide de la commande unis (bien que pas très clairement), la densité est petits à l'approche de 1.0. (Notez que la rareté ne peut prendre que les valeurs 0 ou 1.0, seules les valeurs entre les deux.)Par exemple, si vous définissez
sparse = 0.99
comme argument deremoveSparseTerms()
alors ce sera de ne supprimer que les termes qui sont plus éparses que de 0,99.L'interprétation exacte de
sparse = 0.99
est que pour $j$, vous pourrez conserver tous les termes pour lesquels$df_j > N * (1 - 0.99)$, où $N$ est le nombre de documents -- dans ce cas probablement toutes les conditions seront retenus (voir exemple ci-dessous).
Près de l'autre extrême, si
sparse = .01
alors que des termes qui apparaissent dans (presque) chaque document doit être conservé. (Bien sûr, cela dépend du nombre de mandats et le nombre de documents, et dans le langage naturel, des mots communs comme "le" sont susceptibles de se produire dans chaque document, et donc de ne jamais être "sparse".)Un exemple de la densité seuil de 0,99, un terme qui se produit à la plupart (premier exemple) moins de 0,01 documents, et (deuxième exemple) juste au-dessus de 0,01 documents:
Voici quelques autres exemples de texte et modalités:
Dans le dernier exemple en date avec
sparse = 0.34
seuls les termes survenant dans les deux-tiers de ces documents ont été conservés.Une approche alternative pour la coupe d'termes du document-terme des matrices basé sur un document de la fréquence est le analyse de texte paquet quanteda. La même fonctionnalité ici ne se réfère pas à rareté mais plutôt directement à la document de fréquence de termes (comme dans tf-idf).
Cette utilisation semble beaucoup plus simple pour moi.
Dans la fonction
removeSparseTerms()
l'argument sparse = x signifie:"supprimer tous les termes dont la densité est supérieure au seuil (x)".
e.g:
removeSparseTerms(my_dtm, sparse = 0.90)
signifie supprimer tous les termes dans le corpus dont la densité est supérieure à 90%.Par exemple, un terme qui apparaît juste dire 4 fois dans un corpus de taille 1000, ont une fréquence d'apparition de 0,004 =4/1000.
Ce terme de densité sera
(1000-4)/1000 = 1- 0.004 = 0.996 = 99.6%
.Par conséquent, si la densité seuil est fixé à sparse = 0.90, ce terme sera retiré de sa rareté (
0.996
) est supérieure à la limite supérieure de faible densité (0.90
).Toutefois, si la densité seuil est fixé à
sparse = 0.999
, ce terme ne sera pas supprimé comme sa rareté (0.996
) est inférieure à la limite supérieure de faible densité (0.999
).Simple son comme la fréquence d'un élément, Si vous définissez la valeur 0, il sera de retour tous les éléments qui apparaissent dans le texte, où si vous le définissez comme 1, ce sera le retour de tous les articles dans le texte. Si je choisis de 0,5 il me permettra de n'afficher que les textes qui apparaissent dans 50% du temps dans l'ensemble de l'élément. Ceci est fait par le calcul, après toutes ces per-traitement
1- (somme(no_off_times_of_the_individual_text_element)/somme(no_off_total_text_elements)) <= Set_Value