2016-10-25 1 views
0

J'utilise le sac de mots pour la classification de texte. Les résultats ne sont pas assez bons, la précision du test est inférieure à 70%. Une des choses que je considère est d'utiliser l'étiquetage POS pour distinguer la fonction des mots. Comment l'approche est-elle envisageable?Utilisez l'étiquetage de pos dans un sac de mots

Je pense à ajouter les balises aux mots, par exemple le mot « amour », si elle est utilisée comme une utilisation de nom:

love_noun 

et si elle est une utilisation du verbe:

love_verb 

Répondre

1

La précision du test près de 70% n'est pas si mauvaise si vous avez des centaines de catégories. Vous pourriez vouloir mesurer la précision globale et rappeler au lieu de la précision. Ce que vous avez proposé sonne bien, ce qui est une approche pour ajouter des conjonctions de fonctionnalités en tant que fonctionnalités supplémentaires. Voici quelques suggestions:

Conservez toujours vos fonctions d'origine. C'est-à-dire ne pas remplacer love par love_noun ou love_verb. Au lieu de cela, vous avez deux fonctionnalités à venir de love:

love, love_noun (or) 
love, love_verb 

Si vous avez besoin d'un exemple de code, vous pouvez commencer à partir nltk package python.

>>> from nltk import pos_tag, word_tokenize 
>>> pos_tag(word_tokenize("Love is a lovely thing")) 
[('Love', 'NNP'), ('is', 'VBZ'), ('a', 'DT'), ('lovely', 'JJ'), ('thing', 'NN')] 

n-Pensez à utiliser grammes, à partir peut-être d'ajouter 2-grammes. Par exemple, vous pourriez avoir "dans" et "stock" et vous pourriez simplement supprimer "dans" parce que c'est un mot d'arrêt. Si vous considérez 2 grammes, vous obtiendrez une nouvelle fonctionnalité:

in-stock 

qui a une signification différente de "stock". Dans certains cas, il peut être utile de distinguer, par exemple, «finance» et «shopping».