LTP 是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。LTP 制定了基于 XML 的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块 (包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口,可视化工具,并且能够以网络服务(Web Service)的形式进行使用。
LTP 系统框架图如下所示:
LTP提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。从应用角度来看,LTP为用户提供了下列组件:
- 针对单一自然语言处理任务,生成统计机器学习模型的工具
- 针对单一自然语言处理任务,调用模型进行分析的编程接口
- 系统可调用的,用于中文语言处理的模型文件
- 针对单一自然语言处理任务,基于云端的编程接口
1 pyltp安装
pyltp 是 LTP 的 Python 封装,提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能。
pip install pyltp
接下来,需要下载 LTP 模型文件。下载地址为:下载地址
选择模型版本为ltp_data_v3.4.0.zip
请确保下载的模型版本与当前版本的 pyltp 对应,否则会导致程序无法正确加载模型。
将压缩包解压,里面提供了多个模型文件,主要包括:
cws.model 分句模型
pos.model 词性标注模型
ner.model 命名实体识别模型
parser.model 依存句法分析模型
pisrl.model 语义角色标注模型
2 pyltp 使用
分句
from pyltp import SentenceSplitter #分句,对句子进行切分
sentence = SentenceSplitter.split("他叫汤姆拿外衣。汤姆生病了。他去了医院。")
print("\n".join(sentence))
segmentor.release() # 释放模型
他叫汤姆拿外衣。
汤姆生病了。
他去了医院。
分词
from pyltp import Segmentor#导入Segmentor库
math_path = "/home/lxn/goal/ltp/ltp_data_v3.4.0/cws.model"#LTP分词模型库
segmentor = Segmentor()#实例化分词模块
segmentor.load(math_path)#加载分词库
words = segmentor.segment("他叫汤姆拿外衣。")
print(' '.join(words).split())#分割分词后的结果
segmentor.release() # 释放模型
['他', '叫', '汤姆', '拿', '外衣', '。']
type