Question

Je veux classer les tweets dans un ensemble donné de catégories comme { 'sports', '', 'divertissement' amour}, etc ...

Mon idée est de prendre les fréquences terme des mots les plus couramment utilisés pour me aider à résoudre ce problème. Par exemple, le mot « amour » apparaît le plus souvent dans le l'amour catégorie, mais il montre aussi dans le sport et le divertissement sous la forme de «J'aime ce jeu » et «J'adore ce film ».

Pour le résoudre, j'envisagé un graphique 3 axes où les valeurs de x sont tous les mots utilisés dans mes tweets, les valeurs y sont les catégories et les valeurs z sont les fréquences terme (ou un certain type de score) avec le respect de la parole et la catégorie. Je voudrais ensuite briser le tweet sur le graphique, puis ajoutez les valeurs z dans chaque catégorie. La catégorie avec la valeur z total le plus élevé est probablement la bonne catégorie. Je sais que cela est source de confusion, alors laissez-moi vous donner un exemple:

Le mot « montre » apparaît beaucoup dans les sports et le divertissement ( « je regarde le jeu » et « je regarde mon émission préférée ») ... Par conséquent, je réduit à ces deux catégories au moins . Mais « jeu » le mot ne se présente pas souvent dans le divertissement et spectacle ne se présente pas souvent dans le sport. la valeur Z pour « montre » + « jeu » sera le plus élevé pour la catégorie sportive et « montre » + « show » sera le plus élevé pour le divertissement.

Maintenant que vous comprenez comment mes travaux d'idée, je besoin d'aide pour l'organisation de ces données pour qu'un algorithme d'apprentissage de la machine peut prédire les catégories quand je donne un mot ou ensemble de mots. J'ai lu beaucoup de choses sur SVM et je pense qu'ils sont la voie à suivre. J'ai essayé libsvm, mais je ne peux pas sembler trouver un bon jeu d'entrée. En outre, libsvm ne prend pas en charge les valeurs non numériques, qui ajoute plus de complexité.

Toutes les idées? Ai-je besoin même une bibliothèque, ou devrais-je le code la décision prise moi-même?

Merci à tous, je sais que ce fut long, désolé.

Était-ce utile?

La solution

Eh bien, vous essayez de faire le classement de texte dans un groupe de catégories. Naive Bayes fait cela. En fait, il est un analogue statistique de votre idée. Il suppose que la fréquence des mots dans un texte sont des indicateurs indépendants d'une catégorie et donne une probabilité de chaque catégorie en fonction de cette hypothèse. Il fonctionne bien dans la pratique; Je crois que Weka a une mise en œuvre.

Autres conseils

Vous devez classer les documents (ici tweets sont vos documents) en fonction de leur contenu (mots-caractéristiques) et de les mettre dans les catégories (sport, environnement, amour, etc.).

Vous pouvez utiliser Naive Bayes Classifier ou Fisher classificateur (je préfère Fisher) pour classer vos documents . Vous pouvez trouver la mise en œuvre des deux dans les bibliothèques python.

Utilisation résultant,-boîtier inférieur, stop-mot (la, est, à etc) la dépose et d'autres techniques de pré-traitement pour augmenter l'efficacité.

Tout ce que vous avez besoin est de passer par le chapitre 6 (Filtrage de documents) du livre Programmation Intelligence Collective: Smart Building Web 2.0 Applications. Il a une bonne explication des deux classificateurs ainsi que des exemples et la mise en œuvre en python.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top