标准化餐厅菜品列表

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

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

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

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

谢谢


回答:

你可以查找TFIDF余弦相似度

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

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

你打算将哪两者合并?

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

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

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

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

更新:

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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