假设我有一整套文本格式的食谱,事先对它们一无所知。我必须将这些数据分为“烘焙食品食谱”和“其他食谱”。
对于烘焙食品,食谱中的一个片段可能是这样的:
“将面粉加入搅拌碗中,然后加入两个打好的鸡蛋、一撮盐和发酵粉……”
这些食谱由不同的作者撰写,因此语言和词汇不一致。我需要一个算法,或者更好的是一个现有的机器学习库(实现语言不重要),我可以“教”它区分这两种类型的食谱。
例如,我可以提供一组我知道是烘焙食品的食谱,它可以分析这些食谱,以便获得判断新食谱是否属于此类别的能力。
得到正确答案并不关键,但应该相当可靠。经过研究这个问题,我清楚地意识到我的AI/ML词汇还不够丰富,无法让我进一步细化搜索。
有谁能建议一些库、工具甚至是概念/算法,让我能够解决这个问题?
回答:
你寻找的是异常/离群值检测。
在你的例子中,“烘焙食品”是你感兴趣的数据,任何看起来不像你之前见过的(不是烘焙食品)的都是异常/离群值。
scikit learn 有一些用于此目的的方法。另一种常见的方法是计算数据点之间的平均距离,然后任何新的数据点如果距离大于平均值 + c*标准差,就被认为是离群值。
还有更复杂的方法存在。