代码之家  ›  专栏  ›  技术社区  ›  leon

使用tfidf矢量器的n-gram矢量化

  •  1
  • leon  · 技术社区  · 6 年前

    我正在使用 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']
    

    “自” 糖果 “和” 绿色 “糖果绿” 创建了n-gram?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Vivek Kumar    6 年前

    TfidfVectorizer !

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

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

    现在从这些令牌生成ngram。

    如果你想把它们分开处理,那么你应该自己检测句子,并把它们作为不同的文件传递。

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

    有关tfidfvectorizer实际工作方式的更多信息,请参阅我的另一个答案: