分类目录归档:词性标注

哥伦比亚大学经典自然语言处理公开课,数学之美中盛赞的柯林斯(Michael Collins)教授授课

AINLP

在我读书的时候,最早是从谷歌黑板报中吴军老师的《数学之美》里了解到 Michael Collins 教授的,在“数学之美 系列十五 繁与简 自然语言处理的几位精英”,是这样描述他的:

​柯林斯:追求完美

柯林斯从师于自然语言处理大师马库斯 (Mitch Marcus)(我们以后还会多次提到马库斯),从宾夕法利亚大学获得博士学位,现任麻省理工学院 (MIT) 副教授(别看他是副教授,他的水平在当今自然语言处理领域是数一数二的),在作博士期间,柯林斯写了一个后来以他名字命名的自然语言文法分析器 (sentence parser),可以将书面语的每一句话准确地进行文法分析。文法分析是很多自然语言应用的基础。虽然柯林斯的师兄布莱尔 (Eric Brill) 和 Ratnaparkhi 以及师弟 Eisnar 都完成了相当不错的语言文法分析器,但是柯林斯却将它做到了极致,使它在相当长一段时间内成为世界上最好的文法分析器。柯林斯成功的关键在于将文法分析的每一个细节都研究得很仔细。柯林斯用的数学模型也很漂亮,整个工作可以用完美来形容。我曾因为研究的需要,找柯林斯要过他文法分析器的源程序,他很爽快地给了我。我试图将他的程序修改一下来满足我特定应用的要求,但后来发现,他的程序细节太多以至于很难进一步优化。柯林斯的博士论文堪称是自然语言处理领域的范文。它像一本优秀的小说,把所有事情的来龙去脉介绍的清清楚楚,对于任何有一点计算机和自然语言处理知识的人,都可以轻而易举地读懂他复杂的方法。

柯林斯毕业后,在 AT&T 实验室度过了三年快乐的时光。在那里柯林斯完成了许多世界一流的研究工作诸如隐含马尔科夫模型的区别性训练方法,卷积核在自然语言处理中的应用等等。三年后,AT&T 停止了自然语言处理方面的研究,柯林斯幸运地在 MIT 找到了教职。在 MIT 的短短几年间,柯林斯多次在国际会议上获得最佳论文奖。相比其他同行,这种成就是独一无二的。柯林斯的特点就是把事情做到极致。如果说有人喜欢“繁琐哲学”,柯林斯就是一个。

Michael Collins 教授目前在哥伦比亚大学任教,不仅技术水平高,人也很帅,是公认的男神,这门自然语言处理公开课(Natural Language Processing)大约录制于2013年,课程主页包括了课件及其他相关资料,感兴趣的同学可以参考:

http://www.cs.columbia.edu/~cs4705/

这门课程大致录制于2013年左右,也是深度学习NLP的史前经典NLP课程,适合修完斯坦福NLP入门课程之后继续学习。我们建立了一个NLP入门学习群,感兴趣的同学可以添加微信AINLPer(id: ainlper) ,备注“NLP入门”进群一起交流学习。

关于这门课程,早期有一些同学在课程图谱里留言评价过,以下选择几条供大家参考:

“非常好的一门课,不像其他课程那么水,完完整整的哥伦比亚课程,如果认真学完肯定收获很多,花的时间绝对物有所值。科林斯的讲解非常清晰,内容涵盖了语言建模,解码算法,学习算法几个方面。

语言及翻译模型:n元模型,HMM模型,log-linear模型,GLM模型,IBM 1模型,IBM2 模型,phrase-based翻译模型,PCFG语法,LPCFG语法

解码算法:Viterbi算法,CKY算法,GLM Viterbi算法

学习算法:Brown聚类算法,Perceptron算法,EM算法

应用举例:词性标注/实体识别(HMM, GLM, log-linear),语法树标注(PCFG, dependecny-based),机器翻译”

=========================================================================================

“Proferssor Collins讲课十分清晰,课程大体覆盖到了NLP的比较基础的内容,编程作业十分具有针对性,由于不是特别熟悉python,我做起来特别费劲,基本上每个PA我都做了10小时以上。课程难度中上,建议有一定python和machine learning基础的同学学习。”

=========================================================================================

“跟斯坦福那门nlp比起来,这门的理论性更强,学起来也稍为枯燥一点,但是各种模型讲得很简单明了,推荐看了斯坦福的nlp后再来学这个”

我把这门课程整理了一下按章节放在了B站,感兴趣的同学可以关注,如果你需要视频课件字幕之类的打包文件,可以关注我们的公众号,回复“Collins"获取百度网盘链接:

哥伦比亚大学自然语言处理公开课-第一讲课程介绍

https://www.bilibili.com/video/BV1v7411d7hj/

哥伦比亚大学自然语言处理公开课-第二讲语言模型

https://www.bilibili.com/video/BV1b7411R7Dk/

哥伦比亚大学自然语言处理公开课-第三讲语言模型参数估计第四讲总结

https://www.bilibili.com/video/BV1s7411R7G3/

哥伦比亚大学自然语言处理公开课-第五讲词性标注和隐马尔可夫模型

https://www.bilibili.com/video/BV1nE411P7LS/

哥伦比亚大学自然语言处理公开课-第六讲句法分析和上下文无关文法

https://www.bilibili.com/video/BV1JE411P7fL/

哥伦比亚大学自然语言处理公开课-第七讲概率上下文无关文法

https://www.bilibili.com/video/BV1aE411P7Et/

哥伦比亚大学自然语言处理公开课-第八讲第九讲概率上下文无关文法的弱点以及词法化

https://www.bilibili.com/video/BV1aE411P7Kh/

哥伦比亚大学自然语言处理公开课-第十讲机器翻译介绍

https://www.bilibili.com/video/BV1dE411P7cT/

哥伦比亚大学自然语言处理公开课-第十一讲IBM翻译模型

https://www.bilibili.com/video/BV1mE411P7ng/

哥伦比亚大学自然语言处理公开课-第十二讲基于短语的机器翻译模型

https://www.bilibili.com/video/BV12E411P7RT/

哥伦比亚大学自然语言处理公开课-第十三讲机器翻译解码算法

注:视频一直在B站审核,审核通过后更新链接,或者通过网盘链接获取

哥伦比亚大学自然语言处理公开课-第十四讲对数线性模型

https://www.bilibili.com/video/BV1oE411c7Zd/

哥伦比亚大学自然语言处理公开课-第十五讲基于对数线性模型的词性标注

https://www.bilibili.com/video/BV1oE411c7hd/

哥伦比亚大学自然语言处理公开课-第十六讲基于对数线性模型的句法分析

https://www.bilibili.com/video/BV1oE411c7Sg/

哥伦比亚大学自然语言处理公开课-第十七讲无监督学习

https://www.bilibili.com/video/BV1ZE411c7zT/

哥伦比亚大学自然语言处理公开课-第十八讲广义线性模型

https://www.bilibili.com/video/BV1ZE411c7ER/

哥伦比亚大学自然语言处理公开课-第十九讲基于广义线性模型的词性标注

https://www.bilibili.com/video/BV1FE411w75M/

哥伦比亚大学自然语言处理公开课-第二十讲基于广义线性模型的依存句法分析

https://www.bilibili.com/video/BV1fE411c7pj/

最后附上百度百科中关于柯林斯教授的介绍:

自然语言处理专家,哥伦比亚大学教授,开发了著名的句法分析器Collins Parser。

工作经历:

1999年1月至2002年11月,AT&T实验室,研究人员;

2003年1月至2010年12月,美国麻省理工学院(MIT),助理教授/副教授;

2011年1月至今,美国哥伦比亚大学,Vikram Pandit教席教授。

主要成就:

获EMNLP 2002, EMNLP 2004, UAI 2004, UAI 2005, CoNLL 2008, EMNLP 2010最佳论文奖。

人物评价:

有些学者将一个问题研究到极致,执著追求完善甚至可以说达到完美的程度。他们的工作对同行有很大的参考价值,因此在科研中很需要这样的学者。在自然语言处理方面新一代的顶级人物迈克尔·柯林斯就是这样的人。——吴军《数学之美》

百度深度学习中文词法分析工具LAC试用之旅

AINLP

之前在调研中文分词词性标注相关工具的时候就发现了百度的深度学习中文词法分析工具:baidu/lac(https://github.com/baidu/lac),但是通过这个项目github上的文档描述以及实际动手尝试源码编译安装发现非常繁琐,缺乏通常中文分词工具的易用性,所以第一次接触完百度lac之后就放弃了:

LAC是一个联合的词法分析模型,整体性地完成中文分词、词性标注、专名识别任务。LAC既可以认为是Lexical Analysis of Chinese的首字母缩写,也可以认为是LAC Analyzes Chinese的递归缩写。

LAC基于一个堆叠的双向GRU结构,在长文本上准确复刻了百度AI开放平台上的词法分析算法。效果方面,分词、词性、专名识别的整体准确率95.5%;单独评估专名识别任务,F值87.1%(准确90.3,召回85.4%),总体略优于开放平台版本。在效果优化的基础上,LAC的模型简洁高效,内存开销不到100M,而速度则比百度AI开放平台提高了57%。

本项目依赖Paddle v0.14.0版本。如果您的Paddle安装版本低于此要求,请按照安装文档中的说明更新Paddle安装版本。如果您使用的Paddle是v1.1以后的版本,请使用该项目的分支for_paddle_v1.1。注意,LAC模块中的conf目录下的很多文件是采用git-lfs存储,使用git clone时,需要先安装git-lfs。

为了达到和机器运行环境的最佳匹配,我们建议基于源码编译安装Paddle,后文也将展开讨论一些编译安装的细节。当然,如果您发现符合机器环境的预编译版本在官网发布,也可以尝试直接选用。

最近发现百度将自己的一些自然语言处理工具整合在PaddleNLP下,文档写得相对清楚多了:

PaddleNLP是百度开源的工业级NLP工具与预训练模型集,能够适应全面丰富的NLP任务,方便开发者灵活插拔尝试多种网络结构,并且让应用最快速达到工业级效果。

PaddleNLP完全基于PaddlePaddle Fluid开发,并提供依托于百度百亿级大数据的预训练模型,能够极大地方便NLP研究者和工程师快速应用。使用者可以用PaddleNLP快速实现文本分类、文本匹配、序列标注、阅读理解、智能对话等NLP任务的组网、建模和部署,而且可以直接使用百度开源工业级预训练模型进行快速应用。用户在极大地减少研究和开发成本的同时,也可以获得更好的基于工业实践的应用效果。

继续阅读

八款中文词性标注工具使用及在线测试

AINLP

结束了中文分词工具的安装、使用及在线测试,开启中文词性标注在线测试之旅,一般来说,中文分词工具大多数都附带词性标注功能的,这里测试了之前在AINLP公众号上线的8款中文分词模块或者工具,发现它们都是支持中文词性标注的,这里面唯一的区别,就是各自用的词性标注集可能有不同:

以下逐一介绍这八个工具的中文词性标注功能的使用方法,至于安装,这里简要介绍,或者可以参考之前这篇文章:Python中文分词工具大合集:安装、使用和测试,以下是在Ubuntu16.04 & Python3.x的环境下安装及测试。
继续阅读