在词袋中使用 pos 标记

Use pos tagging in bag of words

我正在使用词袋进行文本分类。 结果不够好,测试集准确率低于 70%。

我正在考虑的一件事是使用词性标注来区分单词的功能。如何实现它?

我正在考虑将标签附加到单词上,例如单词 "love",如果用作名词,请使用:

love_noun

如果是动词使用:

love_verb

如果您有数百个类别,接近 70% 的测试集准确率也不错。您可能想要测量整体精度和召回率而不是准确性。

你提议的听起来不错,这是一种将特征连词作为附加特征添加的方法。这里有一些建议:

仍然保持原来的特征。也就是说,不要将love替换为love_nounlove_verb。相反,您有两个功能来自 love:

 love, love_noun (or)
 love, love_verb

如果您需要一些示例代码,可以从 nltk 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-grams,也许从添加 2-grams 开始。例如,您可能有 "in" 和 "stock",您可能只是删除 "in",因为它是一个停用词。如果你考虑 2-grams,你会得到一个新特征:

in-stock

与"stock"意义不同。在某些情况下,它可能会有很大帮助,例如,区分 "finance" 和 "shopping"。