语言学专业学生转自然语言处理(NLP)需要多久?

本科商科,目前腐国应用语言学硕士在读,有点想试水NLP,但是感觉要转难度还是非常大的,毕竟数学和计算机方面的背景严重欠缺(本科期间虽然是有学高数和统计之类的但是学得并不好,而且毕业多年一直干着文科生的事,基本上都忘得一干二净了orz)。
如果有纯文科背景转NLP成功的大佬能否分享一下学习经验,并且想了解一下实现这样的转型用了多长时间。要是以后想从事这一领域的工作是不是还得再去念一个计算机语言学(Computational Linguistics)之类的专业?已经是大龄社畜了,如果转这个方向需要很久并且投入大量成本的话可能我就顶多学着玩玩当涨点姿势了......
收藏者
0
被浏览
81

5 个回答

Javabloger LV

发表于 7 天前

我毕业以后在一个大数据公司工作过两年,然后在银行里做NLP,至今也有两年多了。其中接触了不少跨专业来的data scientist,说一下我自己的感触。

如果是想进入NLP的工业圈,一定要找准自己在项目里的定位。题主在英国,我在法国,项目环境应该大同小异。
以我现在所在银行的NLP项目为例。一个PO(Product owner)组,一个大组长带2-3个人,分别对应不同市场(法国、瑞士、新加坡和香港)不同语言的内部使用者。1-2个BA(Business analyst),把PO的需求翻译、过滤给建模和开发的人。1个AI的工程师(本人),设计架构、处理数据、建模、集成和部署模型。另外我带一个data scientist,帮我处理数据和解决一些数学方面的问题,另外我度假的时候做IT方面的备案。其他的是IT工程师,负责构建编写微服务。
大方向上,建议先想好是做技术还是做管理。

1.技术。
我本身是学纯IT工程出身,转AI也算是跨了半个行。所以如果做技术开发,题主需要面临的问题可能和我类似,就是如何赢得别人的信任。这就要求你给出比市场最好的解决方案更好的模型。我花了快半年才让整个组的人不质疑并且配合我的决定。不过在现在模块化严重的大环境下,跨行业做技术是可行的。不要纠结于线性代数、微积分,先找一个项目做(比如kaggle里quora的比赛),然后理解,最后学。Fake it till you make it
不过kaggle的数据过于整洁,在工业界,NLP的数据源常常五花八门,需要做各种不同的预处理。所以只学几个课程,会用python,numpy,scipy这种库处理数据是绝对不够的。
我之前做大数据的时候,最大的感触就是,很多data scientist都是统计出身或者跨行业来,处理raw data的手段单一,写pipeline的能力不足,IT算法优化能力太差。这些就需要熟悉shell和脚本语言,还有不同编程语言的库。比如解析PDF来建立数据集,有的地方用python的pdfminer好,有的时候用java的pdfbox好,这些都需要一个宏观的vision和能力的多样性。

耐心也尤其重要。在国外做AI,想找人力帮助你标注是不太容易的,很多时候需要你自己去标注和校对。我这两年在标注上的工作量差不多是20000页的PDF,250w单词的英法文文档,其中大部分都需要去逐字阅读。虽然用了半监督学习省去很多时间,仍然是极其枯燥也冗繁的工作。需要有心理准备。
另外,我们现在在做的NER命名实体识别,已经有很多成熟的解决方案,所以这种领域要做到市场领先,对于技术的要求也会比较高。我面试的人都很难有我满意的思维节奏,最后录的是一个得过IMO金牌的越南小哥哥,才能一点就透,不需要什么东西都解释半天,完全跟得上我的工作节奏。
相反一些不那么成熟的领域,市场宽容度更高一些。

综合来说,如果只想在项目组里做安安静静地在角落里建模和处理纯数据,找好一个领域,在kaggle上选一个已经结束了的比赛,多看看不同的解决方案,试着优化,在优化的时候理解原理。
如果在长远的规划里想独挑一个AI项目的技术模块,现在至少立一个flag:kaggle得一块奖牌,leetcode里简单的题目刷一遍,中等题目刷一半。
不用看大部头的书,网上的技术博客足够了,但是要会筛选和整理。

2.管理。
个人认为,相比技术而言,语言专业的学生做BA或者PO可能更适合。既有专业优势,能够更好理解项目的背景和环境,也不需要被数据和代码折磨。别的项目组织架构里,可能会有不同的称呼,但是职分差不多。
不过想做一个好的BA,还是需要简单的编程和数据库基础,最好能写简单的测试代码。对于AI要有基本的理解,至少知道人工智能、机器学习和深度学习的区别,了解什么是概率,能够回答PO们的弱智问题,不要什么邮件都直接转给开发者。也不要把PO的话当圣旨,一定要记住,你是程序员的守护者;为了保持团队和谐,程序员和PO们的接触越少越好。产品经理和程序员绝对是天敌。
做PO的话,只给一个忠告:打磨产品是好的,但是如果自己不够能力去评判,就静下心来听和学习。准确率100%的算法是不需要你们来卖的,等着google来收购就可以了。

加油。

何笑我 LV

发表于 7 天前

2022.9.11 更新
补充了作为文科生与编程初次接触的经历和在爱丁堡大学语音和自然语言处理(Speech and Language Processing, or SLP)专业学习的体会。
面向正在申请爱丁堡 SLP 专业、想要转码的同学或是文转码国内找码工的同学,酌情提供有偿简历修改和面试指导服务,详情请发送简历至 me@sasugaSeika.com 联系我!

2022.4.23 更新
说真的,我从未料想到,这个回答“太监”至今,我竟已经不再主要从事 NLP 相关的工作了。
目前是一家大型美企的后端开发,上手没多久,谈不及太多的感悟。
不管怎样,还是会以把这个回答补充完整的形式,来记录自己过去四年间坎坷曲折的 NLP 求学和从业经历。只是没有给自己设时间限制罢了。只是不知道,把这样的拖延症说成是“不给人生设限”的 rosy speech,会不会涉嫌欺诈(自欺欺人)?哈哈。
<hr/>受到前同事邀请,诚惶诚恐地在这里占个坑发个言。求学经历有写在个人主页(虽然不是语言学背景出身,但多多少少也在学习语言的过程中受到了语言学的熏陶),目前在一家创业公司的 NLP 工程师一职上摸爬滚打(已离职),希望这样的身份和经历符合回答这个问题的基本条件。
0. Introduction
从抛开文科生身份正式系统地学习 NLP 之始,我便一直在思考这样一个问题,亦是楼主所措辞的“纯文科背景转 NLP 成功”这一状态的定义到底为何?

  • 是会写代码会调包?
  • 是知道什么是语言模型,什么是神经网络?
  • 还是能在导师的指导下完成一份 NLP 领域话题的论文的撰写?
  • 还是在竞争激烈的求职市场上找到一份 NLP 工程师的工作?
  • 还是能在学术界潜心研究、在顶会上发表成果?
  • 还是能在工业界开源创新算法,成为技术翘楚?
  • ……
我幻想过很多很多种转行之后可能的自己的模样,但很可惜没有一种自己敢斗胆定义为“转行成功”的状态。因为所追求的目标似乎一直在变化、在推进,变化多端永无止境。深知这样的目标定位不适宜自身发展,所以在一次次询问身边科班出身的同学和同事们的经验建议以及自我的一番上下求索之后,养成了不断为当前阶段的自己重新定义“转行/专业成功”的习惯。
虽然不知道未来还会有多少个阶段将要铺开,但回顾至今已经经历过或正在经历中的阶段,分别以以下几种状态为“转行/专业成功”的理想目标(括号中为所花费的大致时间):
    1. 能理解掌握 NLP 学科基本的概念和知识,能通过考试,能融会贯通并灵活应用(半年)。
    2. 能培养严谨的科学思维和实验思维,在导师的指导下完成学术论文的撰写(半年)。
    3. 能在任何一个求职市场找到一份 NLP 相关的工作,esp. 工业界(一到三个月)。
    4. 能在工作中运用所学知识,维持 NLP 的基本 sense,磨练工程能力,参与有一定规模的工程项目(一到一年半,初级工程师)。
    5. 能拥有 business-oriented mindset,能把业务抽象成模型,定义指标,对齐业务目标(一到三年,高级工程师)。
以下我会尽力地详述每一个阶段的初始状态、所采取的步骤、花费的时间、任何中间状态和最终状态。虽然经历都很个人,但仍然希望能给读者带来些许启发和参考


  • Steps
1.1 从纯正的文科生慢慢踏入计算语言和计算机科学的大门
从高三分科开始一直到本科毕业一直是纯纯正正、根正苗红的文科生,高中毕业后跟数理唯一的缘分大概也就是大一学了一年的文科高数,想着此后数理便与我无“瓜”了吧,没想到大四时一方面偶然通过吴军博士的《数学之美》[1](想必躺在很多人的入门书单里)接触到计算语言学(当初还一直傻傻地以为 computational linguistics 译作计算语言学),另一方面曾经在国外接触过一阵子纯语言学的学习(印象比较深刻的是语言学课程的学习),不禁就对语言学产生了兴趣。那时候还不明白传统语言学和计算语言学的关系,以为计算语言学纯粹就是语言学的一个分支(牛津大学 Master of Studies in General Linguistics and Comparative Philology 的招生页面也曾带给我很大的误导),事实上如果提出计算语言学的别名——自然语言处理(当然,两者也许是存在微妙区别的),或许困惑会少很多,后者带给我的印象更多是把语言文字当作研究对象和实验材料,而所使用的手段则完全是统计学或是计算机科学的手段,因此和传统语言学有着本质上的区别。离一样事物愈远,就愈战战兢兢,但一旦决心揭开它神秘的面纱,随之而来的惊喜也是无可比拟的。
意料之中地,大四那年我陆陆续续收到了所申请的所有国外高校语言学研究生的 offer。申请之路比自己想象得要简单得多,但是仿佛从来没有好好想过这到底是在遂愿还是随缘。曾以为自己应当全情扑在语言学这个学科上,可是没想那一场偶然的邂逅就这么将自然语言处理的小苗苗于我心中扎根发芽。
说来也是话长。从大四的寒假说起,当时我正在准备日语系毕业论文的开题报告。由于先前和大学里的小伙伴们结伴申请海外硕士项目时,结识了几位计算机专业的同学,所以当时对一些诸如 Git(以及 GitHub)、Terminal(iTerm)、Python 等之类的工具和平台都有了入门级的听闻和了解。在组里计算机专业同学的带动下,从来没写过代码的我也码下了人生第一行代码,从来没有提交过代码的我也第一次体验了 Git 的使用(尽管是用 Git 往 GitHub 的 repo 里提交了一些 Word 文档  )。利用了大四寒假的整块时间,开始在 Codecademy、Udacity 等等平台上开始正式从编程语言的语法开始学起。之后申请爱丁堡大学(the University of Edinburgh)语音和语言处理硕士项目(MSc in Speech and Language Processing)(下称 SLP)时的经历,彻底证明这段时间的努力不仅没有白费,且是正确和及时的。这段经历曾经被很多人问过,不论是工作中遇到的科班出身的同事们,还是同样也有转码念头的学妹学弟们,借此良机,按照时间顺序赘述几句。寒假学完最最基础的 Python 语法和一些 Shell 命令,一开学就进入到了毕业论文的撰写中。也不知道是谁给的勇气,在一个很普通的下午看到了几篇自然语言处理方向的论文,竟也想试试做做日语方面的课题。也可能是先前阅读的吴军博士的《数学之美》写得实在是太过于深入浅出,自信心爆棚,便开始思考寻找一个至少可以用上些统计学习方法的课题。抛弃了导师心心念念希望我着手试试的上海话与日语的关系的课题,我把视线落到了曾经一闪而过脑海的歌词当字(当て字)。当字是一种日语独特的语言现象,或许说像古汉语中的通假字可以帮助理解,在汉字上注上本不属于它的发音,使得词语拥有更丰富的含义,也是一种修辞手法。比如在日语当代歌词中,会给“明天”注上“未来”的发音,甚至是矛盾地给词语注上其反义词的发音等等,使得词语的含义灵动饱满富有深意。有了这个想法后,我便开始验证这个课题的可行性,事实上关于当字的研究并非少数,但于我而言,能否找到一个歌词当字的语料库是重中之重,如果没有研究的材料,研究也就无从谈起。几番搜索之后,得出了需要自己写爬虫爬取歌词和当字对(汉字和其注音的 pair)的结论。这对我来说是一个挑战,因为在短短一周的时间里,我需要首先找到一个网站,它拥有丰富海量的日与当代歌曲歌词资源,不 block 爬虫,不需要我采用对于当时的我而言听着十分复杂的 IP 池等等手段,并且学会基本的爬虫写法,结合歌词网页的 HTML 结构,能真的获取到我想要的信息。在度过了几个浏览器里打开无数个 Google、StackOverflow、YouTube tabs 的白天和黑夜、以及请教了身边当时能接触到的所有计算机同学后,我终于能从网页上开始爬取歌词当字对了!由于决定不采用任何优化方法(更何况任何所谓的优化方法对我来说都存在实现不了或是摸索时间过长的风险),在程序单线程、使用单个 IP 地运行了一天有余之后,终于从数十万首歌曲中得到了数万对有效的当字对。而后的 data cleansing 则是使用 Python 进行了简单的处理,最后把当字对灌入 Excel,于我来说已是一个十分鼓舞人心的里程碑了——短短一周的时间里,作为编程新手的我,也可以完成这样一个功能清晰的程序,虽然过程中不免充满自我怀疑,但每当回想起那段时光,还是很感谢自己没有在五花八门的 error messages 迎面袭来时有过任何放弃。
毕业论文顺利完成后迎来了大学时代最后一个暑假,我去了一家叫英语流利说(后称流利说)的公司实习,任务是为 AI 工程师们提供高质量的有标注数据。除了手动给数据打标这样听起来有些机械化的工作之外(毕竟“人工”智能),还利用了自己的 Python 所学,帮助组里不会编程的同事们编写了一些提升工作效率的小程序。在流利说,我第一次跟 AI 工程师合作,看见他们的指下飞舞出与我完完全全不在一个水平上的代码,第一次了解到原来还有面向对象的编程范式,还假模假样地在自己桌上放了一个小黄鸭玩偶  。而这份实习最大的收获,绝对是认识了曾就读过 SLP 的学姐(以后看情况要不要 @ 这位的知乎出来~俨然已经是位工业界的语音学 AI 大牛啦)。原以为要和文科生身份杠到底的自己,在听说了这样一个“梦中情专”之后,果断地进行了申请,过程中附上了先前写毕业论文时编写的代码样例,最后飞速且顺利地在那年生日当天得到了 Unconditional Offer。我至今还是很感谢在流利说的那个夏天、那段实习、那些人们,让我得到了发掘全新自我的机会。
关于申请上述专业的细节和经验:我的情况比较特别,几乎是卡着申请通道快要关闭的六七月时才开始申请,而那时候大多数人的去向应该早就已经尘埃落定了。正常来讲,每年九月份,不少学校就已经开始了申请通道,爱大也是比较早就开始招生工作的那批学校之一。因此,it's never too early to start preparing for application! 大三的暑假便可开始写申请文书(Proposal Statement)和找老师写推荐信(Reference Letter)以及其他材料。爱大多数专业对雅思的要求不算太高(不像牛剑大多数专业基本都要求小分 7,总分 7.5),因此拿到 Conditional Offer 之后再刷雅思分数也是来得及的,最不济则是先于项目开始前念一到两个月的语言班,通过了语言班的考验等同于达到了语言要求。虽然确实是一笔额外的花销,但是对于初来乍到英国的同学来讲,也是一个熟悉土地、语言、文化的好机会。
此处打个小广告,鉴于过去几年里帮不少学妹学弟修改过简历的经验,以及本人比较强迫症和完美主义的脾性,我可以酌情为想要申请上述专业的同学进行有偿简历修缮和面试建议,欢迎将你的简历发送到我的个人邮箱:me@sasugaSeika.com,并附上你的联系方式(微信、电邮、电报等皆可)。如果我的初步评估是 potential/even promising candidate,会与你建立进一步联系交流。


p.s. 工作比较忙,尽量不辜负不弃坑 >w<

zke LV

发表于 7 天前

本科某211汉语言文学专业,保研某985中文信息处理专业。现NLP研一在读,零基础入门,虽然很辛苦,但从未后悔过,越发喜欢这个专业。知乎首答,借这个问题记录下自己的转型之路。
(一)恶补基础
本来计划在九月份研究生开学前打好基础,但大四一整年都在忙实习和毕业论文的事,直到七月份才真正静下心来学习。主要精力用在学习数学和编程语言上。
1.数学
根正苗红的文科生,大学也只是简单地修过文科数学(非常浅显),所以一开始是有些害怕学数学的。得蒙众多热心人士积极相助,规划路线,真正学起来发现也没有那么难。
NLP用得到的数学知识主要是概率与统计、线性代数和微积分,还有少量信息论和凸优化的内容。
(1)线性代数:
最先用了几天时间翻完了同济版教材《线性代数》,对初学+自学者非常不友好,翻完后完全意识不到这小小一本的线性代数有什么用。其实说到底,就是没有明白线性代数背后真正的含义,直到上了MIT Gillbert Strang教授(最喜欢的教授之一!!!)的线性代数课,讲得太精彩了,真的非常好,让我体会到了线性代真正的内涵,也给了我莫大的信心继续学数学。看视频➕做笔记,前后大概花了一个月的时间,线性代数基本上上手了。八月份的时候看了教材《线性代数应该这样学》,质量同样很高,没有从行列式讲起,也没有一开始就让读者陷入繁琐的矩阵计算中,而是把线性代数的思想和概念由浅入深地慢慢呈现在读者面前。
(2)概率论和信息论:
如果说现代计算机科学底层运算很多都在用线代的话,那么上层很多算法就都是建立在概率论和信息论基础上了。
概率论这方面的资源很多,想快速上手可以看斯坦福大学的课件 Review of Probability Theory。系统学习推荐教材 统计学完全教程(All of statistics),作者是CMU的统计和数据科学教授,这本书主要是为计算机科学的学生而写。MIT OCW 的课 Probabilistic Systems Analysis and Applied Probability 也很不错,不过我没有看完,中途弃了(惭愧)
信息熵这个概念经常出现,跟概率密不可分,比如交叉熵、相对熵和最大熵。看完南京大学的课件 Information Theory and Decision Tree 就够了。
(3)微积分
关于微积分,实际上用到的不太多,感觉最有用的就是怎么求导,主要用于反向传播的推导。教材推荐James Stewart的 Calculus,虽然很厚,但图文并茂,深入浅出,读起来并不吃力,半个月学完,微积分也算基本上手。
研一已经过去了一学期,越发觉得数学的重要性。要想从本质上深入理解自然语言处理、机器学习以及深度学习等算法,强硬的数学基础是必不可少的,从原理到实践,知根知底。数学好,不光能很容易读懂论文,还能让你有能力推导自己的算法。有时候用数学推导出一个简洁公式时,真的非常有趣。
2.编程语言
我自学的是python:
(1)廖雪峰大神的博客,学习基本语法。
(2)《Python编程 从入门到实践》,把上面代码敲了一遍。
(3)边做边学,尝试写代码解决分词,排序,去重,词频字典等自然语言处理常见任务。
【听前辈的话】:重要的是多敲代码,多敲代码,多敲代码!!!
3.算法及数据结构:入手了《算法导论》,字字珠玑,但不太容易上手。目前只读了前两章内容,把其中的伪代码用Python实现了一遍,有助于理解算法。许个愿,今年能填完这个坑~~~
(二)好好学习
1.上课:
研一的课很多,时间被排的满满的,但基本上没用水课。有c#、python、机器学习、深度学习、自然语言处理等专业课,也有语料库语言学、认知语言学、词汇语义学等基础课。课程压力虽大,收获也大。
2.项目:
跟着所里的老师做项目,学习怎么快速上手一个项目,从而对自然语言处理的项目有了比较感性的认识——大体了解自然语言处理算法的原理、实现流程等。在这个过程中边做边学,不懂就去看论文,学习相关知识,尝试写代码解决问题,不断进步。
3.阅读
课余时间主要用于读论文,读专业书了。下面是正在看的一些书:
(1)Speech and Language Processing     Dan jurasfsky
(2)Neural Network Methods for Natural Language Processing    Yoav Goldberg
(2)机器学习,周志华
(3)统计学习方法,李航
(4)python自然语言处理
(5)认知语言学入门,温格瑞尔、施密德
(6)词汇语义学,克鲁斯
还是很弱很弱的小菜鸟一只,就希望越来越强,不辜负自己的努力~先写到这里了,以后再补充啦!

死扛 LV

发表于 7 天前

讲一下我的经历吧。本科国内念的英专,现在在北美念linguistics,phd第三年。刚开始做自己的第一个正儿八经的computational linguistics的project。作为系里第一只转方向的小白鼠,不知道将来会怎么样= =
事先说一下,我的计划是按在【有限时间内】尽量【打好扎实基础】的目标安排的。选的课已经跳了好多prerequisite,所以真的要打好基础的同学可能还要学更多。另一方面,我不希望把自己局限在只会用别人的algorithm,将来有可能的话做一些改进的工作,所以多学了一些很基础但是并没有直接联系的课。如果时间很紧,这些可以不学,或者将来不懂再补。其实很多东西都可以一边做研究一边现学的,这个是我在grad school学到的很重要的东西...(其实我的导师更希望我直接上手,边做边学,更有效率...)
下面是我的时间线。因为我们前两年要上自己系的课并且也有自己的research,所以时间拉得比较长,其实可以压缩啦
第一年下学期:
1) intro to java(cs系本科生的programming入门课),试一下水看自己是否与programming八字不合,结果可行XD
2)probability (数学系本科课),只是旁听,但是其实学的东西大部分都不会用到,这个后面具体说。先简单提一下,最经济实惠的办法就是去看sharon goldwater主页上那个文档,之后有别的不懂就另外补。
第二年上学期:
intro to computational linguistics(自己系的课,基于jurafsky那本书,但是coding量很少,更偏重phonetics)继续试水,继续可行XD
第二年结束的时候确定尝试转computational linguistics,系里非常supportive同意我暂停研究和TA,花一年时间补cs课。(在此表白我系和我的老师们,真的非常支持我的决定,并且也不介意我如果转方向失败继续回头做老本行= =)
第三年上学期:
1)algorithm and data structure(cs本科课)基于kleinberg那本黑色封面的书的前半本。这个课可能和nlp没有太大直接联系,不过dynamic programming还是非常重要的,然而如果不讲一些铺垫的知识没法讲dynamic programming...
2)natural language processing (cs本科高年级/研究生课)基于jurafsky的书,但是作业大量coding。不过其实这个不用怕,coding作业不像数学作业,想不出来就是智商不够,没救。coding如果经验少,大不了就慢一(hen)点(duo),最后还是能写出来的。不过这个对我最大的冲击就是,以前的coding作业都会有很详细的instruction,但是这个课完全不会告诉你具体要怎么做。不过学到的也很多,每次写完作业都觉得有提高
3)linguistic research using deep neural network (自己系研究生课)是我第一次接触neural network,大概了解了一下high level idea,老师也没有讲得很细,就很粗浅的了解一下
第三年下学期:
1)artificial intelligence (cs系本科高年级/研究生课)基于artificial intelligence: a modern approach那本。很大一部分讲的是search,和nlp没有直接联系,但是对理解一些algorithm还是很有帮助的,比如gan就是用minimax的思想。另外,我真的墙裂推荐这本书,它章节安排的逻辑非常严密,每一个新的topic都是在原先解决办法的假设/局限上提出来的,层层推进,对文科生的思维非常有帮助(这个课上了一半我把我原来在改的paper重新改了个框架... 因为之前逻辑太差了= =)
2)machine learning (cs系本科高年级/研究生课)基于pattern recognition and machine learning XD 非常虐,很多数学推导,巨多coding,但是也是让我上完以后总算对自己将来的project有那么一点信心的课了... 如果说上完nlp我基本可以听懂在linguistics做nlp的人的talk,那上完这个课我可以大概听懂在cs做nlp的人的talk了
3)algorithm (cs系本科高年级课)kleinberg后半本书。这门我也是旁听的,因为同时上ai和ml实在没时间精力做别的作业。我比较看重基础和理论,所以只是自己想上而已。当然了,没有做作业,真的能学到多少非常值得怀疑... 这里linear programming和approximation algorithm跟nlp还是相关的。
另外,我本科的时候学过微积分和线代,所以没有另外补课。实际应用当中,目前就我碰到的而言,绝大部分都是program帮助解决的,真正要搞清楚的就只是多元微积分(?英文是multivariate calculus),线代的话的确无处不在,不过其实小声说,知道矩阵乘法就行了... 我们ml课的工科同学数学都很差,也都活得好好的= =
之后的计划是,夏天去多伦多上deep learning & reinforcement learning summer school,下学期在犹豫要不要上probabilistic graphical model(请教一下各位有必要学嘛? 之前在coursera上了daphne koller的pgm,但是觉得并没有用到诶)。下下学期上deep neural network,应该会更理论/数学一些。
以上的课基本上都是我自己选的,导师也第一次带非cs的学生,也不知道我这样的背景要怎么选课才合适,就我自己爱选啥选啥了... 所以仅供参考啦
之后会再总结一下nlp需要的知识,怎么学,各有多重要。以上所有都是从我自己的经验出发,如果有什么误导小盆友的还请专业人士指正= =

卓松年 LV

发表于 7 天前

……2019.7.27 更新……
推荐大家我正在看的: Stanford CS224U
https://b23.tv/av56323386/p1……2018.6.19更新……
今天在北大旁听香港理工大学黄居仁教授的讲座,主题解答了中国语言学和自然语言处理的议题点:

汉语语言特性视角出发的中文计算语言学研究议题
What You Need to Know about Chinese for Chinese Language Processing
Chu-Ren Huang     黃居仁教授
The Hong Kong Polytechnic University    香港理工大學
另外今年NLPCC ADL讲习班信息如下
http://m.sohu.com/a/228274097_651893


……原答案……
我是女生,语言学本硕,现在研二。从去年11月开始的,正在转nlp方向。

(一)如何文转理,时间
我的入门路径是
1.python自然语言处理+python网课
2.michael collins的自然语言处理coursera课程+讲义
3.speech and language processing +冯志伟译本
4.冯志伟数理语言学+宗成庆蓝皮
5.从上述课程和书籍的reference扒了各种英文论文

上面这些和语言学密切相关的,可看懂,可写小任务,但复现别人实验有困难(例如CoNLL)。另外nlp有门槛,做分词,词性标注,命名实体识别这些都需要数据库,需要大量基础资源(除非你自己人工标注一份训练语料+测试语料)。

这些花了5个月时间,我自认是文科生中看代码,数学比较爽快的。现在明显感觉到数学和计算机基础不行!!!
如果要继续,需要.
6.周志华西瓜书+李航统计学习方法
毕竟nlp背后还是数学,我个人觉得代码是工具,数学才是最大的boss。

(二)nlp和文科的语言学的关系
自然语言处理基础(传统)任务和语言学中的:
词、词性(汉语兼类词等)、结构主义语言学、依存句法、乔姆斯基范式
以上相关。除语言学的概念定义有优势以外(理科生需要定义一下概念就搞定了),我本人没见到任何优势。如果文科生不能理解各种模型的公式和推理,算法,那基本只是沾到皮毛之上,姑且能算个兴趣(达到这一步也需要很费神了,我估计比题主说的兴趣要深很多。但对于nlper很浅吧)
更多的自然语言处理任务直接就是模型、机器学习和神经网络的问题。和语言学基本无关。(nlper的主体任务)


欢迎大家一起交流,作为一个文转理的女生也很需要各种信息和帮助。

您需要登录后才可以回帖 登录 | 立即注册