欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文本分析学习笔记

程序员文章站 2022-06-04 09:02:36
...
在我们进行文本分析的时候许多的词组文字都是没有用的或者不重要的,这种词组叫做停用词

停用词:
1.语料中大量出现
2.没啥大用
3.留着过年嘛?嗯??
另外一些表达有用信息的词组叫做关键词;在文本分析学习中有下面这么几个概念:

Tf-idf:关键词提取
Tf:Term Frequency(词频缩写)
IDF:逆文档频率
词频(TF)=某个词在文章中出现次数/文章中此的总量
逆文档频率(IDF)=lg(语料库中的文档总数/包含该词的文档数+1)
IDF越大词越重要
TF-IDF=词频(TF)*逆文档频率(IDF)

每个句子之间也有 相似度 这个概念,我们据一下例子

相似度:
句子A:我喜欢看电视,不喜欢看电影
句子B:我不喜欢看电视,也不喜欢看电影

我们将这两个句子进行下分词
分词:
句子A:我/喜欢/看/电视,不/喜欢/看/电影
句子B:我/不/喜欢/看/电视,也/不/喜欢/看/电影

我们发现可以分成一个个字或者词组,这些字和词组组成的元组叫做语料库
语料库:我,喜欢,看,电视,电影,不,也

然后我们就可以统计这些字和词组在句子中出现的次数,也可以叫做词频
词频:
句子A:我1 喜欢2 看2 电视1 电影1 不1 也0
句子B:我1 喜欢2 看2 电视1 电影1 不2 也1

我们可以把出现的次数想象成一组向量
词频向量:
句子A:[1,2,2,1,1,1,0]
句子B:[1,2,2,1,1,2,1]

把句子转换成向量之后就可以进行数学计算啦(通过这几天的学习发现数学真的是太重要了QAQ)
字符串转换为向量计算相似度
相似度(余弦相似度)=(AB)/|A||B| 前者点乘,后者差乘

在我们使用python进行文本分析的时候常常会用到jieba这个模块,下面介绍一下jieba分词器

jieba分词器
jieba.lcut(s) 分词 精确模式,返回一个可迭代的数据类型
jieba.cut(s,cut_all=True) 全模式,输出文本s中所有可能单词
jieba.cut_for_search(s) 搜索引擎模式,适合搜索引擎建立索引的分词结果
jieba.lcut(s) 精确模式,返回一个列表类型,建议使用
jieba.lcut(s,cut_all=True) 全模式,返回一个列表类型,建议使用
jieba.lcut_for_search(s) 搜索引擎模式,返回一个列表类型,建议使用
jieba.add_word(w) 向分词词典中增加新词
精确模式:[‘中国’, ‘是’, ‘一个’, ‘伟大’, ‘的’, ‘国家’]
全模式:‘中国’, ‘国是’, ‘一个’, ‘伟大’, ‘的’, ‘国家’]
搜索引擎模式:[‘中华’, ‘华人’, ‘人民’, ‘共和’, ‘*’, ‘*’, ‘是’, ‘伟大’, ‘的’]

今天在学习的时候遇到了几个基础的函数感觉也很有用的就记录下来了:
print(data.dropna()) 默认axis=0,how=‘any’ 删除带有空值的行,只要有一个空值,就删除整行
print(data.dropna(axis=1)) 删除带有空值的列,只要有一个空值,就删除整列
print(data.dropna(how=‘all’)) 整行都是空值时,才会被删除
print(data.dropna(how=‘all’,axis=1)) 整列都是空值时,才会被删除
print(data.dropna(thresh=2)) 缺失值个数大于2,改行才会被删除
print(data.dropna(subset=[1,2])) 删除指定列中包含缺失值的行5

sep’.join(seq)
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典

import jieba.analyse
tags = jieba.analyse.extract_tags(str, topK=3)
#str是提取关键字的内容,topK是提取关键字数
print “,”.join(tags)

相关标签: 文本分析