2013-05-22 112 views
4

幾乎所有示例都基於數字。在文本文件中,我有單詞而不是數字。如何使用SVM和KNN對文本文檔進行分類

那麼你能告訴我如何使用這些算法進行文本文檔分類的簡單例子。

我不需要的代碼示例,但只是邏輯

僞代碼,將有助於大大

+0

只是一個簡單的問題。當你的意思是大多數例子都是基於數字的時候,你指的是元素(你的案例中的文檔)被表示爲一個向量,例如(1,0.77,0.4,...),對嗎? – miguelmalvarez

回答

9

常見的方法是用文字模式的袋(http://en.wikipedia.org/wiki/Bag_of_words_model),其中分類將學習單詞的存在一個文本,它很簡單,但出色地工作。

此外,這裏還有一個類似的問題:Prepare data for text classification using Scikit Learn SVM

+0

我想這可能是非常低效的,因爲可能有成千上萬的單詞我錯了嗎? – MonsterMMORPG

+0

@MonsterMMORPG不一定,因爲不是所有的單詞都有相同的相關性,您可能會忽略短的單詞(少於三個字符),也可能是較長的(> 10)和較少的單詞。另外400 - 600字的矢量應該很好,並給你體面的表現 – Pedrom

+1

@Pedrom所描述的稱爲特徵選擇,您可以選擇最具代表性的術語。他解釋的具體方法是基於文檔頻率的特徵選擇,這是一種非常簡單(儘管非常強大)的方法來限制您處理的信息,以提高效率,並在某些情況下提高效率(質量)。但是,我不同意提到的功能數量。這在很大程度上取決於收藏,但我會說,您將需要1000到3000個功能以獲得最佳性能,並且我建議您嘗試幾種配置。 – miguelmalvarez

3

你代表出現在文檔作爲一個向量的權重,其中每個索引位置是一個長期的「權重」的條款。例如,如果我們假設一個文檔「hello world」,並且我們將位置0與「hello」的重要性和位置1與世界的重要性相關聯,並且我們將重要性作爲該術語出現的次數來測量,則文檔被視爲d =(1,1)。

同時只有一個文件說「你好」會是(1,0)。

這種表示方式可以基於任何衡量文檔中術語頻率的重要性(如@Pedrom所建議的)最簡單的選項。最常見但簡單的技巧是應用TF-IDF,它結合了文檔中術語的常用性和集合中的罕見性。

我希望這有助於

+0

是的,我也計劃tf idf謝謝 – MonsterMMORPG

0

在單詞模型的包,你可以用這個詞的頻率,並根據他們的新文檔和培訓文件中occurence分配權重給他們。之後,您可以使用相似度函數來計算培訓和測試文檔之間的相似度。

相關問題