Machine learning 根据“经验”将数据分为两类?

Machine learning 根据“经验”将数据分为两类?,machine-learning,artificial-intelligence,Machine Learning,Artificial Intelligence,假设我有一整套文本格式的菜谱,而事先对它们一无所知。我必须将这些数据分为“烘焙食品配方”和“其他配方” 对于烘焙食品,食谱的摘录可能会这样读: 将面粉加入搅拌碗,然后加入两个打好的鸡蛋,一撮盐和发酵粉 这些都是由不同的作者写的,所以语言和词汇不一致。我需要一个算法,或者更好的是,一个现有的机器学习库实现语言不是一个我可以“教”来区分这两种配方的问题 例如,我可能会向它提供一套我知道的烘焙食品配方,它将能够对这些配方进行分析,以获得对其提供的新配方是否属于这一类别进行评估的能力 得到正确的答案并不

假设我有一整套文本格式的菜谱,而事先对它们一无所知。我必须将这些数据分为“烘焙食品配方”和“其他配方”

对于烘焙食品,食谱的摘录可能会这样读:

将面粉加入搅拌碗,然后加入两个打好的鸡蛋,一撮盐和发酵粉

这些都是由不同的作者写的,所以语言和词汇不一致。我需要一个算法,或者更好的是,一个现有的机器学习库实现语言不是一个我可以“教”来区分这两种配方的问题

例如,我可能会向它提供一套我知道的烘焙食品配方,它将能够对这些配方进行分析,以获得对其提供的新配方是否属于这一类别进行评估的能力

得到正确的答案并不重要,但应该相当可靠。在研究了这个问题之后,我很清楚,我的AI/ML词汇表不够广泛,不足以让我完善我的搜索


有人能推荐一些库、工具甚至概念/算法来帮助我解决这个问题吗?

您想要的是异常/异常检测

在您的示例中,烘焙食品是您感兴趣的数据,任何看起来与您以前看到的不是烘焙食品的东西都是异常值/异常值

scikit learn为此提供的方法数量有限。另一种常用的方法是计算数据点之间的平均距离,然后任何大于平均值+c*标准偏差的新值都被视为异常值


还有更复杂的方法

您可以尝试基于案例的推理

提取将食谱归入烘焙食品类别的特定单词或短语。如果它不在那里,它一定在其他食谱中

你可以聪明地添加单词集{},这样你就不需要寻找短语了。 为每个单词添加权重,如果超过某个值,则将其放入烘焙

所以{烤箱=>10,面粉=>5,鸡蛋=>3}

我的理由是,如果它进入烤箱,很可能会被烤熟。如果你想区分烘焙蛋糕和烘焙蛋糕,这需要调整。同样地,面粉和将要烘焙的东西有联系,就像鸡蛋一样

添加配对{打蛋=>5}注意这与短语{打蛋=>10}不同,配对中最差的可能出现在配方中的任何地方

负片{在冰箱里冷藏=>-10}

否定词{粉尘=>-粉}


absolutes{bake in the oven=>10000}只是说{bake in oven=>it is a baked good}的一种方式,因为这个数字太高了,它本身就超过了阈值。

这个答案让我开始研究SVM,特别是建立在其核心上的SVM。使用Composer软件包,只需提供已知的示例,就可以训练SVM识别烘焙食品和非烘焙食品之间的差异。