2011-11-15 38 views
7

我正在處理文本分類問題,我試圖將類別中的一組詞彙分類,是有很多可用於分類的庫,所以如果您建議使用它們,請不要回答。將文本分類爲類別

讓我解釋一下我想要實現的。 (採取例如)詞

列表:

  1. 的java
  2. 編程分類的
  3. 語言
  4. C-尖銳

列表。

  1. 的Java
  2. 升c

在這裏我們將訓練集,:

  1. 的java映射到類別1. Java的
  2. 編程映射到1類。 java
  3. 編程映射到類別2.c-sharp
  4. 語言映射到類別1.java
  5. 語言映射到類別2.C銳利
  6. 升c映射到類別2.C銳利

現在我們有一個短語「最好java編程的書「從給定的短語下面的話 是一根火柴,我們的‘字列表’:

  1. 的Java
  2. 編程

「編程」有兩個映射類別「java」&「c-sharp」,所以它是一個常用詞。

「java」僅映射到類別「java」。

所以我們的匹配類的短語是「Java」的

這是來到了我的腦海裏,是這個解決方案很好,可以把它實現,你有什麼建議,我錯過了什麼東西,瑕疵等。

+0

沒有什麼,這就是問題,這是否會起作用,我是否應該花時間嘗試實施? –

回答

4

當然這可以實施。如果您在正確的數據集(Java和C#編程書籍的標題,我猜)上訓練樸素貝葉斯分類器或線性SVM,應該學會將術語「Java」與Java,「C#」和「.NET」與C# ,以及兩者的「編程」。也就是說,如果數據集被均勻劃分,樸素貝葉斯分類器可能會學習Java或C#的常見術語(如「編程」)的概率。

+0

+1如果我試圖對1000種不同類別的文本進行分類......仍然樸素貝葉斯分類器將是一個很好的選擇......可以發生這種情況,文本在測試時會產生100個不同的結果......請建議.. 。 – Wazzzy

0

如果可能,請閱讀「編程集體智慧」一書中「文檔過濾」一章中的「天真分類器」一節。雖然這些例子是用Python編寫的,但我希望這對您不會造成太大麻煩。

2

一個簡單的實現方法是使用直線式Lucene(或任何文本索引引擎)。使用所有「java」示例創建一個Lucene文檔,使用「c#」示例創建另一個文檔,並將兩個文檔都添加到索引。要對新文檔進行分類,或對文檔中的所有條目進行分類,並對索引執行查詢,並獲取分數最高的分類。