NLP第5课:面向非结构化数据转换的词袋和词向量模型

通过前面几个小节的学习,我们现在已经学会了如何获取文本预料,然后分词,在分词之后的结果上,我们可以提取文本的关键词查看文本核心思想,进而可以通过可视化技术把文档从视觉的角度表达出来。 下面,我们来看看,文本数据如何转换成计算机能够计算的数据。这里介绍两种常用的模型:词袋和词向量模型。 词袋模型(Bag of Words Model) 词袋模型的概念 ...
摘要由CSDN通过智能技术生成

通过前面几个小节的学习,我们现在已经学会了如何获取文本预料,然后分词,在分词之后的结果上,我们可以提取文本的关键词查看文本核心思想,进而可以通过可视化技术把文档从视觉的角度表达出来。

下面,我们来看看,文本数据如何转换成计算机能够计算的数据。这里介绍两种常用的模型:词袋和词向量模型。

词袋模型(Bag of Words Model)

词袋模型的概念

先来看张图,从视觉上感受一下词袋模型的样子。


v2-76bb4510ca5c149a22ca3c28ecbb5cac_b.jpg


词袋模型看起来好像一个口袋把所有词都装进去,但却不完全如此。在自然语言处理和信息检索中作为一种简单假设,词袋模型把文本(段落或者文档)被看作是无序的词汇集合,忽略语法甚至是单词的顺序,把每一个单词都进行统计,同时计算每个单词出现的次数,常常被用在文本分类中,如贝叶斯算法、LDA 和 LSA 等。

动手实战词袋模型

(1)词袋模型

本例中,我们自己动手写代码看看词袋模型是如何操作的。

首先,引入 jieba 分词器、语料和停用词(标点符号集合,自己可以手动添加或者用一个文本字典代替)。

        import jieba
    #定义停用词、标点符号
    punctuation = [",","。", ":", ";", "?"]
    #定义语料
    content = ["机器学习带动人工智能飞速的发展。",
               "深度学习带动人工智能飞速的发展。",
               "机器学习和深度学习带动人工智能飞速的发展。"
              ]
      

接下来,我们先对语料进行分词操作,这里用到 lcut() 方法:

        #分词
    segs_1 = [jieba.lcut(con) for con in content]
    print(segs_1)
      

得到分词后的结果如下:

[['机器', '学习', '带动', '人工智能', '飞速', '的', '发展', '。'], ['深度', '学习', '带动', '人工智能', '飞速', '的', '发展', '。'], ['机器', '学习', '和', '深度', '学习', '带动', '人工智能', '飞速', '的', '发展', '。']]

因为中文语料带有停用词和标点符号,所以需要去停用词和标点符号,这里语料很小,我们直接去标点符号:

        tokenized = []
    for sentence in segs_1:
        words = []
        for word in sentence:
            if word not in punctuation:          
                words.append(word)
        tokenized.append(words)
    print(tokenized)
      

去标点符号后,我们得到结果如下:

[['机器', '学习', '带动', '人工智能', '飞速', '的', '发展'], ['深度', '学习', '带动', '人工智能', '飞速', '的', '发展'], ['机器', '学习', '和', '深度', '学习', '带动', '人工智能', '飞速', '的', '发展']]

下面操作就是把所有的分词结果放到一个袋子(List)里面,也就是取并集,再去重,获取对应的特征词。

        #求并集
    bag_of_words = [ x for item in segs_1 for x in item if x not in punctuation]
    #去重
    bag_of_words = list(set(bag_of_words))
    print(bag_o
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值