Selon la documentation de la removeSparseTerms
fonction du tm
package, voici ce que la rareté implique:
A term-document matrix where those terms from x are removed which have at least a sparse percentage of empty (i.e., terms occurring 0 times in a document) elements. I.e., the resulting matrix contains only terms with a sparse factor of less than sparse.
Donc, est-ce une interprétation correcte de ceci pour dire que si sparse
est égal à .99, alors nous supprimons les termes qui n'apparaissent que dans au plus 1% des données?
r
text-mining
natural-language
zthomas.nc
la source
la source
Réponses:
Oui , bien que votre confusion soit compréhensible ici, car le terme «parcimonie» est difficile à définir clairement dans ce contexte.
Au sens de l'
sparse
argument deremoveSparseTerms()
, la rareté fait référence au seuil de fréquence relative du document pour un terme, au - dessus duquel le terme sera supprimé. La fréquence relative des documents signifie ici une proportion. Comme l'indique la page d'aide de la commande (mais pas très clairement), la rareté est plus petite à l'approche de 1.0. (Notez que la rareté ne peut pas prendre des valeurs de 0 ou 1.0, seulement des valeurs intermédiaires.)Votre interprétation est donc correcte en ce sens qu'ellej dfj>N∗(1−0.99) N
sparse = 0.99
ne supprimera que les termes plus clairsemés que 0.99. L'interprétation exacte desparse = 0.99
est que pour le terme , vous conserverez tous les termes pour lesquels , où est le nombre de documents - dans ce cas, probablement tous les termes seront conservés (voir l'exemple ci-dessous) .Près de l'autre extrême, si
sparse = .01
, alors seuls les termes qui apparaissent dans (presque) chaque document seront conservés. (Bien sûr, cela dépend du nombre de termes et du nombre de documents, et dans le langage naturel, des mots communs comme "le" sont susceptibles de se produire dans chaque document et ne sont donc jamais "clairsemés".)Un exemple du seuil de rareté de 0,99, où un terme qui apparaît au maximum dans (premier exemple) moins de 0,01 documents, et (deuxième exemple) un peu plus de 0,01 documents:
Voici quelques exemples supplémentaires avec du texte et des termes réels:
Dans le dernier exemple avec
sparse = 0.34
, seuls les termes figurant dans les deux tiers des documents ont été conservés.Une approche alternative pour rogner des termes à partir de matrices de termes de document en fonction d'une fréquence de document est le package d'analyse de texte quanteda . La même fonctionnalité ne fait pas référence ici à la rareté mais plutôt directement à la fréquence des termes du document (comme dans tf-idf ).
Cette utilisation me semble beaucoup plus simple.
la source