1.1.1 删除不相关的字符
去除字符串两端字符串:
replace替换
正则表达式去除字符
正则表达式的用法可以参考 https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664
常用辅助网站
https://regex101.com
1.1.2 去除停用词
之前写爬虫做词云用到过停用词.
停用词在主要指一些常用的虚词, 出现频率高, 但是又没有实际意义, 所以在许多进行文本分析的场景下需要去掉.
常与jieba分词共同使用.
这一部分不多叙述, 参见下面分词部分.
jieba分词是一个常用的开源分词工具. 官方链接: https://github.com/fxsjy/jieba
支持三种分词模式:
- 精确模式,试图将句子最精确地切开,适合文本分析;cut_all=False
- 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;cut_all=True
- 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。jieba.cut_for_search()
1.2.1 安装
1.2.2 简单使用
在这里我犯了一个很智障的错误, 不能把python文件命名为jieba, https://github.com/fxsjy/jieba/issues/219
1.2.3 停用词
这里用上次的THUCNews中的cnews.val.txt作为输出数据, stopwords.txt是我大一的时候做爬虫时下载的, 已经不知道出处了.
这两个文件都放在当前目录下, 运行得如下结果.
原本的cnews.val.txt如下:
对比可以发现"中","对于"这些虚词已经被去掉了.
1.3.1 最简单的方法
结果如下:
利用jieba分词进行关键词提取
jieba实现了TF-IDF和TextRank这两种关键词提取算法, 这里也会使用到jieba自带的前缀词典和IDF权重词典。
结果如下:
统计语言模型是一个单词序列上的概率分布,对于一个给定长度为m的序列,它可以为整个序列产生一个概率 P(w_1,w_2,…,w_m) 。其实就是想办法找到一个概率分布,它可以表示任意一个句子或序列出现的概率。
下面介绍一下n-gram模型方法.
n-gram模型:unigram、bigram、trigram
为了解决自由参数数目过多的问题,引入了马尔科夫假设:随意一个词出现的概率只与它前面出现的有限的n个词有关。基于上述假设的统计语言模型被称为N-gram语言模型。
当n取1、2、3时,n-gram模型分别称为unigram、bigram、trigram语言模型
- unigram 一元分词,把句子分成一个一个的汉字
- bigram 二元分词,把句子从头到尾每两个字组成一个词语,也叫一阶马尔科夫链
- trigram 三元分词,把句子从头到尾每三个字组成一个词语,也叫二阶马尔科夫链
转自 https://blog.csdn.net/u012736685/article/details/88206485 以上就是本篇文章【NLP系列 2.特征提取】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/3714.html 资讯 企业新闻 行情 企业黄页 同类资讯 首页 网站地图 返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多