机器学习/人工智能 - 根据值/模式对列进行分类

时间:2016-02-19 08:41:12

标签: algorithm machine-learning artificial-intelligence weka

我一直在尝试一些框架和算法,但我无法找到符合我想要的东西 - 这是根据值对数据列进行分类。

我尝试使用贝叶斯算法,但它并不是非常精确,因为我无法预期正在搜索的数据是在训练集中 - 但我可以预期该模式在培训。

我没有机器学习/人工智能的背景知识,但在真正深入实施之前,我一直在寻找一些有用的实例。

我建立了一个较小的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,'erik@gmail.com'
email,'steven@spielberg.com'
email,'dogs@cats.com'
taxid,'123611216'
taxid,'123545413'
taxid,'562321677'
taxid,'671312678'
taxid,'123123216'
phone,'438-597-7427'
phone,'478-711-7678'
phone,'321-651-5468'

我的期望是训练一个像上面这样的大数据集,并根据模式得到建议,例如:

joao@bing.com -> email
Joao Vitor -> name
400-123-5519 -> phone

您能否建议研究任何算法,示例或想法? 我无法找到合适的人选,也许只是缺乏词汇量。

谢谢!

1 个答案:

答案 0 :(得分:2)

您要做的是称为命名实体识别(NER)。 Weka在这里很可能不是真正的帮助。库Mallet(http://mallet.cs.umass.edu)可能是个不错的选择。我建议采用基于条件随机场(CRF)的方法。

如果您想继续使用weka,则需要更改功能空间。然后朴素贝叶斯将对你提供的数据做好准备 例如。添加

的功能
  • 该单词是否只包含字符
  • 是否为字母数字
  • 是否为数字数据
  • 数字,
  • 是否开始上限
  • ...(只是有创意)