美文网首页NLP
NLP-词向量:词袋模型

NLP-词向量:词袋模型

作者: Huoyo | 来源:发表于2020-08-09 22:19 被阅读0次

    一、前言

    词袋模型是早些年使用的词向量模型,该模型假设每个词都是独立的,仅仅使用词在文章中的频率来决定如何表达词,并将每个词的表达通过组合来表征文章。

    二、原理以及实现

    该模型的具体构建流程如下:
    假设我们有如下三篇简短文章

    1、今天 我们 去 唱歌 明天 我们 去 爬山
    2、 我们 去 爬山
    3、小名 喜欢 打球

    1、构建词袋

    将文章的所有词提取出来放在一个袋子中:

    dict = ['今天', '唱歌', '喜欢', '小名', '我们', '打球', '明天', '爬山']
    

    共得到包含有8个词的词袋,那么每篇文章的维度就固定为8

    2、统计文章词频

    使用词袋的每个词去文章中一一统计,并按照顺序记录词频,比如文章1中,“今天”出现1次,“唱歌”出现1次...“爬山”出现1次
    得到三篇文章的词向量分别如下:

    1、[1 1 0 0 2 0 1 1]
    2、[0 0 0 0 1 0 0 1]
    3、[0 0 1 1 0 1 0 0]
    

    3、代码实战

    使用sklearn进行实战

    from sklearn.feature_extraction.text import CountVectorizer
    corpus = ['今天 我们 去 唱歌,明天 我们 去 爬山',
                '我们 去 爬山',
                '小名 喜欢 打球']
    vec=CountVectorizer()
    X = vec.fit_transform(corpus)
    print(X.toarray())
    

    三、特点

    1、优点

    • 简单快捷,易于理解

    2、缺点

    • 向量稀疏度较高,当词袋较大时,容易出现维度灾难
    • 假设了文本中词与词之间相互独立,上下文没有关联性,有悖于人类语言

    相关文章

      网友评论

        本文标题:NLP-词向量:词袋模型

        本文链接:https://www.haomeiwen.com/subject/rhwjlktx.html