python pynlpir中科院分词的使用

您所在的位置:网站首页 false词性 python pynlpir中科院分词的使用

python pynlpir中科院分词的使用

2024-07-16 20:54| 来源: 网络整理| 查看: 265

中科院汉语分词系统是一个非常好用的分词工具,和结巴分词类似,但是比结巴分词功能更加强大,而且更加个性化。

中科院分词的使用步骤如下:

导入中科院分词模块 初始化pynlpir分词库。在pynlpir库中提供了open()函数用来初始化pynlpir分词库1、需要下载【pynlpir】库2、【open()】函数介绍:

open()函数的原型如下:

pynlpir.open(data_dir=pynlpir.nlpir.PACKAGE_DIR, encoding=pynlpir.ENCODING, encoding_errors=pynlpir.ENCODING_ERRORS, license_code=None)

参数说明如下:

data_dir:表示分词数据目录对应的绝对路径,默认值为pynlpir.nlpir.PACKAGE_DIR。

encoding:表示针对中文的编码格式,默认为utf_8,也可以为gbk、big5。

encoding_errors:表示所需的编码错误处理方案,默认为strict,也可以为ignore、replace。

license_code:表示使用中科院分词的许可证编码,仅商业用户需要

代码语言:javascript复制import pynlpir #导入pynlpir库 pynlpir.open() #初始化pynlpir分词库 content = "真正的程序员的程序不会在第一次就正确运行,但是他们愿意守着机器进行若干个小时的调试改错。" #获取语句中的关键字 key_words = pynlpir.get_key_words(content, weighted=False) for word in key_words: print (word) pynlpir.close() #关闭pynlpir,释放内存3、【segment()】函数介绍:

中科院分词提供了segment()函数进行分词,并返回分词后的列表。函数原型如下:

【pynlpir.segment(s, pos_tagging=True, pos_names='parent', pos_english=True)】

参数说明如下:

s:需要分词的中文,必须是Unicode编码或者UTF-8编码的字符串。

pos_tagging:表示是否包含部分的词性标注,值为False时表示只做分词,而不显示词性(形容词、名词等)。

pos_names:参数在pos_tagging为True时才生效,只能是parent、child和all三个值,默认是parent,表示获取该词性的最顶级词性,child表示获取该词性的最具体的信息,all表示获取该词性相关的所有词性信息。

pos_english:表示词性标注结果是否以中文的形式显示,为False表示以中文的形式显示

代码语言:javascript复制import pynlpir #导入pynlpir库 pynlpir.open() #初始化pynlpir分词库 content = "真正的程序员的程序不会在第一次就正确运行,但是他们愿意守着机器进行若干个小时的调试改错。" #不输出词性 words = pynlpir.segment(content,pos_tagging=False) for word in words: print (word,"/") print ("\n****输出词性****") #获取分词处理后每个词语以及其最顶级的词性,并以中文输出词性 words = pynlpir.segment(content,pos_tagging=True, pos_names='parent', pos_english=False) for word in words: print ("词:", word[0],"词性:", word[1]) pynlpir.close() #关闭pynlpir,释放内存

4、【get_key_words()】函数介绍:函数原型:【pynlpir.get_key_words(s ,max_words=50, weighted=False)】

参数说明如下:

s:需要分词的中文,必须是Unicode编码或者UTF-8编码的字符串。

max_words:表示最多能够查找的关键字,默认为50。

weighted:表示是否返回关键字的权重,默认不返回

代码语言:javascript复制import pynlpir #导入pynlpir库 pynlpir.open() #初始化pynlpir分词库 content = "真正的程序员的程序不会在第一次就正确运行,但是他们愿意守着机器进行若干个小时的调试改错。" #不输出权重 words = pynlpir.get_key_words(content,weighted=False) for word in words: print (word) print ("\n****关键字带权重****") words = pynlpir.get_key_words(content,max_words=50,weighted=True) for word in words: print ("关键字:",word[0],"权重:",word[1]) pynlpir.close() #关闭pynlpir,释放内存5、实际使用:

在实际使用中,往往需要针对某一段文字统计其中关键字出现的次数。

’通过对次数的统计可以知道哪些关键字经常出现。

使用中科院分词进行关键字统计的步骤如下: 定义一个字典对象,用来保存关键字和其出现的次数。初始化该列表数据,关键字出现的次数设置为初始值0。

使用get_key_words()函数获取关键字的列表数据。

使用segment()函数对该段文字进行分词处理,从而得到返回的分词列表数据。 循环遍历分词列表数据,判断其中的元素是否属于关键字,如果属于关键字则将字典对象中对应关键字出现的次数加1

代码语言:javascript复制import pynlpir #导入pynlpir库 pynlpir.open() #初始化pynlpir分词库 content = "真正的程序员的程序不会在第一次就正确运行,但是他们愿意守着机器进行若干个小时的调试改错。" wordDict = {} #定义字典对象,保存关键字及出现的次数 key_words = pynlpir.get_key_words(content, weighted=False) #获取关键字 for word in key_words: wordDict[word] = 0 words = pynlpir.segment(content, pos_tagging=False, pos_english=False) for word in words: if key_words.count(word) > 0: wordDict[word] = wordDict[word] + 1 #关键字次数加1 for item in wordDict: print (item,"出现次数为:",wordDict[item]) #输出关键字及出现的次数 pynlpir.close() #关闭pynlpir,释放内存

愿本文对你的文章分析能有一个非常有效的帮助。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3