前言
关毅老师,现为哈工大计算机学院语言技术中心教授,博士生导师。通过认真学习了《自然语言处理(哈工大 关毅 64集视频)》1(来自互联网)的课程,受益良多,在此感谢关毅老师的辛勤工作!为进一步深入理解课程内容,对部分内容进行了延伸学习2 3,在此分享,期待对大家有所帮助,欢迎加我微信(验证:NLP),一起学习讨论,不足之处,欢迎指正。
视频列表:
01自然语言处理绪论 一
02自然语言处理绪论 二
03自然语言处理绪论 三
04自然语言处理绪论 四
05自然语言处理绪论 五
06自然语言处理概论 六
07自然语言处理概论 七
08自然语言处理概论 八
09自然语言处理概论 九
哈工大(LTP)开始使用
关于相似的研究,提出系统相似度测度的理论模型
咬死了猎人的狗
那只狼咬死了猎人的狗
咬死了猎人的狗失踪了
At last, a computer that understands you like your mother.
– 1985 McDonnell-Douglas ad
含义1:计算机会象你的母亲那样很好地理解你(的语言)
含义2:计算机理解你喜欢你的母亲
含义3:计算机会象很好地理解你的母亲那样理解你
取法其上,仅得其中;取法其中,仅得其下;取法其众,得其上。-中国古代思想家
Every important idea is simple -列夫.托尔斯泰
The grand aim of all science is to cover the greatest number of empirical facts by logical deduction from the smallest number of hypotheses or axioms -爱因斯坦
Mindjet MindManager (ver 8.0)
Biblioscape(ver 7.0)
Christopher Manning and Hinrich Schutze: Foundations of Statistical Language Processing, MIT press, 1999(有中译本,译者 苑春法 等)
自然语言处理综论 Daniel Jurafsky &James H. Martin著 冯志伟 孙乐 译
王晓龙、关毅 《计算机自然语言处理》 清华大学出版社 2005年
定义1:研究在人与人交际中以及在人与计算机交际中的语言问题的一门学科。自然语言处理要研制表示语言能力和语言应用的模型,建立计算框架来实现这样的语言模型,提出相应的方法来不断地完善这样的语言模型,根据这样的语言模型设计各种实用系统,并探讨这些实用系统的评测技术。—Bill Manaris
基于语言学规则的模型。
根据不同的语言处理应用而建立的特定语言模型,通常是基于统计的模型。又称“经验主义的”语言模型。上世纪80年代崛起的统计自然语言模型可以归入。
自然语言处理的重要研究专题之一。
国际公认的自然语言研究竞技场:
定义2:是人工智能和语言学的交叉学科,研究自然语言的自动生成与理解。
自然语言处理是人工智能的重要分支,也是应用语言学的分支。
音位学
描述音位的结合规律,说明音位怎样形成语素
举例:“delete file x”->dilet’#fail#eks
形态学
描述语素的结合规律,说明语素怎样形成单词
举例: dilet’#fail#eks->”delete” “file” “x”
语用学
描述与情景有关的情景语义,说明怎样推导出句子具有的与周围话语有关的各种涵义
举例:delete-file(‘x’)->rm -i x
词是自然语言中最小的有意义的构成单位。
研究内容
应用
本文实验环境为64位win7系统,64位python3.5.2
(1)LTP项目文件ltp-3.3.1-win-x86.zip
https://github.com/HIT-SCIR/ltp/releases
(2)LTP模型文件ltp_data_v3.3.1
http://pan.baidu.com/share/link?shareid=1988562907&uk=2738088569
(1)新建一个项目文件夹:C:\projects\ltp;
(2)将模型文件解压后的ltp_data文件夹放入项目文件夹;
(3)将ltp-3.3.1-win-x86.zip解压后的dll、exe文件全部拷入项目文件夹。
将路径C:\projects\ltp 添加到Windows系统环境变量Path中
LTP提供的模型包括:(在ltp_data文件夹)
cws.model 分句模型,单文件
pos.model 词性标注模型,单文件
ner.model 命名实体识别模型,单文件
parser.model 依存句法分析模型,单文件
srl_data/ 语义角色标注模型,多文件(文件夹srl)
ltp_test是一个整合LTP中各模块的命令行工具。它完成加载模型,依照指定方法执行分析的功能。
主要参数:线程数、最终步骤、输入文件路径、模型路径、词典路径等。具体可通过CMD运行ltp_test.exe查看。
test.txt
#coding=utf-8
txtName = "C:\\projects\\ltp\\file\\test.txt"
f = open(txtName,'w',,encoding='utf-8')
f.write('我爱北京天安门!')
f.close()
调用ltp_test
# -*- coding: utf-8 -*-
import os
project_path = "C:\\projects\\ltp\\" # 项目文件夹目录
# 可设置(cws、pos、par、ner)_cmdline,但是注意各自能用的参数,没有的参数请置空""
model_exe = "ltp_test" # 又如cws_cmdline
threads_num = " --threads "+str(2) # 更改线程数
input_path = " --input "+"C:\\projects\\ltp\\file\\test.txt" # 输入文件
seg_lexicon = "" # 分词用户词典
pos_lexicon = "" # 词性标注用户词典
output_path = "C:\\projects\\ltp\\result\\out.txt" # 输出文件
command = "cd "+project_path+" & "+model_exe+threads_num+input_path+seg_lexicon+" > "+output_path
os.system(command)
(1)cws_cmdline :分词命令行
(2)pos_cmdline :词性标注命令行
(3)par_cmdline :句法分析命令行
(4)ner_cmdline :命名实体识别命令行
https://pyltp.readthedocs.io/zh_CN/latest/
$ git clone https://github.com/HIT-SCIR/pyltp
$ git submodule init
$ git submodule update
$ python setup.py install
注意:有时候装python库的时候,会出现Microsoft visual c++ 14.0 is required的问题,欢迎加我微信(验证:NLP),一起研究解决。
-下载 LTP 模型文件
当前模型版本 - 3.4.0
# -*- coding: utf-8 -*-
from pyltp import SentenceSplitter
sents = SentenceSplitter.split('我爱北京天安门?天安门上太阳升!') # 分句
print( '\n'.join(sents))
结果如下
我爱北京天安门?
天安门上太阳升!
参考文献
《自然语言处理(哈工大 关毅 64集视频)》(来自互联网) ↩︎
王晓龙、关毅 《计算机自然语言处理》 清华大学出版社 2005年 ↩︎
哈工大语言技术平台云官网:http://ltp.ai/ ↩︎