今天研究的是nlpir的语义分词
首先 安装pynlpir库:
pip install pynlpir
下面写一个测试小程序:
#-*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import pynlpir
pynlpir.open()
s='聊天机器人到底怎么做呢'
segments = pynlpir.segment(s)
for segment in segments:
print segment[0],'\t',segment[1]
pynlpir.close()
运行结果:
聊天 verb
机器人 noun
到底 adverb
怎么 pronoun
做 verb
呢 modal particle
下面我们在试一下关键词提取效果:
key_words = pynlpir.get_key_words(s,weighted=True)
for key_word in key_words:
print key_word[0],'\t',key_word[1]
运行结果:
聊天 2.0
机器人 2.0
从这个小程序看,分词和关键词提取效果非常好
在程序segments 加上一个参数segments = pynlpir.segment(s,pos_english=False) 。也就是不使用英文输出,那麽输出来的就是:
海洋 名词
是 动词
如何 代词
形成 动词
的 助词
解释一次。
这里的segment是切词的的意思,返回来的是tuple(token,pos),其中token就是切除来的词,pos就是词的属性。
调用segment的方法指定的pos_names参数可以是‘all’,'child','parent',默认是parent,表示获取该词性的最顶级词性,child 表示获取该词性的最具体的信息,all表示获取该词性相关的所有信息,相当于从词性顶级词性到该词性的一条路径。