Comment utiliser LDA pour classer des documents dans des sujets prédéfinis
LDA n'est pas supervisé et classe les documents en rubriques. Mais existe-t-il un moyen de faire en sorte que le LDA classe les documents dans les sujets prédéfinis (ou spécifiques souhaités).
Le lien ci-dessous indique que nous avons besoin d'une version bêta personnalisée avant de fournir plus de pondérations à certains mots clés (qui correspondent aux sujets prédéfinis souhaités) pour atteindre l'objectif ci-dessus.
https://towardsdatascience.com/a-machine-learning-approach-to-automated-customer-satisfaction-surveys-946d2604e309
Je ne peux pas comprendre comment, cependant. Quelqu'un peut-il me montrer un exemple / une implémentation sur la façon d'utiliser LDA pour classer dans des sujets prédéfinis
En général, comment classer les documents en sujets si nous ne les étiquetons pas, est-ce que lda et les méthodes de clustering générales sont le seul moyen? ou existe-t-il des méthodes semi-supervisées qui peuvent fournir de meilleures classifications?
Réponses
Ce n'est pas vraiment clair, mais je pense que ce qu'il fait est de peser les mots trouvés sous les balises de sujet "prédéfinies" dans un forum de discussion, puis de peser ces mots (X1000) dans le processus d'échantillonnage de LDA.
Par exemple, si je recherche stats.stackexchange sous la balise "natural-language" et que je crée un vocabulaire de, mot: # fois que le mot est apparu, et que je supprime les mots vides (mots courants), j'obtiendrai probablement quelque chose comme:
$$ \begin{align} \text{nlp} &~|~ 10000 \\ \text{classify} &~|~ 9500 \\ \text{text} &~|~ 9273 \\ \text{deep} &~|~ 3000 \\ \text{modelling} &~|~ 324 \\ \text{lda} &~|~ 234 \\ \text{gibbs} &~|~ 230 \\ \end{align} $$
Alternativement, la balise de rubrique prédéfinie a déjà des mots clés associés (qu'il utilise et pèse plus). Pour reprendre notre exemple, la balise «langage naturel» mentionne des mots comme: linguistique, artificiel, intelligence, machine, apprentissage. Nous pesons plus haut ces mots.
Puis dans le processus d'échantillonnage pour n'importe quel mot $w_i$ avec le poids du sujet associé $b_{z,i}$ (où $z$ représente le sujet spécifique), nous le multiplions simplement par une constante (ici 1000), ie $b_{z,i} \cdot 1000$.
Je n'ai pas lu l'article en entier, mais je ne vois cela utile que si vous n'avez que quelques mots-clés par sujet prédéfini. Je pense qu'il serait préférable d'utiliser quelque chose comme word2vec, ou simplement cosigner la distance des mots, pour cette tâche à la place. LDA n'a pas vraiment été conçu pour être utilisé lorsque nous avons déjà des sujets prédéfinis.