赞
踩
自然语言处理:scrapy爬取关键词信息(二)
自然语言处理:问答语料生成词汇表,词转向量(三)
pip/pip3 install jieba
pip/pip3 install pynlpir
import jieba #use jieba cut words str = "我是最懂你的聊天机器人小辛!" #分词 segWords_allmode = jieba.cut(str,cut_all=True) segWords_accuratemode = jieba.cut(str,cut_all=False) segWords_defaultmode = jieba.cut(str) segWords_searchenginemode = jieba.cut_for_search(str) #class generator print(type(segWords_allmode)) #输出结果转为string类型,用“/”隔开 allmode = "/".join(segWords_allmode) accmode = "/".join(segWords_accuratemode) defaultmode = "/".join(segWords_defaultmode) searchmode = "/".join(segWords_searchenginemode) #class str print(type(allmode)) #分词结果容器:list segResults = [] # class list print(type(segResults)) #添加分词结果 segResults.append(allmode) segResults.append(accmode) segResults.append(defaultmode) segResults.append(searchmode) #输出结果 print("全模式分词结果:"+segResults[0]) print("精确模式分词结果:"+segResults[1]) print("默认模式分词结果:"+segResults[2]) print("搜索引擎分词结果:"+segResults[3]) #list转为string outputResults = "".join(segResults) # class str print(type(outputResults)) #保存结果值segResults.txt中 output = open('segResults.txt','w',encoding='utf-8') #save results in segResults.txt # print(segResults,file = output) output.write(outputResults) output.close()
全模式分词结果:我/是/最/懂/你/的/聊天/天机/机器/机器人/小/辛//
精确模式分词结果:我/是/最/懂/你/的/聊天/机器人/小辛/!
默认模式分词结果:我/是/最/懂/你/的/聊天/机器人/小辛/!
搜索引擎分词结果:我/是/最/懂/你/的/聊天/机器/机器人/小辛/!
函数
pynlpir.segment(s, pos_tagging=True, pos_names=‘parent’, pos_english=True)
参数描述
序号 | 参数 | 描述 |
---|---|---|
1 | s | 待分割的中文文本,编码为Unicode或UTF-8的字符串 |
2 | pos_tagging | bool,设置是否包含语音标记,默认True,即是否显示词性 |
3 | pos_names | 返回发音部分的类型名称,有三种:parent,child和all, parent为通用名称 child为特定名称 all返回全部名称 |
4 | pos_english | bool,设置返回发音部分名称的语言True为英语,False为汉语 |
import pynlpir
s = "我是一个大坏蛋"
# open API
pynlpir.open()
# segmention word
segments = pynlpir.segment(s, pos_tagging=True, pos_names='all', pos_english=False)
print("Type of segmention words: {}".format(type(segments)))
print("Segmention words: {}".format(segments))
print("分词", '\t', 'parent:child')
for segment in segments:
print(segment[0], '\t', segment[1])
# close API
pynlpir.close()
Type of segmention words: <class 'list'>
Segmention words: [('我', '代词:人称代词'), ('是', '动词:动词"是"'), ('一个', '数词:数量词'), ('大', '形容词'), ('坏蛋', '名词')]
分词 parent:child
我 代词:人称代词
是 动词:动词"是"
一个 数词:数量词
大 形容词
坏蛋 名词
函数
pynlpir.get_key_words(s, max_words=50, weighted=False)
参数描述
序号 | 参数 | 描述 |
---|---|---|
1 | s | 待分割的中文文本,编码为Unicode或UTF-8的字符串 |
2 | max_words | 关键词的最大数量,默认为50个 |
3 | weighted | bool,设置是否返回关键词在文本中的权重 |
import pynlpir s = "我是一个大坏蛋" # open API pynlpir.open() # extraction keywords keywords = pynlpir.get_key_words(s, weighted=True) print("Type of keywords: {}".format(type(keywords))) print("Keywords: {}".format(keywords)) print("keywords", 'weights') for keyword in keywords: # print("Type of keyword: {}".format(type(keyword))) # print("Keyword value: {}".format(keyword)) print(keyword[0], '\t', keyword[1]) # close API pynlpir.close()
Type of keywords: <class 'list'>
Keywords: [('坏蛋', 1.2), ('一个', 0.4)]
keywords weights
坏蛋 1.2
一个 0.4
Analysis
(1) 关键词提取返回为list,列表元素由tuple组成;
(2) tuple元素由两部分组成:(word, weight),第一个元素为关键词,第二个元素为关键词权重;
[参考文献]
[1]https://pynlpir.readthedocs.io/en/latest/api.html#pynlpir-nlpir
[2]http://www.shareditor.com/blogshow/?blogId=74
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。