如何自动将给定文本分配给不同的类别?

时间:2011-09-15 21:33:38

标签: php algorithm zend-framework automation categorization

我正在开展这个项目,我们有一些类别,如

美容 活动 购物

对类别进行了标记,例如,某些标记为:

Beauty => Haircut, spa, manicure, personal trainer
Activities => personal trainer, biking
Shopping => Jewelery, Shirts, Socks

标签有一个顺序,表示它们与类别的相关性,例如,Haircut首先出现在美丽中,因为其中带有发型一词的文字最有可能与美女相关,

正如您所看到的“Personal Trainer”标签属于多个类别,因此如果文本中包含Personal Trainer,则可能与Beauty或Activities相关。

我还记录了在文本中找到每个标记的次数,因此每个标记都有一个找到的值。

现在,当要处理新文本时,我会搜索其中的所有标记,并查看它们在给定文本中出现的次数。示例文本的结果如下所示:

Haircut => 4
personal trainer => 1
manicure => 1
spa => 0

看着这个,我们意识到文本应该属于美。

现在我的问题是: 1-如何通过给定输入以及与类别相关联的标记数组来以编程方式确定此文本属于哪个类别? 这是一个好主意吗?有更优雅的方式吗?

2-这是一个很好的方法吗?还是有更好的算法?我想在处理这个问题时可能会有类似lucene或更智能的算法。

1 个答案:

答案 0 :(得分:1)

如果你可以定义类,基于朴素贝叶斯的方法可以完成这项工作。它是常用的分类器之一。

如果你想自动定义程序定义的类,那么现在没有什么工作正常。