文本挖掘(三)

本文介绍了文档信息向量化的重要性,并详细讲解了词袋模型,包括One-hot表示方式和gensim库的使用。通过gensim实现词袋模型,包括安装、建立字典、转化为BOW稀疏和长向量。同时,讨论了使用pandas和sklearn库生成文档-词条矩阵的方法。
摘要由CSDN通过智能技术生成

文档信息向量化

  • 思考:什么是文档信息向量化呢?
    ~就是将文本的信息数值化,便于建模分析

一、词袋模型(One-hot表示方式)

  • 思考:什么是词袋?装词的袋子?怎么装词?
    文本相当于一个袋子,词装在文本这个袋子里
    将文本分为一系列的词,文本相当于一个集合,其中每个词都是独立的。

  • 有几种方式:
    对每个词进行编号,形成字典(1,2,3····);
    用0/1代表该词是否在文本中出现,将文本记录为一个特征向量(出现1次记为1,出现两次记为2,没有出现记为0);
    不考虑词频,减少模型复杂度(词集模型:常见于短文本分析。出现记为1,不出现记为0)。

  • 优缺点
    优点:解决了分类器不好处理离散数据的问题;在一定程度上也起到了扩充特征的作用
    缺点:不考虑词与词之间的顺序;假设词与词之间相互独立(但是大多情况下,词之间是相互关联的);特征离散稀疏

二、词袋模型的gensim实现

1.gensim的安装

用pip install gensim或者conda install gensim
如果用上述两个命令会出错,可以用

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple gensim

安装过程会出现各种各样的问题,不要着急,耐心解决,都是最棒的小可爱们~~

  • 问题1
    AttributeError: module ‘numpy.random’ has no attribute ‘default_rng’
    解决办法:更新numpy pip install --upgrade numpy

  • 问题2
    cannot import name 'open' from 'smart_open'
    解决办法:pip install smart_open

  • 问题3
    输入from gensim imoprt word2vec显示错误ImportError: cannot import name 'word2vec' from 'gensim' (F:\anocanda\Anaconda\lib\site-packages\gensim\__init__.py)
    解决办法:from gensim.models import word2vec

  • 问题4 numpy被我搞得出问题了,import numpy时显示错误,Something is wrong with the numpy installation. While importing we detected
    解决办法:删除numpy包(可以找到site-packages下的numpy文件直接删,也可以用pip uninstall numpy,然后再重新下载pip install numpy

2.建立字典

Dictionary类用于建立word<->id映射关系,把所有单词取一个set(),并对set中每个单词分配一个Id号的map

class gensim.corpora.dictionary.Dictionary(
documents=None : 若干个被拆成单词集合的文档的集合,一般以list in list形式出现
prune_at=2000000 : 字典中的最大词条容量
)
from gensim.corpora import Dictionary   
texts = [['human', 'interface', 'computer']]
dct = Dictionary(texts)  # fit dictionary
dct.token2id    #查看字典对象时如何编码的
# token2id :字典(str, int)      id2token: 字典(int,str)  互逆
# dfs : 字典(int,int) 编号,频率     um_docs文档数量    num_pos词量   num_nnz非零
  • Dictionary类的属性
token2id  #词条和相应流水号间的映射关系
dict of (str, int) – token -> tokenId.

id2token
dict of (int, str) – Reverse mapping for token2id, initialized in
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值