juba / rainette

R implementation of the Reinert text clustering method
https://juba.github.io/rainette/
53 stars 7 forks source link

Trois classes vides lors de l'utilisation de rainette #36

Open romane-lry opened 3 months ago

romane-lry commented 3 months ago

Bonjour @juba,

Merci pour ce package, j'essaie de l'utiliser sur un corpus de 1160 verbatims. Je n'obtiens cependant que deux classes dont une qui contient 77% du corpus.

Je joins mon code (qui suit votre tutoriel) ainsi que le résultat obtenu. Les choix de paramètres que j'ai fais sont peut-être peu judicieux?

Merci par avance,

Romane

text=verbatim$verbatim corpus <- VCorpus(VectorSource(clean_text)) corpus <- split_segments(corpus, segment_size = 40)

tok <- tokens(corpus, remove_punct = TRUE, remove_numbers = TRUE) tok <- tokens_remove(tok, stopwords("fr")) tok <- tokens_tolower(tok) dtm <- dfm(tok)

dtm <- dfm_trim(dtm, min_docfreq = 3)

res <- rainette(dtm, k = 5, min_segment_size = 10, min_split_members = 10) rainette_explor(res, dtm, corpus)

image

image

image

juba commented 3 months ago

Bonjour,

Je ne vois rien de spécial dans votre paramétrage, à part peut-être la taille des segments. On dirait que très peu des documents du corpus sont découpés en au moins deux segments, du coup ça pourrait valoir le coup de diminuer la taille des segments, ou alors de ne pas segmenter du tout (vous pouvez tester les deux).

Concernant les classes que vous obtenez, elles sont dues à des artefacts liés à des termes très liés entre eux, comme "game changers" par exemple. Comme ils apparaissent tout le temps ensemble, ils arrivent à définir une (toute petite) classe à eux tous seuls.

Pour éviter ce problème vous pouvez :

romane-lry commented 3 months ago

Merci pour votre réponse, j'ai essayé les différents axes que vous me proposez mais ai des résultats similaires, il y a toujours de nouvelles classes très minoritaires qui surviennent (même en éliminant les textes associés aux premières classes minoritaires). Je vais essayer de prétraiter les textes différemment.