首页 > 编程知识 正文

分词算法,常见的说明方法有哪几种

时间:2023-05-04 08:07:34 阅读:110474 作者:448

三种常见的分词工具

这门课主要介绍了三种常用的分词工具。

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,可以自己限定) ) )。

代码和执行结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。