3

問題:給定一組手工分類的字符串(或一組有序的字符串向量)生成一個分類函數,以對更多輸入進行分類。就我而言,這些數據(或大部分數據)不是自然語言。字符串中的機器學習和代碼生成器

問題:是否有任何工具可以做到這一點?我正在考慮一些合理的打磨,下載,安裝和類似的事情,而不是一些圖書館或一個脆弱的學術計劃。


(不要停留在細節,請儘快與真正細節將限制答案通常較少有用的答覆,並簽署保密協議。)

由於我正在尋找一個例子;我想要過濾的輸入是從日誌中提取的計算機生成的狀態字符串。根據需要通知誰或需要採取什麼操作來過濾錯誤消息(作爲示例)。

+0

您可能想更多地談談要分類的字符串。例如,它們是由自然語言數據(例如,電子郵件或其他文件)組成的嗎? – dmcer 2010-05-14 18:18:03

+0

您是否有權訪問源代碼,即您是否擁有所有可能的狀態字符串列表? – 2010-05-15 01:02:50

+0

錯誤消息是一個例子。 OTOH我無法訪問生成輸入的東西。 – BCS 2010-05-16 00:31:05

回答

0

您是否試過垃圾郵件或電子郵件過濾器?通過使用已經標記了適當類別的文本文件,您應該能夠對文本輸入做進一步分類。無論如何,這些程序都是這樣做的,但不是將輸出標記爲「垃圾郵件」和「非垃圾郵件」,您可以執行其他類別。

你也可以嘗試一些涉及AdaBoost的東西,以更自然的方式來滾動你自己的東西。來自Google的This library看起來很有希望,但可能不符合您的即時部署要求。

+0

垃圾郵件往往是一個柔軟的一維域。然而,在我的情況下,我越來越看重硬件(有實際的規則,我只是不想對它們進行反向工程),無序,多路(選擇N箇中的一個)選擇。我想我應該刪除「決定」一詞。 – BCS 2010-05-13 18:46:33

+0

@ BCS--我只記得使用貝葉斯規則的最佳部署文本解析解決方案是垃圾郵件過濾器。這些過濾器必須克服垃圾郵件發送者戰術的趨勢,比如引用文獻等,而不是僅僅發現隨機錯誤的字母。我不知道它是否能解決您的特定問題,它只是我所瞭解的一個可靠的已部署文本解決方案的唯一示例。如果你發現別的東西,我一定會很高興知道它。 – mmr 2010-05-14 00:41:31

1

Mallet有一堆分類的,你可以訓練和完全從命令行部署
Weka也不錯,因爲它有分類器和預處理器的數量龐大,爲您與

3

做事手動

如果錯誤消息是自動生成的,並且消息背後的異常列表不是非常大,那麼您可能只想擁有一個表,它可以直接映射每個錯誤消息類型給需要通知的人。

這應該很容易跟蹤到底誰/哪些組將獲得哪些類型的消息並在您決定某些消息被誤導時更新消息的路由。

通常,一小部分類型的錯誤構成大部分錯誤報告。例如,微軟在其軟件中注意到80% of crashes were caused by 20% of the bugs。所以,爲了獲得一些有用的信息,你甚至不需要從一個包含每種錯誤信息的完整表格開始。相反,您可以從一個列表中將最常見的錯誤映射到正確的人並將其他路由路由到人手動路由。每次手動發送錯誤時,您都可以在路由表中添加一個條目,以便將來自動處理該類型的錯誤。

文檔分類

除非錯誤消息正在被人誰提交問題,你想選擇路線時他們使用此信息社論,我不會推薦這當作一個文件分類任務。但是,如果這是你想要做什麼,這是一個被編程語言組織。文件分類相當不錯的包的列表:

Python的 - 爲了這個使用基於Python的做Natural Language Toolkit (NLTK),看到Document Classification節在免費提供NLTK book

紅寶石 - 如果Ruby是更多你的事情,你可以使用Classifier寶石。以下是檢測 whether Family Guy quotes are funny or not-funny的示例代碼。

C# - C#程序員可以使用nBayes。該項目的主頁有簡單的垃圾郵件/非垃圾郵件分類器的示例代碼。

的Java - Java的鄉親有Classifier4JWekaLucene Mahout,並作爲adi92提到Mallet

學習規則與Weka - 如果規則是你想要的,Weka可能會特別感興趣,因爲它包括一個rule set based learner。你會發現一個使用Weka進行文本分類的教程here

+1

重新部分表+默認的位;我正在考慮沿着這條路線的解決方案,但這需要更進一步。用戶不需要定義分類規則,只需要對具體示例進行分類,然後機器學習就可以從中定義規則。這有一個好處,就是通過在錯誤分類的數據被重新分配的地方掛鉤,我可以增加規則,而不需要任何人做任何事情,而是說「Itme A去B先生」。 – BCS 2010-05-16 00:41:14

+0

對於簡單的「無移動部件」LuT建議+1(可能工作,可能不會 - 沒有辦法告訴沒有更多信息)。 – doug 2010-05-31 09:57:30