python pynlpir中科院分词的使用
中科院汉语分词系统是一个非常好用的分词工具,和结巴分词类似,但是比结巴分词功能更加强大,而且更加个性化。
中科院分词的使用步骤如下:
- 导入中科院分词模块 初始化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:表示使用中科院分词的许可证编码,仅商业用户需要
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表示以中文的形式显示
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:表示是否返回关键字的权重,默认不返回
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
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,释放内存
愿本文对你的文章分析能有一个非常有效的帮助。
相关文章
- 简单的Python端口扫描工具制作
- python字符串转化列表_Python列表到字符串的转换[通俗易懂]
- 简述python变量的命名规则_Python 变量命名规则
- python生成器详解_Python 生成器
- 【说站】招聘月:Python数据分析岗位迎来机遇
- 【说站】python饼状图的介绍及绘制
- python自定义异常和主动抛出异常(raise)
- python冒泡排序算法代码_python用冒泡法对10个数排序
- PYTHON主机_我的Python世界PDF
- python django 数据库_Apache+Mysql+PHP/Python简单项目
- Python-GUI签名
- Python小案例(五)循环判断进行分组
- python实战爬取招聘网站职位数据
- python-数据库编程-如何在Python中连接到数据库
- Python抓取文件夹的所有文件,包括子文件夹和子文件夹的文件详解编程语言
- 小白的Python之路 day5 python模块详解及import本质编程语言
- python_day03-作业详解编程语言
- Python for循环内部实现的一个sample详解编程语言
- 如何使用Python安装MySQL(python安装mysql)
- Python玩转Redis:提升缓存效率(python使用redis)
- 运维学python之爬虫实战篇(一)爬取百度贴吧
- 用Python仿写MSSQL 编程体验更有趣(python仿mssql)
- python设置检查点简单实现代码