2017-02-05 1 views
0

J'ai un ensemble de données d'observations + 1M d'interactions avec un centre d'appels. Le texte est un texte libre rédigé par le représentant prenant l'appel. Le texte n'est pas bien formaté et n'est pas près d'être grammaticalement correct (beaucoup de main courte). Aucun texte libre n'a d'étiquette sur les données car je ne sais pas quelles étiquettes fournir. Compte tenu de la taille des données, un échantillon aléatoire des données (pour donner un niveau de confiance élevé) constituerait-il une première étape raisonnable dans la détermination des étiquettes à créer? Est-il possible de ne pas devoir étiqueter manuellement plus de 400 observations aléatoires à partir des données, ou n'y a-t-il pas d'autre méthode pour pré-traiter les données afin de déterminer le bon ensemble d'étiquettes à utiliser pour la classification?Classification de texte - Libellé pré-processus

Appréciez toute aide sur le problème.

Répondre

1

L'annotation manuelle est une bonne option puisque vous avez une très bonne idée d'un document idéal correspondant à votre étiquette. Cependant, avec la grande taille de l'ensemble de données, je vous recommanderais d'adapter un LDA aux documents et d'examiner les rubriques générées, cela vous donnera une bonne idée des étiquettes que vous pouvez utiliser pour la classification de texte.

Vous pouvez également utiliser LDA pour la classification de texte éventuellement en trouvant des documents représentatifs pour vos étiquettes, puis de trouver les documents les plus proches de ce document par une mesure de similitude (disons cosinus). Alternativement, une fois que vous avez une idée des étiquettes, vous pouvez également les attribuer sans aucune intervention manuelle en utilisant LDA, mais alors vous serez limité à l'apprentissage non supervisé.

Espérons que cela aide!

P.S. - Assurez-vous de supprimer tous les mots vides et utilisez un stemmer pour regrouper des mots de même type (gestion, gestion, gestion) au stade de pré-traitement.

+0

Wow. C'est ... puissant. Merci beaucoup. Si quelqu'un est intéressé à voir cela implémenté dans R voir ici: http: //stackoverflow.com/questions/14875493/lda-with-topicmodels-how-can-i-see-which-topics-different-documents-belong-to – meb33

1

Texte Pré-traitement: tout le texte en minuscules, en tokenizer unigrammes, supprimer tous les mots d'arrêt, utilisez égrappoir pour normaliser un jeton à son mot de base.

Il y a 2 approches auxquelles je peux penser pour classer les documents, par exemple le texte libre dont vous avez parlé. Chaque texte libre est un document:

1) Classification supervisée Prenez un peu de temps et choisissez au hasard quelques échantillons de documents et attribuez-leur une catégorie. Faites cela jusqu'à ce que vous ayez plusieurs documents par catégorie et que toutes les catégories que vous voulez prévoir soient couvertes.

Ensuite, créez une matrice Tf-Idf à partir de ce texte. Sélectionnez les principales caractéristiques de K (accordez la valeur de K pour obtenir les meilleurs résultats). Alternativement, vous pouvez utiliser SVD pour réduire le nombre de fonctionnalités en combinant des fonctionnalités corrélées en une seule. S'il vous plaît garder à l'esprit que vous pouvez utiliser d'autres fonctionnalités comme le département de la direction du service à la clientèle et de nombreux autres aussi comme prédicteurs. Maintenant, formez un modèle d'apprentissage automatique et testez-le.

2) Apprentissage non supervisé: Si vous connaissez le nombre de catégories que vous avez dans votre variable de sortie, vous pouvez utiliser ce nombre comme le nombre de clusters que vous voulez créer. Utilisez le vecteur Tf-Idf de la technique ci-dessus et créez k clusters. Choisissez au hasard quelques documents de chaque groupe et décidez de la catégorie à laquelle les documents appartiennent. Supposons que vous ayez choisi 5 documents et remarqué qu'ils appartiennent à la catégorie "Wanting Refund".Étiquetez tous les documents de cette grappe dans "Wanting Refund". Faites ceci pour tous les groupes restants.

L'avantage de l'apprentissage non supervisé est qu'il vous évite d'avoir à effectuer une pré-classification et une préparation des données, mais attention à l'apprentissage non supervisé. La précision peut ne pas être aussi bonne que l'apprentissage supervisé.

Les 2 méthodes expliquées sont un aperçu de ce qui peut être fait. Maintenant que vous avez une idée, lisez plus sur les sujets et utilisez un outil comme rapidminer pour accomplir votre tâche beaucoup plus rapidement.