1. Introduction to NLP
之前在Coursera上找到了一门NLP的课,也跟过一段时间,但是没跟完。。。本来想再开课时再跟一次,但是从网站上看貌似是短期内不会重开了,好在教学视频都在,只好自学一下了,顺便把笔记记在这里。
第一周的课分成了三个部分,这里是第一部分,对NLP的简单介绍,由于不涉及具体的NLP算法,所以我也只是简单带过了。
什么是自然语言处理
- NLU:自然语言理解,把languge作为computer的输入,让后者理解输入的是啥;
- NLG:自然语言生成,把language作为computer的输出,即让后者生成自然语言;个人感觉这应该是在NLU的基础上才能做的。
具体应用的举例
- 机器翻译:理解源语言,生成目标语言,这个应该是NLU+NLG。
- 信息抽取:从一段非结构化的自然语言的文本中抽取出关键信息,如这段话描述的时间,位置,事件等结构化信息(这些结构后信息通常存于db中),换句话说就是想把一段文本对应到一条数据库记录上。应该场景可以是复杂的search query或者statistical query。
- 摘要:同样也是NLU+NLG。需要先理解这段文本的意思,然后进行压缩,输出摘要内容。
- 对话系统:接受自然语言的问题,理解之,再做出回答,也是NLU+NLG。
基础的NLP问题:这些问题是解决上面具体应用的基石
- Tagging:标注问题,把一段文本做为输入,为每个单位打上一个标记,输出对应的标记序列。包括POS Tagging(词性标注),Named Entity Recognition(命名实体识别)。
- Parseing:解析问题,以一句话做为输入,辨识出它的语法结构,输出是一棵语法树。这两个问题后面都有章节具体地讲。
为什么NLP是个难题
一句话可能有各种层次上的歧义,包括acoustic level(like your vs lie cured),syntactic level(不同的语法树,从而造成不同的意义),semantic level(一词多义), discourse level(指代不明)。
课程包含的内容
- NLP问题:POS tagging,parsing,词义消歧
- 机器学习技术:PCFG,HMM,EM,log-linear model,estimation/smoothing techniques
- 应用:信息抽取,机器翻译等