文本特征抽取

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.        ]]
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据私房菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值