文 | Serena Gao@知乎

首先,做nlp不一定要很懂语言学,也不一定要跟语言学扯上关系。nlp可以仅是data mining,features engineering, 也的确有很多work目前在用文本或者对话做为数据集,然后用统计学方法实现目的,比如deep learning 。在某些任务上统计学模型功不可没,比如machine translation, speech recognition, question answering, etc.

许多主流大公司目前的力度都在deep learning, 学好nlp基本知识,做工程就够了(当然你还需要cs的background), 语言学的东西不用太深入研究。

大多数人对nlp和语言学联系的了解,在于认为rule-based的nlp就是基于语言学。的确rule-based是语言学里广泛使用的,尤其是语法(syntax, syntactic structure)。现在machine learning的发展已经可以将rules转换为hidden states,人不用去操心提出大量rules来做exhaustive search。

但computational linguistics所包含的,远远大于rules。人类语言是漫长历史进化的高级产物,远不是成千上万个rules能描述清楚的。能被nlp利用的语言学,除了枚举rules外还有很多很多。

比如定义。个人认为,在研究任何问题前,都必须要想清楚你的问题是什么,怎么定义。许许多多nlp research都是基于语言学上的定义,像我下文会提到的semantics, grammar。可是如果没有从沿用语言学的定义到nlp,这个0到1的过程,最早做researchers的人该如何想明白他们的research question?

做对话系统的同学应该很熟悉dialogue acts. 现在的对话系统发展迅猛,很多新应用都基于reinforcement learning, 并且取得显著成就。尤其是某些task-oriented dialogue generator, 早就不是十多年前的rule-based system了。但任何一个系统在设计之初都要采用dialouge acts定义(当然还有其他定义),来明确该系统的目的。不然该系统如何区分wh-question, yes-no question, greetings, 还有其他?(如果觉得见到“wh-”开头,问号结尾,就是一个wh-question rule, 那我不知道该说什么好了)

明确自己的research task并且贯彻到底是好事,如果要做language modeling,基于machine learning/deep learning, 那真的不用费时间在语言学上。但觉得语言学是rule based已经过时了被淘汰了,这个锅语言学真的背的有点冤呀。

接下来的回答是,给真正对computational linguistics和nlp本身感兴趣的,对某些语言现象感兴趣,并打算在这条路上开始钻研的同学的一些建议。(想忽略细节的同学请直接拉到答案最后找reference)

人大脑工作不是靠probablistic language modeling,咱们谁的脑袋里都不会听到一个词然后跑一遍hidden markov,毕竟也进化了这么多年了不是。

与nlp相关,跟概率论并进的,除了传统的语言学,还有logic呢,Lofti Zadeh老爷爷研究了一辈子的fuzzy logic,也是在探究semantics&world knowledge (再次感谢老爷爷的贡献,r.i.p)。

我也并不是在强调概率模型不重要,概率模型和现在很火的deep learning architecture像是基本功一样,而且是很好用的工具,其他答主已经强调很多,我就不再重复了。除了这些,还有很多知识可以深入了解。

另外,语言学自身是个很大又很宽泛,又互相交叉的学科。有很多研究是跟literatures and arts有关,有的是跟cognitive science有关,还有neuroscience, mathematics, education, psychology, etc。我涉猎有限,在此只能回答跟computational linguistics有关("to the best of my knowledge")。

Grammar

Grammar是我会首先推荐的方向。Grammar分为morphology&syntax. 在这里我主要指syntax.细节可以看Chomsky, Michael Colins, Jason Eisner等人的工作。现在大家用的最多的应该是stanford的syntactic parsing吧。这方面的工作已经很成熟,要处理语言基本是拿来就能用了。但是语法树到底是什么,怎么构建,syntatic parsing优势,如何处理ambiguity, 想要做computational linguistics的话,这些很有必要知道。最基本的例子是,当用parser来处理你的句子,你起码要能看懂这个parser output是否make sense.

Semantics

这个部分是我做最多的,感觉也是被误解最多的。尤其推荐 “Meaning in language: An introduction to Semantics and Pragmatics.” 我并没有看完。Semantics是个很复杂的研究,可以涉及到语法,句法,world knowledge, 但最终还是回归semantics自身。目前nlp里很火的有distributional semantic representation (word embedding, phrase embedding, sentence embedding, etc), semantic parsing (logical form, etc), 等等等等。同一句话可以表达的意思太多了,同一个意思带来的表达形式也太多了。一个简单句子里包含的意思会涉及到当下对话双方的情景,以前或者以后会发生的事,等等。举个个人很喜欢的例子:

2016年美国大选first presidential debate, Clinton vs Trump, 当trump被问到:
“does the public's right to know outweigh your personal .. (taxes)”
Trump: "... I will release my tax returns -- against my lawyer's wishes -- when she releases her 33000 emails that have been deleted. As soon as she releases them, I will release. ".
最后一句话(粗体)包含的语意有:
等Hilary公开邮件记录之后,我就公开我的税务信息(动作和时间点);
Hilary没公开,我也没公开(当下既定事实);
Hilary不愿公开,我也不愿公开(sentiment)。
She -- Clinton, I, my, -- Trump, them -- 33000 emails (co-reference).

第一层意思是直观semantics, 能够被目前的semantic representation捕捉到。第二层是presupposition, 代表着在说话当下当事人双方默认已经发生的事情,是semantics研究中的难点;第三层包含了sentiment, 做情感分析的同学应该很了解,能否被目前的classifier捕捉到我不清楚。第四层是现在也很火的coreference resolution, 虽然原文里没有明确指代每个人称代词,但听众和当事人很直接能把每个人物代入,甚至包括Trump省略的"I will release (my taxes)". 目前的co-reference resolution,e.g. stanford corenlp, 可以解决前三个代词,但省略的部分似乎还做不到。

对Semantic要求最高也是最难的,在nlp中应该是在natural language understanding相关应用了。Semantics里包含了太多太多的现象,如果能稍微研究并且model其中一小部分,对downstream application来说都会是一个很大的boost。前段时间有个shared task,叫 "hedge detection",目的是找出文本信息中的hedges and cues。大部分人会关注这个shared task下哪个模型做的最好,个人认为难点是在定义。有“but”,"however"出现语意就一定转折了么?如果被转折,是所在句子,还是段落还是一个小phrase呢?有dependency存在么?另一个相似shared task是negation detection. 想要理解这些问题本身和其难点所在,computational linguistics的前期知识储备是并不可少的。

以上两个方面应该可以展现一个big picture:前者代表语言结构是如何构建的,后者代表meaning是如何被赋予到某种结构里面的。

除了大框架外,小的方向取决于你的兴趣和目标所在。对话?文本?natural language understanding or natural language generation?

另外提两个我觉得必看的,很重要的理论,是computational pragmatics范畴里的:Grice's maxims, 和Rational Speech Act(RSA). 这两个理论其实紧密相关。前者理论关于谈话双方为了有效沟通会有意识的遵守的一些principle, (同时可见“cooperative principle”), 后者关于为了达到这种有效沟通,对话当中存在的一种recursive process, 并且是bayesian inference. 如果你的工作跟 inference, reasoning相关,请一定要阅读。做对话系统的应该已经很熟悉了。

最后一个比较偏门的方向是我前面提到的fuzzy logic。目前还是有researcher继承Zadeh老爷爷的衣钵,并且用fuzzy logic做出了很多natural language generation, information extraction方面的成就。个人经验而言,我博士第一年(2014)一直在关注deep learning/machine learning方面,当时觉得它们是万能的。直到第二年夏天在忙一个project, 阅读了Zadeh老爷爷的大量工作,才感觉自己一直在以很片面的眼光看research。当时真的做了满满一本笔记。

最后,如果兴趣在建modeling,deep learning architecture, 语言学方面的part-of-speech也好,parsing也好,都只是你的工具;

同样,如果兴趣在computational linguistics,语言现象,deep learning/machine learning都是你的工具。

取决与你的任务是什么,取决于你有没有完全dedicated的信心。毕竟巴菲特和Geff Hinton是少数,大多数人都无法预测20年后火的适合什么。

感谢阅读。希望能给在犹豫是否开始computational linguistics和nlp研究同学们一些帮助。

(任何不准确的地方还请大家指正)

Reference

(大方向书籍,我要是能全部买下来就好了...并没有全部看完,有的只是看过某一章节。Grammar和syntax知乎里面有很多问答跟这方面有关,在此不重复了。)

  • Cruse, Alan. "Meaning in language: An introduction to semantics and pragmatics." (2011).

  • Karttunen, Lauri (1974) [1]. Theoretical Linguistics 1 181-94. Also in Pragmatics: A Reader, Steven Davis (ed.), pages 406-415, Oxford University Press, 1991.

  • Kadmon, Nirit. "Formal pragmatics semantics, pragmatics, presupposition, and focus." (2001).

  • Levinson, Stephen C. Pragmatics.Cambridge: Cambridge University Press, 1983, pp. 181-184.

  • Wardhaugh, Ronald. An introduction to sociolinguistics. John Wiley & Sons, 2010. (这本书的影响力很大,有很多跟social science的讨论)

(具体其他上面提到的,每一篇我都仔细读过的)

  • Monroe, Will, and Christopher Potts. "Learning in the rational speech acts model." arXiv preprint arXiv:1510.06807 (2015).(这篇是关于rsa如何被用于具体task上的)

  • Farkas, Richárd, et al. "The CoNLL-2010 shared task: learning to detect hedges and their scope in natural language text." Proceedings of the Fourteenth Conference on Computational Natural Language Learning---Shared Task. Association for Computational Linguistics, 2010. (上文提到的hedge and cues shared task,关于linguistics里的现象是如何被formulate成nlp问题的)

  • Morante, Roser, and Eduardo Blanco. "* SEM 2012 shared task: Resolving the scope and focus of negation." Proceedings of the First Joint Conference on Lexical and Computational Semantics-Volume 1: Proceedings of the main conference and the shared task, and Volume 2: Proceedings of the Sixth International Workshop on Semantic Evaluation. Association for Computational Linguistics, 2012. (negation 的shared task)

最后附上两篇老爷爷对我影响最大的:

  • Zadeh, Lotfi Asker. "The concept of a linguistic variable and its application to approximate reasoning—I." Information sciences 8.3 (1975): 199-249.

  • Zadeh, Lotfi A. "The concept of a linguistic variable and its application to approximate reasoning—II." Information sciences 8.4 (1975): 301-357.( 这系列work分两部。)

  • Zadeh, Lotfi A. "Toward a theory of fuzzy information granulation and its centrality in human reasoning and fuzzy logic." Fuzzy sets and systems 90.2 (1997): 111-127.

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

NLP研究者必备的语言学书籍!相关推荐

  1. 写给NLP研究者的编程指南

    点击上方↑↑↑蓝字关注我们~ 参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 作者 | 赤乐君,日本某大手研发部门的NLP工程师.关注关系抽取与知识图谱的相关研究. 来源 | 赤乐君的知乎专 ...

  2. 产品经理职业生涯必备电子(书籍)书分享

      今天笔者为大家准备了互联网产品经理职业生涯不得不看的必备书籍(电子书),希望能为有志从事互联网产能经理的小伙伴,提供一些帮助,让省下更多的时间来专注学习,能为大家提供优质的学习环境和资料是笔者的荣 ...

  3. 最新Transformer模型大盘点,NLP学习必备,Google AI研究员出品丨资源

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 可高效处理长文本的模型Longformer.和堪称"升级版"Transformer的BigBird模型,到底有什么区别? ...

  4. 全网首个OpenPrompt尝鲜报告:Prompt研究者必备实验利器

    ©PaperWeekly 原创 · 作者 | 李国趸 学校 | 浙江大学硕士生 研究方向 | 少样本学习 前言 THUNLP 团队前不久发布了 OpenPrompt 工具包和相关技术报告,笔者迫不及待 ...

  5. 每个程序员书柜必备的编程书籍

    转载至:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994619&idx=1&sn=8cfc6770782 ...

  6. JAVA初学者必备的基础书籍

    初学JAVA,特别是自学难度较大,但是有一本或者基本基础JAVA参考书在身边,肯定会事半功倍,下面就推荐几本常见的,或者不常见的JAVA初学者可能用到的书. 1.<JAVA编程思想> 作者 ...

  7. 机器学习不会解决自然语言理解(NLU)问题

    作为唯一由人类自身创造的符号,自然语言处理一直是机器学习界不断研究的方向. 自然语言处理技术主要是让机器理解人类的语言的一门领域.在自然语言处理技术中,大量使用了编译原理相关的技术,例如词法分析,语法 ...

  8. 一个问题就可以辨别真假NLP(自然语言处理)研究者

    ╮(╯▽╰)╭哎,自从人工智能火了以后,最近自称NLP研究者的人越来越多了,然而这其中的大忽悠有多少小夕就不想多说了.如果连自己在哪个领域.哪个学科搞研究都不懂的话,你相信他真的是这个领域的研究者喵? ...

  9. 从语言学到深度学习NLP,一文概述自然语言处理

    来源:萤火虫沙龙2 概要:自然语言处理(NLP)近来因为人类语言的计算表征和分析而获得越来越多的关注. 自然语言处理(NLP)近来因为人类语言的计算表征和分析而获得越来越多的关注.它已经应用于许多如机 ...

最新文章

  1. Gemini 3D双目结构光深度相机在Android平台上深度数据噪点非常多的问题
  2. traceview android studio,TraceView 的正确打开方式
  3. RabbitMQ学习总结(3)——入门实例教程详解
  4. jQuery EasyUI使用教程之创建可折叠面板
  5. (转)Linux环境变量的设置和查看方法
  6. Java 接口编程题
  7. vue 异步更新队列 Vue.nextTick(callback)
  8. 10 个 Python 项目简单又超有趣
  9. 前端实现图片或视频预览的3种方法
  10. 适合计算机中职生见到打拼音的软件,中职计算机基础教案设计(18页)-原创力文档...
  11. java中加号_java中四则运算中的加号
  12. 瑞吉外卖项目实战说明
  13. [Javascript 高级程序设计]学习心得记录11 js的BOM
  14. pyqt UI设计以及pyuic工具的使用
  15. CVPR 2018 论文解读集锦
  16. HashMap 与 TreeMap
  17. 盘点 2021年度在线协同设计软件
  18. Linux更改文件权限(一)
  19. 蓝湖类似的软件_蓝湖收费后,还有什么替代品?
  20. 软件定义汽车—箭在弦上的变革

热门文章

  1. mysql常见问题记录
  2. 最新版本_adt-bundle-windows-x86_64-20140702 无法建立avd
  3. C语言进行CGI程序设计
  4. session过期后登陆页面跳出iframe页面问题
  5. 10张图22段代码,万字长文带你搞懂虚拟内存模型和malloc内部原理
  6. java查询多条_Mybatis查询多条记录并返回List集合的方法
  7. STM32F7xx —— ADC
  8. mysql sqlserver分页_SqlServer、MySql万能分页代码
  9. rds基于什么开发_java rds
  10. ub c语言,操作系统之LRU算法 C语言链表实现