gpt4 book ai didi

scikit-learn - 将 token 传递给 CountVectorizer

转载 作者:行者123 更新时间:2023-12-04 03:57:53 25 4
gpt4 key购买 nike

我有一个文本分类问题,我有两种类型的特征:

  • n-gram 的特征(由 CountVectorizer 提取)
  • 其他文本特征(例如,来自给定词典的单词的存在)。这些特征与 n-gram 不同,因为它们应该是从文本中提取的任何 n-gram 的一部分。

  • 这两种类型的特征都是从文本的标记中提取的。我只想运行一次标记化,然后将这些标记传递给 CountVectorizer 和其他存在特征提取器。所以,我想将 token 列表传递给 CountVectorizer,但只接受一个字符串作为某些样本的表示。有没有办法传递一组 token ?

    最佳答案

    总结@user126350 和@miroli 的回答以及这个link :

    from sklearn.feature_extraction.text import CountVectorizer

    def dummy(doc):
    return doc

    cv = CountVectorizer(
    tokenizer=dummy,
    preprocessor=dummy,
    )

    docs = [
    ['hello', 'world', '.'],
    ['hello', 'world'],
    ['again', 'hello', 'world']
    ]

    cv.fit(docs)
    cv.get_feature_names()
    # ['.', 'again', 'hello', 'world']

    要记住的一件事是在调用 transform() 函数之前将新的标记化文档包装到一个列表中,以便将其作为单个文档处理,而不是将每个标记解释为一个文档:

    new_doc = ['again', 'hello', 'world', '.']
    v_1 = cv.transform(new_doc)
    v_2 = cv.transform([new_doc])

    v_1.shape
    # (4, 4)

    v_2.shape
    # (1, 4)

    关于scikit-learn - 将 token 传递给 CountVectorizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35867484/

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