向词袋模型添加新术语

Posted

技术标签:

【中文标题】向词袋模型添加新术语【英文标题】:Adding new terms to a bag-of-words model 【发布时间】:2012-06-17 10:00:15 【问题描述】:

我正在使用 k-means 聚类对一组新闻项目进行分组。我使用词袋模型来表示文档,更具体地说,每个文档都表示为词频向量。

我的问题:如何添加新文档而无需重新计算所有术语频率向量(看到包含所有文档的所有术语的词汇表会改变)?

【问题讨论】:

【参考方案1】:

简单的解决方案是使用您已经看过的文档中的词汇,忽略任何新术语;这是文档分类的惯例。

近年来流行的另一种解决方案是完全放弃词汇并使用feature hashing。

第三种可能性是在特征向量中为将来的术语保留空间。例如,假设您正在对一组具有大小为 N 的词汇表的文档进行向量化,然后您实际上将它们转换为大小为 N + K 的向量em>,最后的 K 最初设置为零,因此您以后最多可以将 K 个术语添加到词汇表中。

(直接在哈希表上计算点积、均​​值等可能不是解决方案。这将是最灵活的方法,但通常非常很慢。)

【讨论】:

你知道这在 scikit 的 TfidfVectorizer 中是如何实现的吗? @pnsilva:到底是什么?忽略新术语是TfidfVectorizer.transform 所做的;功能散列是您真正的work in progress;不直接支持第三种可能性。

以上是关于向词袋模型添加新术语的主要内容,如果未能解决你的问题,请参考以下文章

如何缩小词袋模型?

向产品属性添加新术语并将其设置在 Woocommerce 中的产品中

合并相同标题下的术语,除非新 = 创建新标题 Wordpress 查询

将新文档添加到术语文档矩阵以进行相似度计算

Drupal 7 - 显示图像代替分类术语

机器学习术语