56 votes

Est-il possible de deviner l'humeur de l'usager en fonction de la structure du texte?

Je suppose un langage naturel processeur devrait être utilisé pour analyser le texte lui-même, mais qu'avez-vous des suggestions pour un algorithme pour détecter l'humeur de l'usager en fonction du texte qu'ils ont écrit? Je doute qu'il serait très précise, mais je suis toujours intéressé tout de même.

EDIT: je suis pas un expert sur la linguistique ou de traitement du langage naturel, donc je m'excuse si cette question est trop générale ou trop stupide.

66voto

Smerity Points 1160

C'est la base d'une zone de traitement de la langue naturelle appelée l'analyse des sentiments. Bien que votre question est d'ordre général, il n'est certainement pas stupide - ce type de recherche est effectuée par Amazon sur le texte dans l'examen des produits par exemple.

Si vous êtes sérieux à ce sujet, alors qu'une simple version pourrait être atteint par

  1. Acquérir un corpus de positif/négatif sentiment. Si c'était un projet professionnel, vous peut prendre un certain temps et manuellement annoter un corpus de vous-même, mais si vous êtes pressés ou simplement voulu expérimenter cette au premier, alors je vous suggère de regarder le sentiment de polarité corpus de Bo Pang et Lillian Lee de recherche. Le problème avec l'aide de ce corpus est qu'il n'est pas adapté à votre domaine (en particulier, le corps utilise des critiques de films), mais il devrait encore être le cas.

  2. Diviser votre jeu de données dans des phrases qu'elle soit Positive ou Négative. Pour le sentiment de polarité corpus, vous pourriez diviser chaque examen, en composite phrases, puis appliquer le sentiment global de la polarité de la balise (positive ou négative) à l'ensemble de ces phrases. Diviser ce corpus en deux parties de 90% pour la formation, 10% pour le test. Si vous êtes à l'aide de Weka alors qu'il peut gérer le découpage du corpus pour vous.

  3. Appliquer un algorithme d'apprentissage automatique (comme les SVM, Naive Bayes, Maximum d'Entropie) pour la formation du corpus au niveau des mots. Ce modèle est appelé un sac de mots de modèle, qui est seulement de représenter la phrase, les mots qu'il se compose de. C'est le même modèle qui a beaucoup de filtres anti-spam exécuter sur. Pour une bonne introduction à des algorithmes d'apprentissage automatique il ya une application appelée Weka qui met en œuvre toute une gamme de ces algorithmes et vous donne une interface graphique pour jouer avec eux. Vous pouvez ensuite tester les performances de la machine appris modèle à partir des erreurs commises lors de la tentative de classer votre corpus de test avec ce modèle.

  4. Appliquer cet algorithme d'apprentissage automatique pour vos messages de l'utilisateur. Pour chaque utilisateur de poste, séparer le post en phrases, puis de les classer à l'aide de votre machine appris modèle.

Donc oui, si vous êtes sérieux à ce sujet, alors il est possible - même sans expérience passée en linguistique computationnelle. Ce serait une bonne quantité de travail, mais même avec le mot-selon les modèles de bons résultats peuvent être obtenus.

Si vous avez besoin de plus d'aide n'hésitez pas à contacter - moi-je suis toujours heureux d'aider d'autres personnes intéressées à la PNL =]


Les Petites Notes -

  1. Simplement la division d'un segment de texte en phrases est un champ de la PNL - disant phrase limite de détection. Il y a un certain nombre d'outils, de logiciels libres ou gratuits, disponibles pour le faire, mais pour votre tâche d'un simple split sur les espaces et la ponctuation doit être fine.
  2. SVMlight est également une autre machine à l'apprenant de prendre en considération, et en fait inductive SVM effectue une tâche similaire à ce que nous cherchons à essayer de classifier qui Reuter articles à propos de "acquisitions d'entreprises" avec 1000 positif et 1000 exemples négatifs.
  3. Tournant les phrases en fonctionnalités pour classer plus peut prendre un certain travail. Dans ce modèle, chaque mot est une fonction, ce qui requiert à la segmentation de la phrase, ce qui signifie la séparation des mots et des signes de ponctuation les uns des autres. Une autre astuce est de minuscules tous les mots jetons de sorte que "je te DÉTESTE" et "je VOUS déteste" les deux finissent par être considérés de la même manière. Avec plus de données, vous pouvez essayer et comprennent également si la capitalisation permet de classifier si quelqu'un est en colère, mais je crois que les mots doivent être suffisamment au moins pour un premier effort.


Modifier

Je viens de découvrir LingPipe qui en fait a un tutoriel sur l'analyse des sentiments à l'aide de la Bo Pang et Lillian Lee Sentiment de Polarité corpus dont je parlais. Si vous utilisez Java qui peut être un excellent outil à utiliser, et même si elle passe par toutes les étapes, j'ai discuté ci-dessus.

12voto

cletus Points 276888

Pas de doute, il est possible de juger de l'humeur de l'usager sur la base du texte qu'ils type mais ce ne sera pas chose banale. Les choses que je peux penser:

  • Capitales tend à signifier l'agitation, de l'agacement ou de frustration et est certainement une réaction émotionnelle, mais là encore, certains débutants le faire parce qu'ils ne réalisent pas l'importance de sorte que vous ne pouvait pas supposer que, sans chercher à quoi d'autre qu'ils ont écrit (assurez-vous que ce n'est pas tout en majuscules);
  • Les capitales sont vraiment juste une forme de l'accent. D'autres sont l'utilisation de certains agressive couleurs (par exemple rouge) ou l'utilisation de caractères gras ou des polices plus grandes;
  • Certaines personnes font plus de l'orthographe et de la grammaire et de l'orthographe quand ils sont très émotifs;
  • La numérisation pour les émoticônes pourrait vous donner une image très claire de ce que l'utilisateur est sentiment, mais encore quelque chose comme :) peut être interprété comme heureux, "je vous l'avais dit", ou encore avoir un sens sarcastique;
  • Utilisation de jurons a tendance à avoir une signification claire mais encore pas clair. Le discours familier par beaucoup de gens vont régulièrement contiennent certains mots de quatre lettres. Pour certaines autres personnes, ils pourraient même ne pas dire "l'enfer", de dire "zut" à la place de sorte que toute juron (même "suce") est importante;
  • Les groupes de signes de ponctuation (comme @#$@$@) ont tendance à être remplacés par des jurons dans un contexte où les points d'exclamation ne sont pas nécessairement appropriés, donc c'est moins susceptibles d'être familier;
  • Les points d'Exclamation peut indiquer la surprise, le choc ou l'exaspération.

Vous voudrez peut-être consulter les Progrès dans le texte écrit de l'analyse ou encore la Détermination d'Humeur pour un Blog en Combinant Plusieurs Sources de données.

Enfin, il est intéressant de noter que le texte écrit est généralement perçu comme plus négative que la réalité. C'est un problème commun avec l'e-mail de la communication dans les entreprises, tout comme un exemple.

3voto

Michael Petrotta Points 35647

Je ne peux pas croire que je vais prendre cela au sérieux... en supposant une dimension de l'humeur de l'espace:

  • Si le texte contient un mot de malédiction, -10 humeur.
  • Je pense que les exclamations aurait tendance à être négatif, donc -2 humeur.
  • Quand je suis frustré, j'en Très. Court. Des phrases. -5 humeur.

Plus j'y pense, plus il est clair que beaucoup de ces symboles indiquent extrêmes de l'humeur en général, mais il n'est pas toujours évident de ce genre de l'humeur.

3voto

Alex Points 17262

Si vous prenez en charge les polices, gras et en rouge, le texte est sans doute l'un de la colère de l'utilisateur. Vert de taille régulière des textes avec papillon clip art heureuse.

2voto

ilya n. Points 6610

Ma mémoire n'est pas bonne sur ce sujet, mais je crois que j'ai vu quelques recherches sur la structure de grammaire du texte et de la tonalité générale. Qui pourrait être aussi simple que des mots et expression de l'émotion des mots (ainsi, les points d'exclamation sont assez évidentes).

Edit: j'ai noté que la première personne à répondre a considérablement poste similaire. Il pourrait y avoir en effet une sérieuse idée sur de courtes peines.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X