我正在使用NLTK来对文档进行分类-每个文档有1个标签,并且有10种文档类型。
对于文本提取,我正在清理文本(删除标点符号,删除html标签,小写字母),删除nltk.corpus.stopwords以及我自己的停用词集合。
对于我的文档功能,我查看了所有50k文档,并按照频率(frequency_words)收集了前2k个单词,然后为每个文档标识了文档中哪些单词也位于全局frequency_words中。
然后,我将每个文档作为hashmap传递{word: boolean}
到nltk.NaiveBayesClassifier(...)关于文档总数,我的测试培训比例为20:80。
我遇到的问题:
谢谢!
术语:文档被分为10个不同的类别,这使其成为一个多类别的分类问题。除此之外,如果要对具有多个标签的文档进行分类,则可以将其称为多类多标签分类。
对于您面临的问题,
nltk.NaiveBayesClassifier()是开箱即用的多类分类器。所以可以,您可以使用它来解决此问题。根据多标签数据,如果您的标签是a,b,c,d,e,f,g,h,i,j,则必须将特定文档的标签“ b”定义为“ 0,1”, 0,0,0,0,0,0,0,0'。
特征提取是分类(机器学习)中最难的部分。我建议您研究不同的算法,以了解并选择最适合您数据的算法(不查看数据,就很难推荐使用哪种算法/实现)
有许多不同的库可供分类。我个人使用了scikit-learn,可以说它是很好的现成分类器。
注意:使用scikit-learn,由于数据集庞大且存在其他挫折,因此我能够在一周内取得成果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句