python pynlpir中科院分词的使用 |
您所在的位置:网站首页 › false词性 › python pynlpir中科院分词的使用 |
中科院汉语分词系统是一个非常好用的分词工具,和结巴分词类似,但是比结巴分词功能更加强大,而且更加个性化。 中科院分词的使用步骤如下: 导入中科院分词模块 初始化pynlpir分词库。在pynlpir库中提供了open()函数用来初始化pynlpir分词库1、需要下载【pynlpir】库![]() 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,释放内存![]() 中科院分词提供了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,释放内存![]() 在实际使用中,往往需要针对某一段文字统计其中关键字出现的次数。 ’通过对次数的统计可以知道哪些关键字经常出现。 使用中科院分词进行关键字统计的步骤如下: 定义一个字典对象,用来保存关键字和其出现的次数。初始化该列表数据,关键字出现的次数设置为初始值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 |