精选文章 文本特征抽取

文本特征抽取

作者:大数据私房菜 时间: 2019-05-16 08:15:52
大数据私房菜 2019-05-16 08:15:52

1.CountVectorize 

CountVectorizer是属于常见的特征数值计算类,是一个文本特征提取方法。对于每一个训练文本,它只考虑每种词汇在该训练文本中出现的频率。

CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数。

# coding=utf-8
_author_ = 'liuzc'

# 导包
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
import jieba

def countvec():
    """
    对文本进行特征值化
    :return: None
    """
    con1 = jieba.cut("我们在自己的哭声中来到这个世界,在别人哭声中离开这个世界")
    con2 = jieba.cut("不要炫耀你的工作,你走了,无数人会比你做的更出色,不要炫耀你的房,你去了,那就是别人的窝")
    # 转换成列表
    content1 = list(con1)
    content2 = list(con2)
    # 把列表转换成字符串
    c1 =  ' '.join(content1)
    c2 = ' '.join(content2)
    # 实例化
    cv = CountVectorizer()
    # 转换数据
    data = cv.fit_transform([c1,c2])
    print(cv.get_feature_names())
    print(data.toarray())
    return  None
if __name__ == "__main__":
    countvec()

 

结果:

['不要', '世界', '人会', '出色', '别人', '哭声', '就是', '工作', '我们', '无数', '来到', '炫耀', '离开', '自己', '这个']
[[0 2 0 0 1 2 0 0 1 0 1 0 1 1 2]
 [2 0 1 1 1 0 1 1 0 1 0 2 0 0 0]]
 

2.TfidfVectorizer

什么是TF-IDF

TF-IDF(term frequency-inverse document frequency)词频-逆向文件频率。在处理文本时,如何将文字转化为模型可以处理的向量呢?TF-IDF就是这个问题的解决方案之一。字词的重要性与其在文本中出现的频率成正比(TF),与其在语料库中出现的频率成反比(IDF)。

TF

TF:词频。TF(w)=(词w在文档中出现的次数)/(文档的总词数)

IDF

IDF:逆向文件频率。有些词可能在文本中频繁出现,但并不重要,也即信息量小,如is,of,that这些单词,这些单词在语料库中出现的频率也非常大,我们就可以利用这点,降低其权重。IDF(w)=log_e(语料库的总文档数)/(语料库中词w出现的文档数)

TF-IDF

将上面的TF-IDF相乘就得到了综合参数:TF-IDF=TF*IDF

# coding=utf-8
_author_ = 'liuzc'

# 导包
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
import jieba

def tfidfvec():
    """
    对文本进行特征值化
    :return: None
    """
    con1 = jieba.cut("我们在自己的哭声中来到这个世界,在别人哭声中离开这个世界")
    con2 = jieba.cut("不要炫耀你的工作,你走了,无数人会比你做的更出色,不要炫耀你的房,你去了,那就是别人的窝")
    # 转换成列表
    content1 = list(con1)
    content2 = list(con2)
    # 把列表转换成字符串
    c1 =  ' '.join(content1)
    c2 = ' '.join(content2)
    # 实例化
    tf = TfidfVectorizer()
    data = tf.fit_transform([c1, c2])
    print(tf.get_feature_names())
    print(data.toarray())
    return None
if __name__ == "__main__":
    tfidfvec()

结果:

['不要', '世界', '人会', '出色', '别人', '哭声', '就是', '工作', '我们', '无数', '来到', '炫耀', '离开', '自己', '这个']
[[ 0.          0.49227283  0.          0.          0.17512809  0.49227283
   0.          0.          0.24613641  0.          0.24613641  0.
   0.24613641  0.24613641  0.49227283]
 [ 0.54420522  0.          0.27210261  0.27210261  0.19360325  0.
   0.27210261  0.27210261  0.          0.27210261  0.          0.54420522
   0.          0.          0.        ]]
 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:mybatis日志配置相关语法说明

下一篇:Eureka对比ZooKeeper

您可能感兴趣

  • HDFS的功能和架构原理详解

    目录 一、分布式文件系统的理解 二、HDFS的架构详细剖析 1. 文件分块存储&3副本 2. 抽象成数据块的好处 3. HDFS架构 4. 扩展 三、HDFS的shell命令操作 四、HDFS安全模式 一、分布式文件系统的理解 最直观的理解便是三个臭皮匠,顶个诸葛亮。 很多的磁盘加一起就可以装下天下所有的avi 类似于你出五毛,我出五毛,我们一起凑一块的效果 如下图: 二、HDFS的架构详细...

  • 项目沟通管理和项目干系人管理

    在管理项目时,沟通是一个过程,是人们分享信息、表达思想和情感的过程,包括信息的生成、传递、接收、理解和检查。 项目经理的绝大多数时间都用于与团队成员和其他干系人的沟通,无论这些成员或干系人是来自组织内部还是组织外部。 沟通的基本构成,包括如下: 接收者和发送者; 信息; 渠道; 沟通的方式,在进行沟通过程中,要根据沟通目标、参与者的特点选择适合的沟通方式。一般沟通过程所采用的方式分为以下几类...

  • 物联网大数据平台有哪些功能特点

      大数据技术是指从各种各样海量类型的数据中,快速获得有价值信息的能力。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。   一个物联网大数据平台需要具备哪些功能?与通用的大数据平台相比,它需要具备什么样的特征呢?我们来仔细分析一下。   1.高效分布式   必须是高效的分布式系统。物联网产生的数据量...

  • 我是如何失去团队掌控的?一个技术总监的反思

    我是一个不合格的技术总监,在过去的快三个月里。我带着从40多个人的研发团队(包含需求、开发、测试)里抽调出20多个人去为公司开疆拓土。在这快三个月中,我们一起奋战奋斗拼搏。在过程中,我通宵时间超过半个月,干到凌晨4/5点的日子数不胜数,干到凌晨1/2点日子更是习以为常。整个团队绝大多数人近乎两个月没有周末,辛苦异常,是实实在在的高峰体验。但是三个月后,我带着失败和一身的惨痛教训回到公司。 我...

  • 如何使用Python爬虫+数据分析对新冠疫情数据实时监控!

    【1x00】前言 本来两三个月之前就想搞个疫情数据实时数据展示的,由于各种不可抗拒因素一而再再而三的鸽了,最近终于抽空写了一个,数据是用 Python 爬取的百度疫情实时大数据报告,请求库用的 requests,解析用的 Xpath 语法,词云用的 wordcloud 库,数据可视化用 pyecharts 绘制的地图和折线图,数据储存在 Excel 表格里面,使用 openpyxl 对表格进...

  • Unity渲染教程(九):复杂材质 https://www.jianshu.com/p/5e3af869870f

    Unity渲染教程(九):复杂材质 https://www.jianshu.com/p/5e3af869870f 同样的着色器,不同的贴图 用户界面 到目前为止,我们一直都为我们的材质使用Unity默认的材质监视器,它很耐用,但是Unity的标准着色器长得非常不一样。仿照着标准着色器,让我们一起来为我们自己的着色器创建一个自定义监视器吧。 我们默认的监视器和标准着色器监视器 着色器GUI 我...

  • POLY-YOLO: HIGHER SPEED, MORE PRECISE DETECTION AND INSTANCE SEGMENTATION FOR YOLOV3论文阅读

    论文下载地址:https://arxiv.org/pdf/2005.13243.pdf 代码下载地址:https://gitlab.com/irafm-ai/poly-yolo 论文创新:在YOLOv3的基础上进行了改进,解决了YOLO-v3存在标签重写和anchor分布不均衡问题。同时还增加了基于多边形预测的实例分割算法。改进之后的算法参数量只需要YOLO-v3的60%,速度快了2倍,精度...

  • 图神经网络越深,表现就一定越好吗?

    2020-08-01 03:01:24 编译 | 陈彩娴 编辑 | 丛 末 数十层甚至数百层神经网络的应用,是深度学习的重要标志之一。但现实情况却远非如此:比如今年被视作机器学习领域最火热的研究方向之一——图神经网络,大多数都只运用了寥寥几层网络。 一般思路里,我们会认为图神经网络越深,效果就会越好。然而,日前帝国理工学院教授Michael Bronstein 发出了灵魂拷问:图神经网络的深...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。