标准化餐厅菜品列表

我有一大组餐厅菜品数据(例如,“拉猪肉”,“牛腩”…)

我试图对这些菜品进行“标准化”(这个词用得不准确),我想让“拉猪肉”、“拉猪肉三明治”和“巨型猪肉滑块”都映射到一个单一的菜品,“拉猪肉”。

到目前为止,我已经开始使用Python的NLTK,并尝试了一些频率分布等功能,玩得很开心。

有没有人有解决这个问题的总体策略?或许有一些我可以搜索的关键词?

谢谢


回答:

你可以查找TFIDF余弦相似度

然而,这其中有一些具有挑战性的情况。假设你有以下三种菜品:

  • 拉猪肉
  • 拉蛋
  • 蛋三明治

你打算将哪两者合并?

  • 拉猪肉和拉蛋
  • 拉蛋和蛋三明治

使用TFIDF,你可以找到最具代表性的词。例如,词三明治可能出现在许多菜品中,因此不那么代表性。(金枪鱼三明治、蛋三明治、奶酪三明治等)将金枪鱼三明治和奶酪三明治合并可能不是一个好主意。

在你获得TFIDF向量后,你可以使用余弦相似度(使用TFIDF向量)并可能设置一个静态阈值,来决定是否合并它们。

还有另一个问题会出现:当你匹配时,你打算如何命名它们?(拉蛋还是蛋三明治?)

更新:

@[隐藏人名]建议在获得相似度/不相似度值后使用聚类。我认为这是一个好主意。你可以首先使用余弦相似度和TFIDF向量创建你的nxn距离/相似度矩阵。在你获得距离矩阵后,你可以使用聚类算法对它们进行聚类。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注