文本特征抽取及jieba的简单使用


前言

简单记录机器学习特征工程的文本特征抽取及jieba的使用

一、文本特征抽取是什么?

数据分析过程中,为了将文本数据转换为计算机所认识的数字数据,从而实现文本数据的特征值化的功能。

二、使用方法

可以调用sklearn的特征工程相关方法,直接对文本列表进行文本特征值化。

1.对普通的英文文本特征值化

代码如下:

from sklearn.feature_extraction.text import CountVectorizer

def countvec1():
    cv=CountVectorizer() #获取转换器
    data=cv.fit_transform(['I like you','I hate you']) #对 I like you与I hate you 这2段字符串组成的列表进行特征值化
    print(cv.get_feature_names())
    print(data.toarray())

运行结果:
在这里插入图片描述

2.对包含中文文本的数据进行特征值化(使用jieba分词库)

由于sklearn的分词是根据空格来分的,英文文本有天然的空格,而中文文本没有。因此,对于中文文本,分词操作需要比普通的纯英文文本多进行一个"添加空格"的操作。又因为不可能对长的中文文本一个个手动进行添加空格,故可以使用jieba分词库来对包含中文文本的数据进行分词划分。

2.1导入jieba库

代码如下(示例):

import jieba

2.2运用jieba库进行分词

def cutword():
    content1=jieba.cut("关关雎鸠,在河之洲。窈窕淑女,君子好逑。")
    content2=jieba.cut("参差荇菜,左右流之。窈窕淑女,寤寐求之。")
    
    print(type(content1))
    content1_list=list(content1)
    content2_list=list(content2)
    
    c1=" ".join(content1_list)
    c2=" ".join(content2_list)
    return c1,c2 # 将分词结果进行返回

2.3进行特征值化

def countvec4():
    cv=CountVectorizer()
    c1,c2=cutword();
    data=cv.fit_transform([c1,c2])
    print(cv.get_feature_names())
    print(data.toarray())

2.4运行结果

在这里插入图片描述
结果分析:
运用sklearn将文本数据特征值化的统计结果中,会将一整段文本分成一个个词语,然后根据词语统计出词语的出现频率。但是要注意的是,结果会忽略单字词语(字母)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值