gpt4 book ai didi

scikit-learn - 使用 TfidfVectorizer 进行 n 元向量化

转载 作者:行者123 更新时间:2023-12-02 09:47:31 25 4
gpt4 key购买 nike

我正在使用TfidfVectorizer具有以下参数:

smooth_idf=False, sublinear_tf=False, norm=None, analyzer='word', ngram_range=(1,2)

我正在矢量化以下文本:“红色太阳,粉色糖果。绿色花。”

这是 get_feature_names() 的输出:

['candy', 'candy green', 'coffee', 'flower', 'green', 'green flower', 'hate', 'icecream', 'like', 'moon', 'pink', 'pink candy', 'red', 'red sun', 'sun', 'sun pink']

既然“candy”和“green”是独立句子的一部分,为什么要创建“candy green” n-gram?

有没有办法防止创建 n-gram 产生多个句子?

最佳答案

取决于您如何将其传递给 TfidfVectorizer!

如果作为单个文档传递,TfidfVectorizer 将仅保留包含 2 个或更多字母数字字符的单词。标点符号被完全忽略并始终被视为标记分隔符。所以你的句子变成:

['red', 'sun', 'pink', 'candy', 'green', 'flower'] 

现在,从这些标记中生成 ngram。

由于 TfidfVectorizer 是一种词袋技术,处理文档中出现的单词,因此它不会保留有关单个文档中单词的结构或顺序的任何信息。如果您希望将它们分开处理,那么您应该自己检测句子并将它们作为不同的文档传递。

或者,将您自己的分析器和 ngram 生成器传递给 TfidfVectorizer

有关 TfidfVectorizer 实际工作原理的更多信息,请参阅我的其他答案:

关于scikit-learn - 使用 TfidfVectorizer 进行 n 元向量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52120580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com