我正在嘗試編寫一個機器學習算法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
@bpachev我從二進制分類開始,但是我希望進入多類,一旦我的二進制分類器正常工作。 – 2Cubed