推荐系统中的产品聚类:一种文本聚类的方法

文本聚类教程 本人曾做机器学习方向,由于实习需要转做文本聚类、分类的工作,虽然大致相似,但仍是新手,过程和结果也仅供大神指教。本博包含了作者两周的专心研究调试及由数千行测试得到了300余行代码精华,如需转载,请注明出处。 什么是文本聚类? 文本聚类是将一个个文档由原有的自然语言文字信息转化成数学信息,以高维空间点的形式展现出来,通过计算那些点距离比较近来将那些点聚成一个簇,簇的中心叫做簇心。一个 阅读详情

作者:Dimitris Apostolopoulos

编译:ronghuaiyang

导读

给大家介绍一下推荐系统中的产品聚类方法。

之前有一篇文章,推荐系统之路,介绍了推荐系统的一些基础知识,并用矩阵分解的方法实现了一个基础的推荐系统,今天接下来后面的内容。

在上一篇文章中,我把我的船驶向了"推荐系统"的岛屿,但是由于矩阵系统的性能问题,我的船受到了严重的伤害。

因此,现在,在接下来的文章中,我将一个接一个地找出每一个问题,并尝试修复它们(剧透警告:最后一切都会得到修复)。

让我们从中断的地方快速浏览一下。

“疼痛定位”:找出问题所在

正如本系列文章的第一部分中所描述的,我们面临的问题之一是:我们上一篇文章中的交互矩阵太大,无法度量。这是由于我们收集了大量的数据,其中包含重复的信息,因为相同的产品或类似的产品可以在不同的商店中找到。

换句话说,如果你销售耳机,而你的三个竞争对手也在销售同一品牌的耳机,那么你的矩阵上就会有重复的产品,这就会毫无理由地减慢你的速度。

这就是为什么本文的目的是实现相同或非常相似的产品的跨店标识。

“仔细看看”:合并信息

我们将使用数据集提供的产品信息(即产品代码、产品标题、产品 URL 和产品价格)。

现在,每家商店都使用自己的内部系统来跟踪产品。因此,每个商店的产品代码都是独一无二的。

更糟糕的是,我们也不能依赖产品价格,因为不同的商店价格不同。

这给我们留下了两个选项:产品标题和产品 URL。

如果一个人可以做一个从网站页面上拉取数据的网页采集器话,产品的 URL 可以是一个很好的信息来源,但是,由于 HTML 是“无结构”的,我们不能有这样一个网页采集器可以对每个网站都适用。

这样就只剩下一个选项,即整个聚类中只使用产品标题。

“做作业”:文本预处理

什么是预处理?

文本预处理是指文本在输入到算法之前必须进行的所有调整。

遵循这些文本聚类预处理的步骤

我们对数据进行预处理的步骤如下:

  • 首先,我们识别品牌并将它们从标题中移除,这样我们只剩下产品名称。

  • 然后,我们删除描述颜色的词,以减少数据的噪音,因为,在这一点上,我们想要根据颜色来分类产品。例如,我们想创建一个类别“黑色匡威全明星鞋 10”和另一个类别“白色匡威全明星鞋 10.5”。

  • 之后,我们从标题中删除了数字和度量单位(如果有的话),因为我们想创建具有非常相似产品的组,比如“Cola 330ml”和“Cola 500ml”。

  • 最后,我们对单词进行词干处理,也就是说,去掉单词的后缀以找到一个共同的词根,同时去掉所有的停止词。

  • 为了将标题数据输入到算法中,我们将数据转换为向量。为了实现这一点,我们使用了两个不同的向量转换器:CountVectorizer,它创建了只有{0,1}的二进制向量,以及tf-idf 向量转换器,它根据单词在所有向量中的频率为所有单词分配权重。在本例中,我们使用两个向量转换器来找到对我们更有效的那个。

继续:文本聚类

什么是文本聚类?

文本聚类是在未标记的数据中生成组的过程。在大多数聚类技术中,组的数量是由用户预定义的,但是在这种情况下,聚类组的数量必须动态变化。

我们可以有包含单个产品的聚类,也可以有包含 10 个或更多产品的聚类,这个数字取决于我们能找到多少类似的产品。

我们的需求减少了我们的选择。DBSCAN 是一种基于密度的算法,它依赖于向量之间的距离,从而创建组。

DBSCAN 生成的组:

为什么 DBSCAN 不能正确地对数据聚类?

产品的标题是一个很短的句子(1-5 个单词)。然而,我们创建的向量非常大,因为来自数据集中的所有唯一的单词组成了词汇表。词汇表的长度就是向量的长度,因此我们失去了所有的信息。

降维技术,诸如 PCA 和 SVD 之类的不能帮助解决这个问题,因为转换矩阵的每一列都代表一个单词。

因此,当你删除一些列时,你将删除许多产品。

由于现有的解决方案不能正常工作,我们决定构建一个自定义的聚类流程,旨在找到问题的解决方案。

训练向量生成器

当你训练一个向量生成器时,它将学习到给定句子包含的单词。

例如,当被给予““Nike Capri Shoes”时,向量生成器只学习这三个词。这意味着当你对其他产品进行变换时,除了那些包含一个或所有单词的向量,其他变换出来的向量都是 0。

为了找出两个向量有多相似,我们测量它们基于欧氏距离的相似度。要把两个单词归到同一组里,这两个单词之间的相似度必须高于我们的阈值。我们生成的组称为categories。

把我们的数据想象成一大桶产品。categories 是有用的,因为它们创建了包含我们可以处理的相关数据的小桶。

现在,我们通过使用更高的阈值再次运行相同的进程来为每个 bucket 创建子类别,并创建子类别。子类别是我们将使用的最终的组。

换档:提高速度的小窍门

整个过程有点耗时。为了节省时间,我们会进行所有的文本预处理步骤,但是除了向量化。

之后,我们根据标题中包含的单词数对数据进行排序,因此只有一个单词的标题将位于列表的顶部,而单词最多的标题位于列表的底部。

这样,一个词的标题将构成我们的大多数类别,减少我们处理的数据量。

—END—

英文原文:https://medium.com/moosend-engineering-data-science/product-clustering-a-text-clustering-approach-c392c2ef4310

NLP深入学习(三):TF-IDF 详解以及文本分类/聚类用法 本文主要介绍nlp相关的tf-idf详细用法,包含文本分类、文本聚类等。 阅读详情

相关推荐

文本话题聚类(Kmeans/LDA)

K-means 1 聚类是一种无监督的学习方法。聚类区别于分类,即事先不知道要寻找的内容,没有预先设定好的目标变量。 2 聚类将数据点归到多个簇中,其中相似的数据点归为同一簇,而不相似的点归为不同的簇。相似度的计算方法有很多,具体的应用选择合适的相似度计算方法。 3 K-means聚类算法,是一种广泛使用的聚类算法,其中k是需要指定的参数,即需要创建的簇的数目,K-means算法中的k个簇的...

数据之心-小赵 1万+

[学习]探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类

赵 晨婷, 软件工程师, IBM 马 春娥, 软件工程师, IBM 简介: 智能推荐大都基于海量数据的计算和处理,然而我们发现在海量数据上高效的运行协同过滤算法以及其他推荐策略这样高复杂的算法是有很大的挑战的,在面对解决这个问题的过程中,大家提出了很多减少计算量的方法,而聚类无疑是其中最优的选择之一。 聚类 (Clustering) 是一个数据挖掘的经典问题,它的目的是将数据分为多个簇 (Cluster),在同一个簇中的对象之间有较高的相似度,而不同簇的对象差别较大。聚类被广泛的应用于数据处理和统计分析

wenlele的专栏 1482

推荐系统学习笔记——九、推荐系统实现用户聚类推荐

九、推荐系统实现用户聚类推荐 聚类分析(Cluster analysis),亦称为群集分析,是一种数据点分组的机器学习技术。给定一组数据点,可以用聚类算法将每个数据点分到特定的组中 推荐思路:将用户进行聚类,给每个聚类推荐该类人群喜欢的内容 实现用户聚类推荐的技术流程: 几个步骤: 用户聚类 → 分群热榜统计 → 计算结果缓存 → 在线服务 前两步的结果都会存入到高速缓存,然后在线服务使用缓存...

Lynnzxl的博客 4199

天池数据分析达人赛3:汽车产品聚类(含代码)

汽车产品的聚类可以很好的通过参数将品牌进行区分,如果是以竞品为目的,需要从价格出发,选取相应特征进行聚类,在对类别下的竞品进行筛选,进行更加精准的汽车画像定位。

weixin_46685991的博客 5067

数据处理和分析之数据聚类:SpectralClustering:谱聚类在推荐系统中的应用

谱聚类是一种强大的数据聚类方法,它利用图论和拉普拉斯矩阵的特性来处理数据。通过将数据点视为图中的节点,并利用节点之间的相似性构建图,谱聚类能够有效地处理非凸形状的数据集。在推荐系统中,谱聚类可以用于用户或项目的分组,从而提供更精准的推荐。通过上述步骤和示例,我们可以看到谱聚类在数据处理和分析中的应用价值。拉普拉斯矩阵的计算和特征值、特征向量的分析是谱聚类算法的核心。通过构建图的拉普拉斯矩阵,并对其进行特征分解,我们可以揭示数据集中的聚类结构,这对于推荐系统中的用户或项目分组具有重要意义。

2401_87715305的博客 1098

基于LLM的推荐系统用户兴趣分层与聚类

《基于LLM的推荐系统用户兴趣分层与聚类》 关键词: 推荐系统、用户兴趣分层、聚类、LLM、人工智能 摘要: 本文探讨了基于大型语言模型(LLM)的推荐系统中用

AI天才研究院 1038

【算法竞赛学习】数据分析达人赛3:汽车产品聚类分析

赛题背景 赛题以竞品分析为背景,通过数据的聚类,为汽车提供聚类分类。对于指定的车型,可以通过聚类分析找到其竞品车型。通过这道赛题,鼓励学习者利用车型数据,进行车型画像的分析,为产品的定位,竞品分析提供数据决策。 赛题数据 数据源:car_price.csv,数据包括了205款车的26个字段 https://tianchi.aliyun.com/competition/entrance/531892/information 赛题任务 选手需要对该汽车数据进行聚类分析,并找到vokswagen汽车的相应竞品。要

qq_41807261的博客 1万+

自然语言处理中的文本聚类:揭示模式和见解

在自然语言处理(NLP)领域,文本聚类是一种基本且通用的技术,在信息检索、推荐系统、内容组织和情感分析等各种应用中发挥着关键作用。文本聚类是将相似文档或文本片段分组为簇或类别的过程。这项技术使我们能够发现隐藏的模式、提取有价值的见解并简化大量非结构化文本数据。

gongdiwudu的专栏 4678

利用聚类算法提高推荐系统的准确性

1.背景介绍 推荐系统是现代互联网企业的核心业务之一,它通过对用户的历史行为、兴趣和需求等信息进行分析,为用户提供个性化的推荐。随着数据量的增加,传统的推荐算法已经不能满足现实中的需求,因此需要开发更高效、准确的推荐算法。 聚类算法是一种无监督学习方法,它可以根据数据点之间的相似性自动将数据划分为不同的类别。在推荐系统中,聚类算法可以用于用户和物品之间的关系建模,从而提高推荐系统的准确性。 ...

AI天才研究院 730

基于深度学习的文本聚类

1. 背景介绍 1.1 文本聚类的意义 文本聚类是自然语言处理领域中的一个重要任务,其目标是将一组文本按照其语义相似性进行分组。这项技术在信息检索、主题提取、文档摘要、推荐系统等领域有着广泛的应用。例如,在新闻网站中,可以利用文本聚类将同一主题的新闻文章归类在一起,方便用户浏览;在电商平台中,可以利用

AI架构师小马 1183

评论挖掘中产品特征的聚类

In sentiment analysis of productreviews, one important problem is to produce a summary of opinions based on product features/attributes (also called aspects). However, for the same feature, people can express it with many different words or phrases. To produce a useful summary, these words and phrases, which are domain synonyms, need to be grouped under the same feature group. Although several methods have been proposed to extract product features from reviews, limited work has been done on clustering or grouping of synonym features. This paper focuses on this task. Classic methods for solving this problem are based on unsupervised learning using some forms of distributional similarity. However, we found that these methods do not do well. We then model it as a semi-supervised learning problem. Lexical characteristics of the problem are exploited to automatically identify some labeled examples. Empirical evaluation shows that the proposed method outperforms existing state-of-the-art methods by a large margin.

matlab对手写数字聚类的方法_推荐系统中的产品聚类:一种文本聚类的方法

作者:Dimitris Apostolopoulos编译:ronghuaiyang导读给大家介绍一下推荐系统中的产品聚类方法。之前有一篇文章,推荐系统之路,介绍了推荐系统的一些基础知识,并用矩阵分解的方法实现了一个基础的推荐系统,今天接下来后面的内容。在上一篇文章中,我把我的船驶向了"推荐系统"的岛屿,但是由于矩阵系统的性能问题,我的船受到了严重的伤害。因此,现在,在接下来的文章中,我将...

weixin_39939668的博客 212

阿里云-天池数据分析竞赛:汽车产品聚类分析

1. 项目背景 基于项目提供的汽车相关数据,通过聚类分析的方法实现汽车产品聚类,以构建汽车产品画像、分析产品定位、完成汽车竞品分析等要求。 2. 项目数据 项目提供的汽车数据包括26个字段共205条数据,数据文件为“car_price.csv” 26个字段可以划分为类别型变量和数值型变量两种,包括汽车的长/宽/高、汽车净重、燃油系统、燃油类型、驱动类型、峰值转速、里程数、汽车价格等。 3. 项目要求 通过聚类的方法构建汽车产品画像、分析不同类别汽车的产品定位,寻找Volkswagen大众汽车的竞品品牌。 4. 项目思路 第一步:数据字段理解 根据项目所提供的数据,对数据中26个字段进行理解。结合汽车行业的相关知识,26个字段可以大致归为两类:第一类是车辆自身属性(如燃油系统、燃油类型、汽缸数、峰值转速、汽车长宽高等);第二类是车辆的市场属性(如车辆名称、车辆价格、风险评估等级)。 26个字段主要分为数值型变量和类别型变量两类。 第二步:原始数据描述性统计及变量分布可视化 对原始数据进行描述性统计并对数据中的字段分布进行可视化(详情见主文档)。通过对原始数据的观察,数据不存在缺失值、不存在重复值,“CarName”字段存在部分车辆品牌名称错误的情况。 第三步:确定聚类方法,明确聚类要求 通过对原始数据的变量观察,该数据变量主要为数值型变量和类别型变量两类,且类别型变量数量较多,常用的K-means聚类只能分析数值型变量,无法考虑类别型变量所包含的信息。二阶段聚类法适用于包含数值型和类别型变量的混合数据,因此考虑使用二阶段聚类法分析数据。 二阶段聚类法的要求是:类别型变量符合多项式分布(即变量的值分属几个类别);数值型变量间要相互独立,且数值型变量近似服从正态分布。项目所给出的数据中,类别型变量符合多项式分布,因此仅需进一步观察并处理数值型变量。 第四步:特征工程 数据清洗与新变量生成。原始数据指给出了车辆的名称,没有给出车辆所属品牌,结合最终聚类分析的需要,根据“CarName”字段提取出车辆所属品牌信息,命名为“brand”。同时对品牌名称中的错误拼写进行清洗。 变量相关性分析与可视化。由于二阶段聚类要求数值型变量间相互独立,所以需要对数值型变量间的相关性进行查看与处理。相关性分析结果表示14个数值型变量之间存在高相关性情况,需要结合汽车知识背景与变量特征进行进一步处理。 高相关变量的处理——“highwaympg”和“citympg”呈高度正相关。其实不管是高速mpg还是城市mpg,其本质都是mpg指标,而且通过观察数据,二者之间的差异较小(极值、均值),因此考虑将二者合并为一个指标'mpg',计算方式为取二者均值:mpg=(highwaympg+citympg)/2; 高相关性变量的处理——“price”变量与其余变量产生高相关性的频数最多,可能是因为车辆自身属性和配置的变动会直接影响着车辆的市场价格。此外,与其他变量相比,price属性属于车辆的市场销售属性(而非车辆自身属性),在聚类中更适合作为类别型变量,对车辆的价位进行划分,因此,考虑将price变量转换为类别型变量,按照其价格分布划分为Low price(20000)三类; 高相关性变量的处理——对于其余数值型变量,变量数目较多且多个变量之间存在相关性,因此考虑使用因子分析对数值型变量进行降维,以减少数值型变量的数目并使变量间相互独立。 第五步:数值型变量因子分析结果(基于SPSS实现) 利用SPSS对数值型变量进行因子分析,KMO值>0.8,巴特利球形检验p值=0,说明参与因子分析的变量间存在相关性,可以进行因子分析。最终得到两个因子。 第一个因子包括:车长、车宽、车净重、引擎尺寸、车轴距、mpg、马力、车内径比。简单将该因子归纳为车辆截面与马力因子; 第二个因子包括:车高、峰值转速、车压缩比。简单将该因子归纳为车辆垂面与转速因子; 第六步:两阶段聚类及结果(基于SPSS实现) 对处理后的数据进行两阶段聚类,最终将205辆车聚为两类。 根据SPSS聚类结果,第一类中包含120条车辆数据,占总数据的58.5%;第二类中包含85条车辆数据,占总数据的41.5%。两类簇数据规模近似,没有过大或过小的类簇。 根据SPSS聚类结果,聚类质量属于“良好”范围,仍有进一步改进和优化的空间。 根据SPSS聚类结果,显著区分两类类簇的变量(重要性>0.6)按重要性大小排序依次是驱动类型、燃油系统、车辆截面与马力因子、价格范围。 汽车产品画像与产品定位 根据区分类簇的四个重要标签来对数据中的汽车产品进行产品画像与产品定位。 第一类画像:驱动类型多为fwd(前轮驱动),燃油系统多

六种常用的文本聚类算法介绍

文本聚类算法介绍 分类和聚类都是文本挖掘中常使用的方法,他们的目的都是将相似度高的对象归类,不同点在于分类是采用监督学习,分类算法按照已经定义好的类别来识别一篇文本,而聚类是将若干文本进行相似度比较,最后将相似度高的归为一类。在分类算法中,训练集为已经标注好的数据集,但是微博文本具有的大数据特性及不确定性决定了标注数据的难度,因此本文选择聚类算法对大量且随机的微博文本进行处理。 大量文本建模后还需要对主题分布进行聚类以得到更精确简洁的话题,因此文本聚类在话题检测技术中具有重要意义。聚类是一种无监督学习方

Frank330的博客 1万+

从零到一:RT-Thread与W5500的硬件抽象层设计哲学与实践启示

本文深入探讨了RT-Thread操作系统下W5500以太网模块的硬件抽象层(HAL)设计哲学与实践。通过GD32F103和STM32F103平台的适配案例,详细阐述了如何利用RT-Thread的驱动框架实现跨平台硬件无关性、模块化设计及配置定制,为嵌入式开发者提供了可复用的HAL设计方法论和实战经验。

7z8x2c4v6b9的博客 197

uni-app刮奖

uni-app的刮奖效果,要注意的点: 1.小程序的canvas层级问题(可用cover-view规避) 2.不能操作dom 以下是uni-app刮奖效果的代码: <template> <!-- 刮奖 --> <view v-else class="scratch"> <view class="box"> &lt...

qq_40101922的博客 4307

自然语言处理系列五十四》文本聚类算法》K-means文本聚类算法原理

【配套新书教材】《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。

weixin_52610848的博客 1683

jason-2卫星介绍及其数据下载

两台仪器发射脉冲宽度均为105.6μs,带宽320MHz(C频段)和320/100MHz(Ku频段),脉冲重复频率1800Hz(Ku频段)和300Hz(C频段),功率78W,数据传输速率22.5kbit/s。共发射了3颗卫星(Jason - 1/2/3),星上有效载荷均主要为雷达高度计和微波辐射计。Jason - 1卫星主要有效载荷为波塞冬 - 2和“贾森微波辐射计”,Jason - 2卫星进行了改进,主要携带了波塞冬 - 3和先进微波辐射计,此外,Jason - 2卫星还携带了“多里斯”系统。

beautyaaaa的博客 1605

聚类算法的推荐系统:如何提高推荐质量

1.背景介绍 推荐系统是现代互联网企业的核心业务之一,它通过分析用户行为、内容特征等信息,为用户推荐相关的内容、商品或服务。随着数据量的增加,传统的推荐算法已经无法满足业务需求,因此需要更高效、准确的推荐算法。聚类算法是一种常用的推荐系统算法,它可以根据用户行为、内容特征等信息,将用户、商品等分为不同的类别,从而提高推荐系统的质量。 在本文中,我们将介绍聚类算法的推荐系统的核心概念、算法原理、...

AI天才研究院 1141

倾斜摄影与激光点云融合建模:Photoscan+ContextCapture避坑指南

本文详细解析了倾斜摄影与激光点云融合建模的技术流程,重点介绍了使用Agisoft Metashape(原Photoscan)与ContextCapture进行数据融合的实战指南。文章深入探讨了数据预处理、坐标系统一、空三计算策略及在ContextCapture中进行点云配准等关键步骤,旨在帮助从业者规避常见陷阱,高效构建兼具高精度几何与真实纹理的三维实景模型。

weixin_29062613的博客 249

Windows下PaddleOCR GPU版环境搭建全攻略(含CUDA 11.7避坑指南)

本文提供了一份详尽的Windows平台PaddleOCR GPU版环境搭建指南,重点涵盖CUDA 11.7与cuDNN的版本匹配、环境变量配置及常见避坑方法。通过使用Conda创建虚拟环境并安装匹配的PaddlePaddle-gpu版本,最终实现GPU加速的OCR推理,帮助开发者构建稳定高效的开发环境。

docker7nomad的博客 751

K-means聚类与推荐系统笔记

目录 K-means聚类 监督学习和无监督学习: means 聚类原理简述 实例演示: 总结: 聚类推荐系统 推荐引擎 协同过滤算法基础的强预设: 基于协同过滤的推荐,又分三个子类: 协同过滤推荐几个要点 聚类推荐 聚类协同过滤推荐的优点: 例:基于用户聚类推荐 几个步骤: 用户聚类 分群热榜统计 聚类结果: 分群热榜统计结果: 在线服务 聚类推荐的优缺点 优点 缺点: K-means聚类 聚类:事先不知道数据会分为几类,通过聚类分析将数据聚合成几个群体。聚类

weixin_52953225的博客 4622

Windows Docker Desktop部署MaxKB详细教程

MaxKB(Max Knowledge Base)是一款基于大语言模型(LLM)和检索增强生成(RAG)技术的开源知识库问答系统,旨在帮助企业、教育机构及研究组织高效管理知识并提供智能问答服务。

猿小白的博客 1372
上一篇: Datawhale一周年,生日快乐!
下一篇: 从事Python三年,一直认为Python就写写爬虫最方便,直到我学习了这些公众号,发现还有更多作用!...
Wang_AI
博客等级 码龄12年 988粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值