python-3.x - Python:聚类搜索关键字
问题描述
对于数据集中的每个产品,我都有很多“搜索关键字”。我尝试根据产品的“搜索关键字”对产品进行聚类。
我想要做的是将这些关键字聚集成“相似含义”的集群,并创建集群的层次结构(按每个集群的搜索总数的顺序排列)。
一个示例集群 - “女装” - 理想情况下包含以下关键字:女装、1000 件女装、300 件女装、50 件女装、6 件女装、2。
我是 NLP 的初学者。对于这项任务,您对 NLP 技术有什么建议吗?任何帮助将不胜感激:-)
解决方案
我建议使用一些预训练的词向量,例如fastText,这样您就不必担心训练和训练数据。你需要做什么:
- 预处理您的标签:标记您的标签:
women's clothing
->["women's", "clothing"]
。看这里 - 词形还原:
["women's", "clothing"]
->["woman", "clothing"]
看这里 - 计算每个单词的向量:
vec1 = model.get_word_vector("woman")
- 平均给定标签的所有向量:
avg= (vec1 + vec2)/2
这些平均向量应该代表您的标签。和的平均向量 应该与woman
和的平均值在同一区域内。另一方面,和的平均向量应该位于向量空间中的不同区域,因此您首选的聚类算法应能捕捉到它。clothing
woman
wear
man
clothing
推荐阅读
- html - 无法使用 CSS 中的动画滚动第二个段落
- android - 用于 AndroidTest 的 Kodein 覆盖绑定
- c - 在 _generic 宏中避免“警告:从不同大小的整数转换为指针 [-Wint-to-pointer-cast]”
- python - 在 Python 中使用 Matplotlib 更新 PDF 元数据的 CreationDate 和 ModificationDate 字段的问题
- python - 无法访问谷歌云计算引擎外部 IP 来访问烧瓶应用
- macos - 如何从文件夹中打开mac中的终端
- swift - 接收上一屏 Swiftui 发送的数据
- sql - 计算一个值相同但另一个值不同的情况的数量
- python - Scrapy:如何抓取由两部分组成的产品价格?
- javascript - 验证时在 span 元素中显示错误消息的问题