jieba分词三种分词模式、用户自定义词典、停用词词典的使用


三种分词模式

  • 精确模式:试图将句子最精确地切分开,适合文本分析。
  • 全模式:把句子中所有可以成词的词都扫描出来,速度非常快,但是不能解决歧义问题。
  • 搜索引擎模式 :在精确模式的基础上,对长词再次进行切分,以提高召回率,适合搜索引擎分词。

在这里插入图片描述

自定义词典使用

当某些特定的词在jieba的词典中没有并且需要准确切分出来时,这是就需要在切分过程中引入自定义词典。自定义词典以TXT文件形式输入,每个词占据一行。然后再Python中读取即可。
示例:user_dict.txt的内容为 :自媒体大学

jieba.load_userdict('user_dict.txt')
jieba.lcut('我今天在自媒体大学吹了会儿风',cut_all=False) # 精确模式

在这里插入图片描述

停用词词典的使用

实际应用中,很多语气助词或者人称代词都不是我们所关心的,在最终的结果中希望能够将其过滤掉,这时就需要建立停用词词典。
可以从网络上找到很多权威的中文停用词词典,在此基础上,可以再增加一些自定义的停用词,建立自己的停用词词典。

同样,用上面的案例,假如我们不希望分词结果中存在:‘我’、‘在’、‘了’。实现示例:

import jieba
stop_words = ['我','在','了']

result = [k for k in jieba.lcut('我今天在自媒体大学吹了会儿风',cut_all=False) if k not in stop_words]
print('引入停用词词典后结果:',result)

在这里插入图片描述

补充知识

1.中文语料库:

  • 中文维基百科数据(https://dumps.wikimedia.org/zhwiki/): 维基百科提供了开放的词条文本整合下载,可以找到你需要的指定时间、指定语言、指定类型、指定内容的维基百科数据。
  • 搜狗新闻语料库(http://download.labs.sogou.com/resource/ca.php) :来自若干新闻站点2012年6月~7月期间国内、国际、体育、社会、娱乐等18个频道的新闻数据,提供URL和正文信息。
  • IMDB情感分析语料库(https://www.kaggle.com/tmdb/tmdb-movie-metadata) :互联网电影资料库(Internet Movie Database,简称IMDb)是一个关于电影演员、电影、电视节目、电视明星和电影制作的在线数据库。IMDb的资料中包括了影片的众多信息、演员、片长、内容介绍、分级、评论等。对于电影的评分目前使用最多的就是IMDb评分。

2.中文分词技术

  • 规则分词:主要是通过人工设立词库,按照一定方式进行匹配切分,其实现简单高效,但对新词很难进行处理;
  • 统计分词:能够较好应对新词发现等特殊场景,但太过于依赖语料的质量
  • 混合分词(规则+统计):实践中的常用方式。

2.1 规则分词

一种机械的分词方法。主要是通过维护词典,在切分语句时,将语句的每个字符串与词表中的词进行逐一匹配,找到则切分,否则不予切分。根据匹配切分方式的不同,主要分为三种方法:

  • 正向最大匹配法
  • 逆向最大匹配法:汉语中的偏正结构较多,若从后向前匹配,可以适当提高精确度。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。
  • 双向最大匹配法:有研究表明,中文中90.0%左右的句子,正向和逆向最大匹配法完全重合且正确;只有大概9.0%的句子两种切分方法得到的结果不一样,但其中必有一个正确的;只有不到1.0%的句子,两种方法切分重合却是错的或者切分不同且都不对。

2.2 统计分词

主要思想:把每个词看做是由词的最小单位的各个字组成的,如果相连的字在不同的文本中出现的次数越多,就证明这相连的字很可能就是一个词。

统计分词方法不需要耗费人力维护词典,能较好地处理歧义和未登录词,是目前分词中非常主流的方法。但其分词的效果很依赖训练语料的质量,且计算量相较于机械分词要大得多。

  • 语言模型
  • HMM模型(隐马尔可夫模型)
  • CRF模型(条件随机场模型)

Guess you like

Origin blog.csdn.net/weixin_42521211/article/details/113363115