2012-10-08 19 views
2

我想要做的就是使用scikit.learn中的Kmeans將純文本文檔分爲兩類。scikit.learn和kmeans的新手段,如何使用K表示將文檔集羣化(來自文件)?

這是用例場景。 我將會收到一些將被標記爲「重要」並且將被標記爲「不重要」的樣本集。

從scikit.learn實例數據集是從新聞組預定義的格式:

dataset = fetch_20newsgroups(subset='all', categories=categories, 
          shuffle=True, random_state=42) 

我想要做的就是接收來自文本文件中的數據(20newsgroups似乎不是文本文件,同時,我甚至不能將其解壓)

我不清楚的是fetch_20newsgroups的數據結構及其工作原理。 而且我應該做的文本文件轉換成需要的格式(由fetch_20newsgroups提供這樣的一種)

感謝

叫Phyo什麼。

回答

5

隨scikit-learn提供的20個新聞組數據集加載程序獲取從原始站點下載的文本文檔檔案(http://kdd.ics.uci.edu/databases/20newsgroups/20newsgroups.html),然後將它們以壓縮格式緩存在$HOME/scikit_learn_data文件夾中。有關更多詳細信息,請參閱source code of the 20 newsgroups dataset loader

加載您自己的一套文本文件作爲scikit學習「一堆」對象,你可以直接將其指向正確的文件夾使用sklearn.datasets.load_files功能。

如果您的數據已經分爲兩類(例如名爲「重要」和「不重要」的兩個子文件夾),那麼您需要使用的不是一種無監督的聚類算法,而是一種分類,如MultinomialNB貝葉斯),LinearSVC(線性支持向量機)或Logistic迴歸,它們在text classification example中進行監督。

如果您不知道哪個文檔屬於哪個類別,但希望將您的語料庫分成兩組相似的文檔,那麼您可以使用無監督的聚類算法,例如KMeans,但不太可能會得到匹配的兩個聚類你的想法「重要」和「不重要」。

+0

非常感謝您,測試.load_files方法後,我可能對NB和LinearSVC有更多問題。我會在那裏邀請你。 –

+0

嘿@ogrisel,你能在這裏回答我的問題嗎? http://stackoverflow.com/q/13068257/200044我打算在scikit-learn上實現多處理 –

相關問題