2011-01-25 32 views

回答

23

就像文檔所證明的那樣,每個庫中的樸素貝葉斯實現很容易使用,因此爲什麼不使用兩者來運行數據並比較結果呢?

Orange和NLTK都是成熟穩定的圖書館(每個圖書館開發10年以上) 起源於大型大學;他們共享一些常見的功能,主要是機器學習 算法。除此之外,它們在範圍,目的和實施方面有很大不同。

Orange是域不可知的 - 不是針對特定的學科 或商業領域,而是將自己標榜爲全棧數據挖掘 和ML平臺。它的重點是工具他們自己,而不是在特定的學科中應用這些工具。

其功能包括IO,數據分析算法和數據可視化畫布。

另一方面,NLTK從一個大型計算機系的語言學系開始,並且仍然是一個學術項目。您提到的 (文檔內容分類)和您選擇的算法(樸素貝葉斯) 的任務在NLTK功能的核心上非常正確。 NLTK確實有 有ML /數據挖掘算法,但它的唯一原因是它們在計算語言學中有一個特定的 實用程序。

NLTK當然包括一些ML算法,但僅僅是因爲它們在計算語言學中具有實用性,還有文檔分析器,標記器,詞類分析器等等 - 所有這些都包括NLTK。

也許在橙色的樸素貝葉斯實現一樣好,我仍然會選擇NLTK的 實現,因爲它明確針對您提到的特定任務進行了優化。

有許多關於NLTK的教程,尤其是其樸素貝葉斯使用 內容分類。例如Jim Plus和另一個streamhacker.com的博客文章,例如提供使用NLTK的樸素貝葉斯的優秀 教程;第二個包含了對訪問該模塊所需的代碼的逐行討論 。這兩個 帖子的作者使用NLTK報告了良好的結果(前者爲92%,後者爲73%)。

+3

總是驚訝於我在這裏得到的答案的深度,謝謝。 – philgo20

+0

我是這個領域的總菜鳥。我們想要做的是根據文本中的特徵將內容分類爲類別,即使類別名稱不是其中的一個特徵。 (如果「水果」這個詞不在文本中,那麼要將橙色分類爲水果事件。)我們應該尋找特定類型的分類還是樸素貝葉斯我們正在尋找什麼? – philgo20

+0

我應該補充一點,結果應該是多個類別。這是否打敗樸素貝葉斯的目的? Fisher方法更適合這種情況嗎? – philgo20

3

我不知道橙,但+1 NLTK:

我先後使用的分類工具NLTK分類文本和相關的元數據。貝葉斯是默認的,但還有其他的選擇,如最大熵。作爲一個工具包,你可以自定義,如你所見 - 例如。創建你自己的功能(這是我爲元數據做的)。

NLTK也有一些好書 - 其中一個可以在Creative Commons(以及O'Reilly)下面找到。

1

NLTK是支持自然語言處理的四個狀態的模型的工具包:

  1. 標記化:分組字符看作單詞。這範圍從微不足道的正則表達式處理像「不能」的收縮
  2. 標記。這是將詞性標記應用於標記(例如,「NN」表示名詞,「VBG」表示動詞動名詞)。這通常通過訓練訓練語料庫(即,通過手標記的句子的大列表)訓練模型(例如,隱馬爾可夫)來完成。分組/分組。這是採取每個標記的句子和提取功能到樹(例如名詞短語)。這可以根據手寫語法或在語料庫上訓練的語法。
  3. 信息提取。這是遍歷樹並提取數據。這是你的特定的橙子水果將被完成的地方。

NLTK支持WordNet,這是一種巨大的語義詞典,可對詞語進行分類。所以有5個名詞定義爲橙色(南非的水果,樹木,色素,顏色,河流)。其中每個都有一個或多個分類層次結構的「上層路徑」。例如。 '橙色' 的第一讀出具有兩個路徑:

  • 橙/柑橘/ edible_fruit /果/ reproductive_structure/plant_organ/plant_part/natural_object /全/對象/ physical_entity /實體

  • 橙/柑橘/ edible_fruit /生產/食品/固/事/ physical_entity /實體

根據您的APPLI陽離子結構域可以將橙色識別爲水果,食物或植物。然後你可以使用分塊的樹結構來確定更多(誰做了什麼水果等)