三种常见的分词工具
这门课主要介绍了三种常用的分词工具。
jieba分词ltp分词ir分词一、分词概念:
中文分词(Chinese Word Segmentation )是指将一个汉字串切分成一个单词。 分词是指将连续的单词串按照一定的规范重组成复合词串的过程。
二.中文分词工具
jieba分词:常用,用法简单,主要有三种分词模式。 python安装jieba。 直接在pipinstalljieba/Settings中查找并安装jieba即可使用jieba。 import jiebajieba分词的三种模式:
a )所有模式)扫描句子中的所有单词
代码实现: sentence_="一切都像刚醒来,欣欣然睁开了眼睛。 山亮了,水涨了,太阳的脸红了。 ”
cut_all=Jieba.cut(sentence_,cut_all=True ) )。
b )精度模式)尝试以最高精度切割语句(jieba默认模式) ) ) ) ) )。
代码实现: cut_all=Jieba.cut(sentence_ ) ) ) ) ) ) )的代码实现) ) ) ) )的代码实现) ) )。
c )搜索模式)基于准确的模式,对长单词进行再划分,提高召回率,适合搜索引擎的分词
代码实现: cut _ search=Jie ba.cut _ for _ search (sentence _ ) ) ) ) ) ) ) ) )代码实现) ) ) ) ) ) ) )。
测试结果:
4 ) jieba分词的词性标注)词性标注是指对已经分词的文本进行词性标注,在jieba的词性标注中,被标注的文本默认被严格的模式分隔。
词性标注需要参考文件。 文: import jieba.posseg as pos
代码执行和执行的结果:
5 )词数的统计)利用jieba可以直接进行词数的统计,并且输出上位top k的词(top k的默认值为20,k可以自己定义) )。
代码和执行结果:
这些都是不排除停止字的运行结果,但在实际操作中不需要统计标点符号和“的”这个单词,分词在计算词数时可以参照停止字删除这些单词,得到更好的统计结果。
禁用词典的执行代码及其结果如下所示。
6 )统计词数时,也可以指定选择特定词类词的词数) )只统计名词或动词等) :
代码和执行结果:
统计的结果,只能看到名词的词数。
7 )接下来是关键词的提取。 这里提到了关键词的提取使用了tf/idf和textrank两种方法。
首先需要import jieba.analyse
tf/idf:TF意味着词数,IDF意味着反向文本频率指数(Inverse Document Frequency )。 TF-IDF是一种统计方法,用于评估单词对文档集或语料库中的一个文档的重要性。 单词的重要性与它在文档中出现的次数成比例地增加。 一般来说,出现频率越高,那个词也越重要。
Textrank :一个单词出现在很多单词后面时,表示这个单词很重要; TextRank值高的单词后面的单词,该单词的TextRank值会相应地变高。
另一方面,在jieba分词中,限定根据allow/allows语句输出的词的词性,然后
kys=Jie ba.analyse.extract _ tags (example,topK=10,allowPOS=allow ) ) ) ) ) ) ) ) )。
输出根据tf/idf法提取关键词的结果
完整的代码和执行结果:
通过比较可以看出,两种方法得到的结果不同。
2. ltp分词:
1 )首先几个包的安装
Import pyltp
import os
from pyltp import Segmentor,SentenceSplitter,SementicRoleLabeller
from pyltp import Postagger
frompyltpimportnamedentityrecognizer
导入re
2 ) ltp除了分词的功能外,还可以实现分句的功能。 另外,词性标注功能很精细,可以识别命名实体(人名、地名、机关名等)
具体代码和结果如下
分句:
分词:
词性标记:
这里的输出是输出分词结果,然后输出词性标注结果,一一对应。
另外,还可以利用ltp提取实体关系:
这些S-NS等相关词可以在ltp的官方网站上查到。
接下来,提取文章/句子的关系,即进行句法分析,利用ltp将提取的结果作为树输出。
代码和执行结果:
ir分词:首先是import
import pynlpir
pynlpir.open (
s=“最早的几何学兴起于公元前7世纪”
ir分词主要使用三个标签。
pynlpir.segment(s,pos_tagging=True,pos _ names=‘parent’,pos_english=True ) )。
S:语句
pos_tagging :是否进行词性标注
pos_names :显示词类的父级(parent )还是子类(child )或全部)
pos_english :词性表示是英语还是中文
默认属性为词性标注、表示词性的父级、英语词性
代码和执行结果的比较:
在ir中,也可以计算出被发现的关键词的权重(默认关键词数为50,可以自己限定) ) )。
代码和执行结果: