哈工大语言云(LTP)本地安装使用及Python调用
2016-04-17 17:51
661 查看
备注:本文实验环境为64位win7系统,32位python2.7.11
哈工大LTP官方主页:http://ltp.readthedocs.org/zh_CN/latest/index.html
1.LTP下载
(1)LTP项目文件ltp-3.3.1-win-x86.zip
(2)LTP模型文件3.3.1(2016年4月13日前)
下载地址参考:http://ltp.readthedocs.org/zh_CN/latest/install.html
Windows系统直接下载编译好的二进制文件ltp-3.3.1-win-x86.zip,不用管编译。
2.文件夹放置
(1)新建一个项目文件夹:D:\myprojects\LTP;
(2)将模型文件解压后的ltp_data文件夹放入项目文件夹;
(3)将ltp-3.3.1-win-x86.zip解压后的dll、exe文件全部拷入项目文件夹。
最后文件夹列表如下:
说明:因为内部默认路径的关系,这样放置可以使ltp_data文件夹处在默认路径上。
3.Python使用ltp_test
LTP提供的模型包括:(在ltp_data文件夹)
cws.model 分句模型,单文件
pos.model 词性标注模型,单文件
ner.model 命名实体识别模型,单文件
parser.model 依存句法分析模型,单文件
srl_data/ 语义角色标注模型,多文件(文件夹srl)
ltp_test是一个整合LTP中各模块的命令行工具。它完成加载模型,依照指定方法执行分析的功能。
主要参数:线程数、最终步骤、输入文件路径、模型路径、词典路径等。
具体可通过CMD运行ltp_test.exe查看。
python程序简单调用:
4.Python使用xxx_cmdline
(1)cws_cmdline :分词命令行
(2)pos_cmdline :词性标注命令行
(3)par_cmdline :句法分析命令行
(4)ner_cmdline :命名实体识别命令行
python程序简单调用(以cws_cmdline为例,其他类似,参数略不同)
5.注意事项
(1)长度限制:为了防止输入过长句子对稳定性造成影响,限制输入字数少于1024字,分词结果少于256词。
(2)编码:统一采用UTF-8
6.使用心得
(1)ltp_test输出结果只有xml格式;(在线ltp-cloud api调用可以返回多种格式)
(2)ltp_test可以自动分句,遇到新的文本段落时,句子编号重新会从0开始(所以已经分好句的文本,输出结果中的句子编号都是0)
(3)单独使用某个功能模块时,需要事先分好句或者分好词;(不同分析之间存在的依赖关系)
(4)#、&、+等特殊符号不会影响LTP本地分析;(在线ltp-cloud api调用会有影响);
(5)cws_cmdline分词模块输出结果为plain格式,分词间隔用的是TAB制表符;
(6)pos_cmdline词性标注模块输出结果为plain格式,结果用TAB制表符分隔;词与词性之间以下划线(_)连接。
(7)分词用户词典问题:官方说“可以设置用户词典,但是ltp的分词模块并非采用词典匹配的策略,外部词典以特征方式加入机器学习算法,并不能保证所有的词都是按照词典里的方式进行切分。”
例子:“C++”、“互联网+”这样的词,加入词典还是不能切分出来。
(8)一定要注意编码问题:用户词典也要用UTF-8无BOM格式编码,如果是UTF-8格式编码,将导致第一行的词不能被正确识别(因为存在字节前缀)。
哈工大LTP官方主页:http://ltp.readthedocs.org/zh_CN/latest/index.html
1.LTP下载
(1)LTP项目文件ltp-3.3.1-win-x86.zip
(2)LTP模型文件3.3.1(2016年4月13日前)
下载地址参考:http://ltp.readthedocs.org/zh_CN/latest/install.html
Windows系统直接下载编译好的二进制文件ltp-3.3.1-win-x86.zip,不用管编译。
2.文件夹放置
(1)新建一个项目文件夹:D:\myprojects\LTP;
(2)将模型文件解压后的ltp_data文件夹放入项目文件夹;
(3)将ltp-3.3.1-win-x86.zip解压后的dll、exe文件全部拷入项目文件夹。
最后文件夹列表如下:
说明:因为内部默认路径的关系,这样放置可以使ltp_data文件夹处在默认路径上。
3.Python使用ltp_test
LTP提供的模型包括:(在ltp_data文件夹)
cws.model 分句模型,单文件
pos.model 词性标注模型,单文件
ner.model 命名实体识别模型,单文件
parser.model 依存句法分析模型,单文件
srl_data/ 语义角色标注模型,多文件(文件夹srl)
ltp_test是一个整合LTP中各模块的命令行工具。它完成加载模型,依照指定方法执行分析的功能。
主要参数:线程数、最终步骤、输入文件路径、模型路径、词典路径等。
具体可通过CMD运行ltp_test.exe查看。
python程序简单调用:
# -*- coding: utf-8 -*- """ 学习:python执行CMD命令command,可以用&连接多个命令 功能:python调用CMD命令来执行本地LTP功能 时间:2016年4月13日 19:07:41 """ import os project_path = "d:\\myprojects\\LTP" # 项目文件夹目录 # 可设置ltp_test、(cws、pos、par、ner)_cmdline,但是注意各自能用的参数,没有的参数请置空"" model_exe = "ltp_test" # 又如cws_cmdline threads_num = " --threads "+str(3) # 更改线程数 last_stage = " --last-stage "+"all" # 最终步骤,可设置ws、pos、ner、dp、srl、all input_path = " --input "+"d:\\myprojects\\LTP\\file\\test.txt" # 输入文件 seg_lexicon = "" # 分词用户词典 pos_lexicon = "" # 词性标注用户词典 output_path = "D:\\myprojects\\LTP\\result\\out.txt" # 输出文件 command = "cd "+project_path+" & "+model_exe+threads_num+input_path+last_stage+" > "+output_path os.system(command)
4.Python使用xxx_cmdline
(1)cws_cmdline :分词命令行
(2)pos_cmdline :词性标注命令行
(3)par_cmdline :句法分析命令行
(4)ner_cmdline :命名实体识别命令行
python程序简单调用(以cws_cmdline为例,其他类似,参数略不同)
# -*- coding: utf-8 -*- """ 功能:LTP本地分词cws_cmdline,输入文本需要每行一句。(不能自动分句) 时间:2016年4月13日 20:22:39 """ import os project_path = "d:\\myprojects\\LTP" # 项目文件夹目录 model_exe = "cws_cmdline" # 分词模块,相当于ltp_test的last_stage=ws,但是输出格式不同 threads_num = " --threads "+str(3) # 更改线程数 input_path = " --input "+"d:\\myprojects\\LTP\\file\\test.txt" # 输入文件 seg_lexicon = " --segmentor-lexicon "+"D:\\myprojects\\LTP\\file\\seg_lexicon.txt" # 分词用户词典 output_path = "D:\\myprojects\\LTP\\result\\out.txt" # 输出文件 command = "cd "+project_path+" & "+model_exe+threads_num+input_path+seg_lexicon+" > "+output_path os.system(command)
5.注意事项
(1)长度限制:为了防止输入过长句子对稳定性造成影响,限制输入字数少于1024字,分词结果少于256词。
(2)编码:统一采用UTF-8
6.使用心得
(1)ltp_test输出结果只有xml格式;(在线ltp-cloud api调用可以返回多种格式)
(2)ltp_test可以自动分句,遇到新的文本段落时,句子编号重新会从0开始(所以已经分好句的文本,输出结果中的句子编号都是0)
(3)单独使用某个功能模块时,需要事先分好句或者分好词;(不同分析之间存在的依赖关系)
(4)#、&、+等特殊符号不会影响LTP本地分析;(在线ltp-cloud api调用会有影响);
(5)cws_cmdline分词模块输出结果为plain格式,分词间隔用的是TAB制表符;
(6)pos_cmdline词性标注模块输出结果为plain格式,结果用TAB制表符分隔;词与词性之间以下划线(_)连接。
(7)分词用户词典问题:官方说“可以设置用户词典,但是ltp的分词模块并非采用词典匹配的策略,外部词典以特征方式加入机器学习算法,并不能保证所有的词都是按照词典里的方式进行切分。”
例子:“C++”、“互联网+”这样的词,加入词典还是不能切分出来。
(8)一定要注意编码问题:用户词典也要用UTF-8无BOM格式编码,如果是UTF-8格式编码,将导致第一行的词不能被正确识别(因为存在字节前缀)。
相关文章推荐
- Python浅拷贝和和深拷贝
- Python之我见
- python中的random模块学习
- Python调用哈工大语言云(LTP)API进行自然语言处理
- Python运算符
- python显示系统信息脚本
- CS231n - CNN for Visual Recognition Assignment1 ---- KNN
- Python处理错误三种方式
- Python中的字典(dict)
- <Python><Ubuntu>安装geopandas
- Python 列表 (List)
- Python 集合(set)类型的操作
- Python中的序列结构数据类型
- Scikit-learn学习笔记(一)
- python安装遇到的问题
- pip安装mysql-python报致命错误:my_config.h:没有那个文件或目录
- python.杨辉三角.生成器
- 机器学习算法——感知机(Python源码)
- 初试Visual Studio Code配置Python开发环境
- 在python(windows操作系统)中安装、配置Tushare,希望对股票有兴趣的程序员有一点点帮助