一、安装

官方链接:http://pynlpir.readthedocs.org/en/latest/installation.html

官方网页中介绍了几种安装方法,大家根据个人需要,自行参考!我采用的是:

Install PyNLPIR using easy_install:

$ easy_install pynlpir

二、使用NLPIR进行分词

注:此处主要使用pynlpir.nlpir模块,该模块使用ctypes为NLPIR提供面向Python的接口,因此在调用NLPIR方法时,基本与调用其C接口是一样的。

此处假设已导入模块:from pynlpir import nlpir

1)NLPIR初始化

nlpir.Init(nlpir.PACKAGE_DIR,nlpir.UTF8_CODE,None) ,其中三个参数:

nlpir.PACKAGE_DIR,Data目录父目录的绝对路径(即指明在何处可找到Data目录),也可自行指定

nlpir.UTF8_CODE,分词所使用的编码方式(NLPIR提供UTF-8,GBK,BIG5,GBK-FANTI四种编码),默认是GBK

license_code,没什么特殊应用的话就默认为None

2)设置词性标注集

nlpir.SetPOSmap(pos_map)

NLPIR官方提供四种词性标注集,具体参见官方API : http://pynlpir.readthedocs.org/en/latest/api.html

词性标注集中FIRST和SECOND的区别在于前者只采用一级标注,后者同时采用二级标注,如对于“是”,一级标注词性为/v,二

级标注词性为/vshi

3)段落分词

nlpir.ParagraphProcess(str,int)

str: 待分词段落

int: 0表示不加词性标注,1则加词性 (注意此处官方API调用参数可能有误)

return: 分词后内容

4)文档分词

nlpir.FileProcess(sFile,rFile,isPOS)

sFile:待分词文档(文档路径)

rFile:分词结果文档

isPOS: 0表示不加词性标注,1则加词性 (注意此处官方API调用参数可能有误)

5)导入用户字典

nlpir.ImportUserDict(dict_path)

dict_path: 字典路径

nlpir.AddUserWord('卡卡') ,将'卡卡'这个词加入用户字典,返回1表示成功

nlpir.SaveTheUsrDic() , 将用户字典内容输出到磁盘,返回1表示成功

nlpir.DelUsrWord('卡卡') , 删除用户字典的指定词,返回-1表示字典中没有该词,否则返回值表示该词在字典中位置

6)退出

nlpir.Exit() :释放内存资源

7)获取关键词或新词

获取关键词或者新词对段落和文档有各自的方法调用,但参数都一致,即传入待获取的内容,最多获取的词数,以及是否输出词权重信息

三、简易代码示例

 from pynlpir import nlpir

 class WordSegment(object):

     def __init__(self):
'''初始化nlpir资源'''
if not nlpir.Init(nlpir.PACKAGE_DIR,nlpir.UTF8_CODE,None):
print 'Initialize NLPIR failed'
exit(-11111) def fileProcess(self,sFile,rFile,isPOS):
'''
对文档分词:sFile,待分词文档路径
rFile,分词结果文档路径
isPOS,是否标注词性(1 是,0 否)
'''
nlpir.SetPOSmap(nlpir.ICT_POS_MAP_SECOND)
if nlpir.FileProcess(sFile,rFile,isPOS)==0:
print 'FileProcess failed.Traceback to module:word_segmentation.py,function:fileProcess()'
exit(-111111) def import_userdict(self,dict_path):
nlpir.ImportUserDict(dict_path) def finalizeR(self):
'''释放nlpir资源'''
nlpir.Exit()

NLPIR中文分词简单示例

四、pynlpir模块方法

1)pynlpir._get_pos_name(codename='parent'english=True)

获取某个词性相关信息

code: 词性

name:分为'parent'(获取该词性的最顶级词性,默认为'parent'),'child'(获取该词性最具体的信息),'all'(获取该词性相关的所有词性

信息,相当于从其顶级词性到该词性的一条路径)

english:默认为True,表示是否以英文输出信息

以'nsf'词性为例,

 print pynlpir._get_pos_name('nsf',name='parent',english=True) # noun
print pynlpir._get_pos_name('nsf',name='child',english=True) # transcribed toponym
print pynlpir._get_pos_name('nsf',name='all',english=False) # 名词:地名:音译地名

2) pynlpir.open(data_dir=nlpir.PACKAGE_DIRencoding=ENCODINGlicense_code=None)

相当于pynlpir.nlpir.Init()方法

3) pynlpir.close()

相当于pynlpir.nlpir.Exit()方法

4) pynlpir.segment(spos_tagging=Truepos_names='parent'pos_english=True)

 r_list= pynlpir.segment('Python环境下NLPIR中文分词系统使用攻略', pos_tagging=True, pos_names='child', pos_english=True)
for w in r_list:
print w[0].encode('gbk'),'\t',w[1]
'''
Python other proper noun
环境 noun
下 noun of locality
NLPIR noun
中文 other proper noun
分词 verb
系统 noun
使用 verb
攻 verb
略 adverb
'''

segment示例

5)pynlpir.get_key_words(smax_words=50weighted=False)

print pynlpir.get_key_words('Python环境下NLPIR中文分词系统使用攻略',2,True)

# [(u'NLPIR', 3.75), (u'Python', 3.0)]

Python环境下NIPIR(ICTCLAS2014)中文分词系统使用攻略的更多相关文章

  1. CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)

    Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...

  2. $ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略

    博主之前写过一篇文章<html5与EmguCV前后端实现——人脸识别篇>,叙述的是opencv和C#的故事.最近在公司服务器上更新了一套nodejs环境,早就听闻npm上有opencv模块 ...

  3. win7下安装Linux实现双系统全攻略

    http://jingyan.baidu.com/article/c275f6bacc3326e33c756743.html

  4. linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg)

     linux环境下安装sphinx中文支持分词搜索(coreseek+mmseg) 2013-11-10 16:51:14 分类: 系统运维 为什么要写这篇文章? 答:通过常规的三大步(./confi ...

  5. python环境下实现OrangePi Zero寄存器访问及GPIO控制

    最近入手OrangePi Zero一块,程序上需要使用板子上自带的LED灯,在网上一查,不得不说OPi的支持跟树莓派无法相比.自己摸索了一下,实现简单的GPIO控制方法,作者的Zero安装的是Armb ...

  6. NLPIR(北理工张华平版中文分词系统)的SDK(C++)调用方法

    一.本文内容简介 二.具体内容 1. 中文分词的基本概念 2.关于NLPIR(北理工张华平版中文分词系统)的基本情况 3.具体SDK模块(C++)的组装方式 ①准备内容: ②开始组装 三.注意事项 一 ...

  7. dedecms 在php5.4以上环境下 无法保存中文

    dedecms gbk版本在php5.4以上环境下 无法保存中文 原因在于5.4.0对这个函数的变化:htmlspecialchars5.4.0   The default value for the ...

  8. Azure REST API (4) 在Python环境下,使用Azure REST API

    <Windows Azure Platform 系列文章目录> 之前遇到的项目中,客户需要在Python环境下,监控Azure VM的CPU利用率,在这里简单记录一下. 笔者的环境是Win ...

  9. 图像处理基本工具——Python 环境下的 Pillow( PIL )

    由于笔者近期的研究课题与图像后处理有关,需要通过图像处理工具对图像进行变换和处理,进而生成合适的训练图像数据.该系列文章即主要记录笔者在不同的环境下进行图像处理时常用的工具和库.在 Python 环境 ...

随机推荐

  1. MyEclipse Spring 学习总结三 SpringMVC 表单处理

    SpringMVC 表单处理的项目结构如下图所示: Student.java 文件 public class Student { private Integer age; private String ...

  2. C语言中数据类型取值范围的计算的理解与总结

    c语言中,数据类型有short,int,long,char,float,double,然后除了浮点型只有 有符号数(signed)外,其他的数据类型都分为有符号(signed)和无符号(unsigne ...

  3. Windows下PHP版本选取

    1. 下载地址 http://windows.php.net/download/ 2. PHP大版本 PHP4:由于太古老.对OO支持不力已基本被淘汰. PHP5:分为三个分支——PHP5.2之前的版 ...

  4. [IIS]在CMD中IIS的使用

    一.打开IIS管理器1,win+r,打开"运行" 2,输入 InetMgr,就打开了IIS管理器 二.IIS其他相关命令iisreset /RESTART 停止后启动 iisres ...

  5. ThinkPHP 3.2.3 Pager分页

    不是很喜欢TP的分页类,因为生成的分页url感觉有点不好理解,例如访问路径xxxx/home/show.html,在模板输出分页后,例如产生了页码,页码链接的路径会变成xxxx/home/show/p ...

  6. 【解决】SharePoint外部列表保存的日期/时间值不正确

    [问题描述]: 在SharePoint中创建一个外部列表后,通过工作流或直接通过外部列表中的新增向外部列表添加数据项.通过外部列表或数据库查看添加的数据项时发现日期类型字段的值都不正确,像是差了若干个 ...

  7. mac下配置openfire

    下载 在浏览器中打开如下网址http://www.igniterealtime.org/downloads/index.jsp,根据你的操作系统选择对应的版本进行下载,这里我是在mac下配置的,所以选 ...

  8. IOS 关于扬声器和听话筒的设置 ----自己试验过的,可以达到扩音器和听筒播放的效果

    今下午项目中使用到了 扬声器和听筒的设置,我项目中是这样的,有一个聊天设置,聊天设置有一个使用扬声器 播放声音的设置. 这个设置是,当你打开那个开关的话,你在聊天中都可以根据你的使用来任意的播放声音, ...

  9. cs11_c++_lab2

    Matrix.hh class Matrix { int row; int col; int *p; public: Matrix(); Matrix(int x,int y); ~Matrix(); ...

  10. 关于position:absolute的困惑

    今天在学习<精通css>时碰到一个问题,第六章“对列表应用样式和创建导航条”中的“Suckerfish下拉菜单”中,为了创建导航条的下拉菜单,文中提到的方法是:先设置下拉菜单的positi ...