关于半监督自动标记的实施建议

时间:2014-10-21 14:45:51

标签: machine-learning artificial-intelligence topic-modeling

我想知道开发自动标记系统有哪些方法。我正在构建一个公司内部反馈平台,我们的业务用户希望在帖子中添加标签。我想构建一个系统,在用户发布时向用户建议标记,允许用户更正建议并让系统从这些建议中学习。我们最初想要使用几个标签,但允许用户根据需要添加更多标签。

我知道LDA算法和Kea / Mallet,但这些似乎是不完整的解决方案。我想将我们的预定义标签添加到现有帖子中,然后将其作为系统向前推进的指南。

只是寻找有关如何进行的一些建议。一个问题是数据集目前非常小(约90个帖子)。

谢谢!

1 个答案:

答案 0 :(得分:1)

对于这个确切的问题,我写了一篇博士论文,我称之为生成AI。既然你可能不打算阅读论文,这里就是针对这类问题的通用算法:

1) 规范化数据:确定范围介于0和1之间,如果有数字,则确定-1和1;如果您的单词/名称仅使用小写(或仅使用大写);如果你有两者,将数据分成数字和其他标签,并使其成为一个多分类系统。

2) 使用KNN(K-最近邻居)直到类别变得足够大(通常对于类/类别中的前几百个项目,您可以使用KNN)。尝试不同的设置以优化结果。使用K(通常我使用范围1到21,总是不均匀的数字)和距离功能进行游戏。 Scipy具有易于使用的不错实现。

此外,使用标签的排名来影响决策。例如,如果您的K为11,那么您获得的第一个项目所有标签都会得到11分。第二项标签获得10分等。然后收集标签并根据标签得到的点数显示最佳(N)标签。

然后向用户显示标签,以便用户可以提供反馈,系统可以自行更新。显示更多标签的优点是用户必须输入更少的标签。

3)一旦你有足够的项目,你应该用支持向量机器替换KNN算法。线性支持向量机通常都足够好。对于(线性)支持向量机的优化,使用参数的网格搜索。


基本思想是你有一个系统产生假设(在这种情况下为标签),并且用户通常在生产系统中提供反馈,以便AI可以自我优化。

如果您对此非常感兴趣,请参阅我的博士论文:

的https:/irs.ub.rug.nl/dbi/4c86122381f79

目前我将它用于实时学习的机器人......