Closed gabrielparriaux closed 2 years ago
Je ne sais pas si c'est la manière optimale de le faire mais à partir d'un objet tokens
contenant les "pos" générés par spaCyr :
library(quanteda)
tok <- as.tokens(
list(
c("la/DET", "grande/ADJ", "maison/NOM", "rouge/ADJ"),
c("le/DET", "petit/ADJ", "chat/NOM", "mignon/ADJ")
)
Il est possible de ne conserver que certains types de termes et de supprimer le type dans les tokens avec ce code par exemple.
tok |>
tokens_select(
c("/ADJ$", "/NOM$"),
valuetype = "regex"
) |>
tokens_split("/") |>
tokens_remove(
c("ADJ", "NOM"),
valuetype = "fixed",
case_insensitive = FALSE
)
Excellent, c’est tout à fait ce qu’il me fallait! Merci!
Bonjour,
La lemmatisation effectuée avec spaCyr permet à Quanteda de récupérer les types de chacun des mots du lexique, en plus de leur lemme. Ceci devrait permettre, par exemple, de tirer profit de ces types pour les distinguer dans certaines opérations.
IRaMuTeQ, par exemple, permet de séparer dans l’affichage des clusters entre formes actives (verbes, noms et adjectifs) des formes supplémentaires (autres types), ce qui peut s’avérer pratique.
La fonction de Quanteda qui permet de créer des objets de type tokens en conservant le type est ainsi:
On obtient alors des tokens sous forme de binômes du type "lemme/POS".
Le problème est que je ne sais pas ensuite comment gérer ces tokens pour séparer à nouveau les binômes et créer une matrice termes-documents avec uniquement les lemmes. Si les types pouvaient être extraits dans une autre colonne, cela permettrait d’effectuer des sélections dans les tokens selon le type.
J’ai posé la question sur stackoverflow (https://stackoverflow.com/questions/72635517/how-can-i-separate-words-in-a-corpus-according-to-their-pos) aussi, au cas où…
Est-ce que vous avez une idée d’une manière de procéder avec ces types?
Merci d’avance pour votre aide,
Gabriel