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

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

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

【问题讨论】:

    标签: machine-learning nlp data-mining cluster-analysis


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你知道这在 scikit 的 TfidfVectorizer 中是如何实现的吗?
    • @pnsilva:到底是什么?忽略新术语是TfidfVectorizer.transform 所做的;功能散列是您真正的work in progress;不直接支持第三种可能性。
    猜你喜欢
    • 2019-09-01
    • 1970-01-01
    • 2020-01-31
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    相关资源
    最近更新 更多