欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python pynlpir中科院分词的使用

发布时间:2024/8/26 python 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 pynlpir中科院分词的使用的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。