2016-02-19 28 views
1

我一直在嘗試一些框架和算法,而且我找不到一個做我想做的事 - 這是根據數據分類的數據列值。機器學習/人工智能 - 根據值/模式對列進行分類

我試圖使用貝葉斯算法,但它不是很精確,因爲我不能指望正在搜索的數據在訓練集中 - 但我可以預期該模式在訓練中。

我沒有機器學習/ AI的背景知識,但是我在尋找一些實際的示例,然後才真正深入實施。

我建立了一個較小的ARFF來舉例說明。也嘗試了很多Weka分類算法,但沒有一個給我很好的結果。

@relation recommend 

@attribute class {name,email,taxid,phone} 
@attribute text String 

@data 
name,'Erik Kolh' 
name,'Eric Candid' 
name,'Allan Pavinan' 
name,'Jubaru Guttenberg' 
name,'Barabara Bere' 
name,'Chuck Azul' 
email,'[email protected]' 
email,'[email protected]' 
email,'[email protected]' 
taxid,'123611216' 
taxid,'123545413' 
taxid,'562321677' 
taxid,'671312678' 
taxid,'123123216' 
phone,'438-597-7427' 
phone,'478-711-7678' 
phone,'321-651-5468' 

我的期望是培養一個巨大的數據集像上面一個,並獲得基於模式的建議,例如:

[email protected] -> email 
Joao Vitor -> name 
400-123-5519 -> phone 

能否請您提出任何的算法,實例或想法來研究? 我找不到合適的,也許只是缺乏詞彙。

謝謝!

+1

寫幾個正則表達式有什麼問題? – Sorin

+0

那麼,對於給定的數據集,這是可能的,但我所擁有的場景有更復雜的事情。例如,我有一個名爲Name的字段,另一個名爲Company Name,我想爲「Stack Overflow Inc」作爲公司提供建議,並以「Joao Vitor」作爲名稱。 –

回答

2

你正在做的事情叫做命名實體識別(NER)。 Weka在這裏很可能不是真正的幫助。圖書館Mallet(http://mallet.cs.umass.edu)可能是一個很好的選擇。我會建議一種基於條件隨機場(CRF)的方法。

如果你想留在weka,你需要改變你的特徵空間。然後,天真的貝葉斯將會如您所提供的數據一樣OK E.g.添加功能的

  • 單詞是否有唯一的字符
  • 無論是字母數字
  • 無論是數字數據
  • 數的數字,它
  • 是否開始captilized
  • .. (只是有創意)
+0

我絕對不想和Weka在一起,提到它是因爲我試圖用它取得好成績,但沒有成功。我正在推薦使用推薦的工具/算法,謝謝! –