【发布时间】:2016-12-04 19:48:43
【问题描述】:
我正在尝试使用scikit-learn 编写一个机器学习算法,它可以解析文本并根据训练数据对其进行分类。
使用文本数据的示例,直接取自scikit-learn 文档,使用CountVectorizer 生成每个单词出现次数的稀疏数组。
>>> from sklearn.feature_extraction.text import CountVectorizer
>>> count_vect = CountVectorizer()
>>> X_train_counts = count_vect.fit_transform(twenty_train.data)
不幸的是,这没有考虑到短语的任何顺序。可以使用更大的ngrams (CountVectorizer(ngram_range=(min, max))) 来查看特定的短语,但这会迅速增加特征的数量,甚至不是那么好。
有没有用另一种方式处理有序文本的好方法?我绝对愿意使用自然语言解析器(nltk、textblob 等)以及scikit-learn。
【问题讨论】:
-
词袋 + 朴素贝叶斯模型在某些情况下效果很好。你是在做二分类还是多分类?
-
@bpachev 我从二元分类开始,但是一旦我的二元分类器工作正常,我想进入多类。
标签: python python-3.x scikit-learn nltk