自然语言处理

一 研究方向

基础研究:

词法与句法分析:李正华、陈文亮、张民(苏州大学) 

语义分析:周国栋、李军辉(苏州大学) 

篇章分析:王厚峰、李素建(北京大学)

语言认知模型:王少楠,宗成庆(中科院自动化研究所) 

语言表示与深度学习:黄萱菁、邱锡鹏(复旦大学) 

知识图谱与计算:李涓子、候磊(清华大学) 

应用研究:

文本分类与聚类:涂存超,刘知远(清华大学) 

信息抽取:孙乐、韩先培(中国科学院软件研究所) 

情感分析:黄民烈(清华大学) 

自动文摘:万小军、姚金戈(北京大学) 

信息检索:刘奕群、马少平(清华大学) 

信息推荐与过滤:王斌(中科院信工所)鲁骁(国家计算机网络应急中心) 

自动问答:赵军、刘康,何世柱(中科院自动化研究所) 

机器翻译:张家俊、宗成庆(中科院自动化研究所) 

社会媒体处理:刘挺、丁效(哈尔滨工业大学) 

语音技术:说话人识别——郑方(清华大学)、王仁宇(江苏师范大学)

语音合成——陶建华(中科院自动化研究所)

语音识别——王东(清华大学)

文字识别:刘成林(中科院自动化研究所) 

多模态信息处理:陈晓鸥(北京大学) 

医疗健康信息处理:陈清财、汤步洲(哈尔滨工业大学) 

少数民族语言信息处理:吾守尔•斯拉木(新疆大学)

二 自然语言处理的团队

  1. 清华大学自然语言处理与社会人文计算实验室
  2. 清华大学智能技术与系统国家重点实验室信息检索组
  3. 北京大学计算语言学教育部重点实验室
  4. 北京大学计算机科学技术研究所语言计算与互联网挖掘研究室
  5. 哈工大社会计算与信息检索研究中心
  6. 哈工大机器智能与翻译研究室
  7. 哈尔滨工业大学智能技术与自然语言处理实验室
  8. 中科院计算所自然语言处理研究组
  9. 中科院自动化研究所语音语言技术研究组
  10. 南京大学自然语言处理研究组
  11. 东北大学自然语言处理实验室
  12. 厦门大学智能科学与技术系自然语言处理实验室
  13. 苏州大学自然语言处理实验室
  14. 郑州大学自然语言处理实验室
  15. 中科院自动化所 模式识别实验室(NLPR)
  16. Huawei Noah’s Ark Lab
  17. Human Language Technology Center at Hong Kong University of Science & Technology
  18. NUS Natural Language Processing Group
  19. The Stanford Natural Language Processing Group
  20. The Berkeley NLP Group
  21. Natural Language Processing research at Columbia University
  22. Natural Language and Information Processing Research Group at University of Cambridge
  23. Speech Research Group at University of Cambridge
  24. The Language Technologies Institute (LTI) at Carnegie Mellon University
  25. The Computational Linguistics Group at Oxford University
  26. Human Language Technology and Pattern Recognition Group at the RWTH Aachen
  27. Algorithms for Computational Linguistics at City University of New York
  28. RPI Blender Lab
  29. The Natural Language Group at USC/ISI
  30. Natural Language Processing Group at University of Notre Dame
  31. Artificial Intelligence Research Group at Harvard
  32. Natural Language Processing - Research at Google
  33. The Redmond-based Natural Language Processing group
  34. Computational Linguistics and Information Processing at Maryland
  35. Language and Speech Processing at Johns Hopkins University
  36. Human Language Technology Center of Excellence at Johns Hopkins University
  37. Statistical Machine Translation Group at the University of Edinburgh
  38. University of Sheffield NLP Group
  39. The CNGL Centre for Global Intelligent Content
  40. Cornell NLP group
  41. Natural Language Processing (NLP) group at University Of Washington
  42. NLP @ Illinois
  43. 搜狗公司
  44. 百度公司:现任副总裁王海峰先生是自然语言处理领域世界上影响力最大、也最具活力的国际学术组织ACL(Association for Computational Linguistics)50多年历史上唯一的华人主席。
  45. 科大讯飞:国内专业做中文语音、文字产品研发的企业,是目前国内最大的智能语音技术提供商。

自然语言处理的十个发展趋势

趋势1:语义表示——从符号表示到分布表示

图片描述

自然语言处理一直以来都是比较抽象的,都是直接用词汇和符号来表达概念。但是使用符号存在一个问题,比如两个词,它们的词性相近但词形不匹配,计算机内部就会认为它们是两个词。举个例子,荷兰和苏格兰这两个国家名,如果我们在一个语义的空间里,用词汇与词汇组合的方法,把它表示为连续、低维、稠密的向量的话,就可以计算不同层次的语言单元之间的相似度。这种方法同时也可以被神经网络直接使用,是这个领域的一个重要的变化。

从词汇间的组合,到短语、句子,一直到篇章,现在有很多人在做这个事,这和以前的思路是完全不一样的。

有了这种方法之后,再用深度学习,就带来了一个很大的转变。原来我们认为自然语言处理要分成几个层次,但是就句法分析来说,它是人为定义的层次,那它是不是一定必要的?这里应该打一个问号。

图片描述

实际工作中,我们面临着一个课题——信息抽取。我之前和一个单位合作,初衷是我做句法分析,然后他们在我的基础上做信息抽取,相互配合,后来他们发表了一篇论文,与初衷是相悖的,它证明了没有句法分析,也可以直接做端到端的直接的实体关系抽取,

这很震撼,不是说现在句法分析没用了,而是我们认为句法分析是人为定义的层次,在端到端的数据量非常充分,可以直接进行信息抽取的时候,那么不用句法分析,也能达到类似的效果。当端到端的数据不充分时,才需要人为划分层次。

趋势2:学习模式——从浅层学习到深度学习

图片描述

浅层到深层的学习模式中,浅层是分步骤走,可能每一步都用了深度学习的方法,实际上各个步骤是串接起来的。直接的深度学习是一步到位的端到端,在这个过程中,我们确实可以看到一些人为贡献的知识,包括该分几层,每层的表示形式,一些规则等,但我们所谓的知识在深度学习里所占的比重确实减小了,主要体现在对深度学习网络结构的调整。

趋势3:NLP平台化——从封闭走向开放

图片描述

以前我们搞研究的,都不是很愿意分享自己的成果,像程序或是数据,现在这些资料彻底开放了,无论是学校还是大企业,都更多地提供平台。NLP领域提供的开放平台越来越多,它的门槛也越来越降低。

语音和语言其实有很大的差别,我认识的好几位国内外的进入NLP的学者,他们发现NLP很复杂,因为像语音识别和语音合成等只有有限的问题,而且这些问题定义非常清晰。但到了自然语言,要处理的问题变得纷繁复杂,尤其是NLP和其他的领域还会有所结合,所以问题非常琐碎。

趋势4:语言知识——从人工构建到自动构建

图片描述

AlphaGo告诉我们,没有围棋高手介入他的开发过程,到AlphaGo最后的版本,它已经不怎么需要看棋谱了。所以AlphaGo在学习和使用过程中都有可能会超出人的想像,因为它并不是简单地跟人学习。

图片描述

美国有一家文艺复兴公司,它做金融领域的预测,但是这个公司不招金融领域的人,只是招计算机、物理、数学领域的人。这就给了我们一个启发,计算机不是跟人的顶级高手学,而是用自己已有的算法,去直接解决问题。

但是在自然语言处理领域,还是要有大量的显性知识的,但是构造知识的方式也在产生变化。比如,现在我们开始用自动的方法,自动地去发现词汇与词汇之间的关系,像毛细血管一样渗透到各个方面。

趋势5:对话机器人——从通用到场景化

图片描述

最近出现了各种图灵测试的翻版,就是做知识抢答赛来验证人工智能,从产学研应用上来讲就是对话机器人,非常有趣味性和实用价值。

这块的趋势在哪里?我们知道,从Siri刚出来,国内就开始做语音助手了,后来语音助手很快下了马,因为它可以听得到但是听不懂,导致后面的服务跟不上。后来国内把难度降低成了聊天,你不是调戏Siri吗,我就做小冰就跟你聊。但是难度降低了,实用性却跟不上来,所以在用户的留存率上,还是要打个问号。

现在更多的做法和场景结合,降低难度,然后做任务执行,即希望做特定场景时的有用的人机对话。在做人机对话的过程中,大家热情一轮比一轮高涨,但是随后大家发现,很多问题是由于自然语言的理解没有到位,才难以产生真正的突破。

趋势6:文本理解与推理——从浅层分析向深度理解迈进

图片描述

Google等都已经推出了这样的测试机——以阅读理解作为一个深入探索自然语言理解的平台。就是说,给计算机一篇文章,让它去理解,然后人问计算机各种问题,看计算机是否能回答,这样做是很有难度的,因为答案就在这文章里面,人会很刁钻地问计算机。所以说阅读理解是现在竞争的一个很重要的点。

趋势7:文本情感分析——从事实性文本到情感文本

图片描述

多年以前,很多人都在做新闻领域的事实性文本,而如今,搞情感文本分析的似乎更受群众欢迎,这一块这在商业和政府舆情上也都有很好地应用。

趋势8:社会媒体处理——从传统媒体到社交媒体

图片描述

相应的,在社会媒体处理上,从传统媒体到社交媒体的过渡,情感的影响是一方面,大家还会用社交媒体做电影票房的预测,做股票的预测等等。

但是从长远的角度看,社会、人文等的学科与计算机学科的结合是历史性的。比如,在文学、历史学等学科中,有相当一部分新锐学者对本门学科的计算机的大数据非常关心,这两者在碰撞,未来的前景是无限的,而自然语言处理是其中重要的、基础性的技术。

趋势9:文本生成——从规范文本到自由文本

图片描述

文本生成这两年很火,从生成古诗词到生成新闻报道到再到写作文。这方面的研究价值是很大的,它的趋势是从生成规范性的文本到生成自由文本。比如,我们可以从数据库里面生成一个可以模板化的体育报道,这个模板是很规范的。然后我们可以再向自由文本过渡,比如写作文。

趋势10:NLP+行业——与领域深度结合,为行业创造价值

图片描述

最后是谈与企业的合作。现在像银行、电器、医药、司法、教育、金融等的各个领域对NLP的需求都非常多。

 

自然语言处理怎么最快入门

建议1:如何在NLP领域快速学会第一个技能?

我的建议是:找到一个开源项目,比如机器翻译或者深度学习的项目。理解开源项目的任务,编译通过该项目发布的示范程序,得到与项目示范程序一致的结果。然后再深入理解开源项目示范程序的算法。自己编程实现一下这个示范程序的算法。再按照项目提供的标准测试集测试自己实现的程序。如果输出的结果与项目中出现的结果不一致,就要仔细查验自己的程序,反复修改,直到结果与示范程序基本一致。如果还是不行,就大胆给项目的作者写信请教。在此基础上,再看看自己能否进一步完善算法或者实现,取得比示范程序更好的结果。

建议2:如何选择第一个好题目?

工程型研究生,选题很多都是老师给定的。需要采取比较实用的方法,扎扎实实地动手实现。可能不需要多少理论创新,但是需要较强的实现能力和综合创新能力。而学术型研究生需要取得一流的研究成果,因此选题需要有一定的创新。我这里给出如下的几点建议。

  • 先找到自己喜欢的研究领域。你找到一本最近的ACL会议论文集, 从中找到一个你比较喜欢的领域。在选题的时候,多注意选择蓝海的领域。这是因为蓝海的领域,相对比较新,容易出成果。
  • 充分调研这个领域目前的发展状况。包括如下几个方面的调研:方法方面,是否有一套比较清晰的数学体系和机器学习体系;数据方面,有没有一个大家公认的标准训练集和测试集;研究团队,是否有著名团队和人士参加。如果以上几个方面的调研结论不是太清晰,作为初学者可能不要轻易进入。
  • 在确认进入一个领域之后,按照建议一所述,需要找到本领域的开源项目或者工具,仔细研究一遍现有的主要流派和方法,先入门。
  • 反复阅读本领域最新发表的文章,多阅读本领域牛人发表的文章。在深入了解已有工作的基础上,探讨还有没有一些地方可以推翻、改进、综合、迁移。注意做实验的时候,不要贪多,每次实验只需要验证一个想法。每次实验之后,必须要进行分析存在的错误,找出原因。
  • 对成功的实验,进一步探讨如何改进算法。注意实验数据必须是业界公认的数据。
  • 与已有的算法进行比较,体会能够得出比较一般性的结论。如果有,则去写一篇文章,否则,应该换一个新的选题。

建议3:如何写出第一篇论文?

  • 接上一个问题,如果想法不错,且被实验所证明,就可开始写第一篇论文了。
  • 确定论文的题目。在定题目的时候,一般不要“…系统”、“…研究与实践”,要避免太长的题目,因为不好体现要点。题目要具体,有深度,突出算法。
  • 写论文摘要。要突出本文针对什么重要问题,提出了什么方法,跟已有工作相比,具有什么优势。实验结果表明,达到了什么水准,解决了什么问题。
  • 写引言。首先讲出本项工作的背景,这个问题的定义,它具有什么重要性。然后介绍对这个问题,现有的方法是什么,有什么优点。但是(注意但是)现有的方法仍然有很多缺陷或者挑战。比如(注意比如),有什么问题。本文针对这个问题,受什么方法(谁的工作)之启发,提出了什么新的方法并做了如下几个方面的研究。然后对每个方面分门别类加以叙述,最后说明实验的结论。再说本文有几条贡献,一般写三条足矣。然后说说文章的章节组织,以及本文的重点。有的时候东西太多,篇幅有限,只能介绍最重要的部分,不需要面面俱到。
  • 相关工作。对相关工作做一个梳理,按照流派划分,对主要的最多三个流派做一个简单介绍。介绍其原理,然后说明其局限性。
  • 然后可设立两个章节介绍自己的工作。第一个章节是算法描述。包括问题定义,数学符号,算法描述。文章的主要公式基本都在这里。有时候要给出简明的推导过程。如果借鉴了别人的理论和算法,要给出清晰的引文信息。在此基础上,由于一般是基于机器学习或者深度学习的方法,要介绍你的模型训练方法和解码方法。第二章就是实验环节。一般要给出实验的目的,要检验什么,实验的方法,数据从哪里来,多大规模。最好数据是用公开评测数据,便于别人重复你的工作。然后对每个实验给出所需的技术参数,并报告实验结果。同时为了与已有工作比较,需要引用已有工作的结果,必要的时候需要重现重要的工作并报告结果。用实验数据说话,说明你比人家的方法要好。要对实验结果好好分析你的工作与别人的工作的不同及各自利弊,并说明其原因。对于目前尚不太好的地方,要分析问题之所在,并将其列为未来的工作。
  • 结论。对本文的贡献再一次总结。既要从理论、方法上加以总结和提炼,也要说明在实验上的贡献和结论。所做的结论,要让读者感到信服,同时指出未来的研究方向。
  • 参考文献。给出所有重要相关工作的论文。记住,漏掉了一篇重要的参考文献(或者牛人的工作),基本上就没有被录取的希望了。
  • 写完第一稿,然后就是再改三遍。
  • 把文章交给同一个项目组的人士,请他们从算法新颖度、创新性和实验规模和结论方面,以挑剔的眼光,审核你的文章。自己针对薄弱环节,进一步改进,重点加强算法深度和工作创新性。
  • 然后请不同项目组的人士审阅。如果他们看不明白,说明文章的可读性不够。你需要修改篇章结构、进行文字润色,增加文章可读性。
  • 如投ACL等国际会议,最好再请英文专业或者母语人士提炼文字

自然语言学术资料

1. 国际学术组织、学术会议与学术论文

自然语言处理(natural language processing,NLP)在很大程度上与计算语言学(computational linguistics,CL)重合。与其他计算机学科类似,NLP/CL有一个属于自己的最权威的国际专业学会,叫做The Association for Computational Linguistics(ACL,URL:ACL Home Page),这个协会主办了NLP/CL领域最权威的国际会议,即ACL年会,ACL学会还会在北美和欧洲召开分年会,分别称为NAACL和EACL。除此之外,ACL学会下设多个特殊兴趣小组(special interest groups,SIGs),聚集了NLP/CL不同子领域的学者,性质类似一个大学校园的兴趣社团。其中比较有名的诸如SIGDAT(Linguistic data and corpus-based approaches to NLP)、SIGNLL(Natural Language Learning)等。这些SIGs也会召开一些国际学术会议,其中比较有名的就是SIGDAT组织的EMNLP(Conference on Empirical Methods on Natural Language Processing)和SIGNLL组织的CoNLL(Conference on Natural Language Learning)。此外还有一个International Committee on Computational Linguistics的老牌NLP/CL学术组织,它每两年组织一个称为International Conference on Computational Linguistics (COLING)的国际会议,也是NLP/CL的重要学术会议。NLP/CL的主要学术论文就分布在这些会议上。

作为NLP/CL领域的学者最大的幸福在于,ACL学会网站建立了称作ACL Anthology的页面(URL:ACL Anthology),支持该领域绝大部分国际学术会议论文的免费下载,甚至包含了其他组织主办的学术会议,例如COLING、IJCNLP等,并支持基于Google的全文检索功能,可谓一站在手,NLP论文我有。由于这个论文集合非常庞大,并且可以开放获取,很多学者也基于它开展研究,提供了更丰富的检索支持,具体入口可以参考ACL Anthology页面上方搜索框右侧的不同检索按钮。

与大部分计算机学科类似,由于技术发展迅速,NLP/CL领域更重视发表学术会议论文,原因是发表周期短,并可以通过会议进行交流。当然NLP/CL也有自己的旗舰学术期刊,发表过很多经典学术论文,那就是Computational Linguistics(URL:MIT Press Journals)。该期刊每期只有几篇文章,平均质量高于会议论文,时间允许的话值得及时追踪。此外,ACL学会为了提高学术影响力,也刚刚创办了Transactions of ACL(TACL,URL:Transactions of the Association for Computational Linguistics (ISSN: 2307-387X)),值得关注。值得一提的是这两份期刊也都是开放获取的。此外也有一些与NLP/CL有关的期刊,如ACM Transactions on Speech and Language Processing,ACM Transactions on Asian Language Information Processing,Journal of Quantitative Linguistics等等。

根据Google Scholar Metrics 2013年对NLP/CL学术期刊和会议的评价,ACL、EMNLP、NAACL、COLING、LREC、Computational Linguistics位于前5位,基本反映了本领域学者的关注程度。

NLP/CL作为交叉学科,其相关领域也值得关注。主要包括以下几个方面:(1)信息检索和数据挖掘领域。相关学术会议主要由美国计算机学会(ACM)主办,包括SIGIR、WWW、WSDM等;(2)人工智能领域。相关学术会议主要包括AAAI和IJCAI等,相关学术期刊主要包括Artificial Intelligence和Journal of AI Research;(3)机器学习领域,相关学术会议主要包括ICML,NIPS,AISTATS,UAI等,相关学术期刊主要包括Journal of Machine Learning Research(JMLR)和Machine Learning(ML)等。例如最近兴起的knowledge graph研究论文,就有相当一部分发表在人工智能和信息检索领域的会议和期刊上。实际上国内计算机学会(CCF)制定了“中国计算机学会推荐国际学术会议和期刊目录”(CCF推荐排名),通过这个列表,可以迅速了解每个领域的主要期刊与学术会议。

最后,值得一提的是,美国Hal Daumé III维护了一个natural language processing的博客(natural language processing blog),经常评论最新学术动态,值得关注。我经常看他关于ACL、NAACL等学术会议的参会感想和对论文的点评,很有启发。另外,ACL学会维护了一个Wiki页面(ACL Wiki),包含了大量NLP/CL的相关信息,如著名研究机构、历届会议录用率,等等,都是居家必备之良品,值得深挖。

 

2. 国内学术组织、学术会议与学术论文

与国际上相似,国内也有一个与NLP/CL相关的学会,叫做中国中文信息学会(URL:中国中文信息学会)。通过学会的理事名单(中国中文信息学会)基本可以了解国内从事NLP/CL的主要单位和学者。学会每年组织很多学术会议,例如全国计算语言学学术会议(CCL)、全国青年计算语言学研讨会(YCCL)、全国信息检索学术会议(CCIR)、全国机器翻译研讨会(CWMT),等等,是国内NLP/CL学者进行学术交流的重要平台。尤其值得一提的是,全国青年计算语言学研讨会是专门面向国内NLP/CL研究生的学术会议,从组织到审稿都由该领域研究生担任,非常有特色,也是NLP/CL同学们学术交流、快速成长的好去处。值得一提的是,2010年在北京召开的COLING以及2015年即将在北京召开的ACL,学会都是主要承办者,这也一定程度上反映了学会在国内NLP/CL领域的重要地位。此外,计算机学会中文信息技术专委会组织的自然语言处理与中文计算会议(NLP&CC)也是最近崛起的重要学术会议。中文信息学会主编了一份历史悠久的《中文信息学报》,是国内该领域的重要学术期刊,发表过很多篇重量级论文。此外,国内著名的《计算机学报》、《软件学报》等期刊上也经常有NLP/CL论文发表,值得关注。

过去几年,在水木社区BBS上开设的AI、NLP版面曾经是国内NLP/CL领域在线交流讨论的重要平台。这几年随着社会媒体的发展,越来越多学者转战新浪微博,有浓厚的交流氛围。如何找到这些学者呢,一个简单的方法就是在新浪微博搜索的“找人”功能中检索“自然语言处理”、 “计算语言学”、“信息检索”、“机器学习”等字样,马上就能跟过去只在论文中看到名字的老师同学们近距离交流了。还有一种办法,清华大学梁斌开发的“微博寻人”系统(清华大学信息检索组)可以检索每个领域的有影响力人士,因此也可以用来寻找NLP/CL领域的重要学者。值得一提的是,很多在国外任教的老师和求学的同学也活跃在新浪微博上,例如王威廉(Sina Visitor System)、李沐(Sina Visitor System)等,经常爆料业内新闻,值得关注。还有,国内NLP/CL的著名博客是52nlp(我爱自然语言处理),影响力比较大。总之,学术研究既需要苦练内功,也需要与人交流。所谓言者无意、听者有心,也许其他人的一句话就能点醒你苦思良久的问题。无疑,博客微博等提供了很好的交流平台,当然也注意不要沉迷哦。

 

3. 如何快速了解某个领域研究进展

最后简单说一下快速了解某领域研究进展的经验。你会发现,搜索引擎是查阅文献的重要工具,尤其是谷歌提供的Google Scholar,由于其庞大的索引量,将是我们披荆斩棘的利器。

当需要了解某个领域,如果能找到一篇该领域的最新研究综述,就省劲多了。最方便的方法还是在Google Scholar中搜索“领域名称 + survey / review / tutorial / 综述”来查找。也有一些出版社专门出版各领域的综述文章,例如NOW Publisher出版的Foundations and Trends系列,Morgan & Claypool Publisher出版的Synthesis Lectures on Human Language Technologies系列等。它们发表了很多热门方向的综述,如文档摘要、情感分析和意见挖掘、学习排序、语言模型等。

如果方向太新还没有相关综述,一般还可以查找该方向发表的最新论文,阅读它们的“相关工作”章节,顺着列出的参考文献,就基本能够了解相关研究脉络了。当然,还有很多其他办法,例如去http://videolectures.net上看著名学者在各大学术会议或暑期学校上做的tutorial报告,去直接咨询这个领域的研究者,等等。

 

自然语言学习资料

书籍篇:
入门书籍挺多的,我也看过不少。
1)《数学之美》(吴军) 
这是我看的第一本关于NLP的书。现在第二版出来了,貌似新增了两章内容,还没看过。第一版写的挺好,科普性质。看完对于nlp的许多技术原理都有了一点初步认识。现在没事还会翻翻的。
2)《自然语言处理简明教程》(冯志伟)
冯志伟老师这本书,偏向于语言学,书略厚。关于语言学的东西很多。都是很容易理解的东西。建议没有学过理工科们翻一翻,毕竟nlp这东西未来趋势可能会融合不少语言学的东西。
3)《自然语言处理综论》(Daniel Jurafsky)
这本书也是冯志伟老师翻译的,翻译的挺棒,看了差不多一半。综论性质的,选感兴趣的章节翻翻就行。作者是Daniel Jurafsky,在coursera上面有他的课程,后面视频篇里集中谈。
4)《自然语言处理的形式模型》(冯志伟)
这本书还是冯志伟老师写的。很佩服冯志伟老师,文理兼修,而且都很厉害。内容许多是从他以前的著作里面摘取的。算是一本各种语言模型和统计模型的大集合吧。放在桌面,没事翻翻也能是极好的。
5)《统计自然语言处理(第2版)》(宗成庆)
这本书我觉得写的不错。虽然我是语言学背景,但读起来也没有太吃力。它也是综论性质的,可以跳着看。
6)《统计学习方法》(李航)
自然语言处理需要些机器学习的知识。我数学基础还是太薄弱,有的内容还是有些吃力和困惑的。
7)《机器学习实战》哈林顿 (Peter Harrington)
《Python自然语言处理》 
《集体智慧编程》
这些书都是python相关的。中间那本就是将NLTK的。网上都有电子版,需要的时候翻一番看一看就行。

视频篇:

@吴俣

 上面提到的,斯坦福的nlp课程Video Listing,哥伦比亚大学的https://class.coursera.org/nlangp-001,两个都是英文的,无中文字幕,现在还可以下载视频和课件。
另外超星学术视频:
1)自然语言理解_宗成庆
我觉得讲的还是不错的,第一次听的时候有些晕乎。该课程网上有ppt讲义。讲义后来被作者写成了书,就是上面提到的《统计自然语言处理》。拿着书就是教材,还有课程ppt和视频可以看,这种感觉还是很好的。
2)自然语言处理_关毅
感觉讲的一般,听了几节,跳跃太多,有时候让人摸不着头脑。多听听还是很有益处的吧。
3)计算语言学概论_侯敏
这个就是语言学内容为主了,作者也是语言学背景下在nlp比较活跃的。讲的很浅。老师讲课很啰嗦,说话太慢,我都是加速看的。
4)计算语言学_冯志伟
冯志伟老师这个课,一如他的著作,语言学和统计都会涉及到一些。冯志伟老师说话有些地方听不大清,要是有字幕就好了。
5)语法分析_陆俭明
这是纯语言学的课程。陆剑明也是当代语言学的大师。我觉得既然是自然语言处理,语言学的东西,还是多少要了解的。

 

其他篇:
1)博客的话,我爱自然语言处理专门记录nlp的,很不错,再有就是csdn上一些比较琐碎的了。
2)北京大学中文系 应用语言学专业这个刚开始的时候也看了看,又不少干货。
3)《中文信息学报》说这个,不会被大神喷吧。英语不佳,英文文献实在看的少。这个学报,也是挑着看看就行。

自然语言处理开源项目

作者:刘知远
链接:https://www.zhihu.com/question/19929473/answer/90201148
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

中文词法分析
THULAC:一个高效的中文词法分析工具包
包括中文分词、词性标注功能。已经提供C++、Java、Python版本。

中文文本分类
THUCTC: 一个高效的中文文本分类工具
提供高效的中文文本特征提取、分类训练和测试功能。

THUTag: 关键词抽取与社会标签推荐工具包
GitHub - YeDeming/THUTag: A Package of Keyphrase Extraction and Social Tag Suggestion
提供关键词抽取、社会标签推荐功能,包括TextRank、ExpandRank、Topical PageRank(TPR)、Tag-LDA、Word Trigger Model、Word Alignment Model等算法。

PLDA / PLDA+: 一个高效的LDA分布式学习工具包
https://code.google.com/archive/p/plda/

知识表示学习
知识表示学习工具包
GitHub - Mrlyk423/Relation_Extraction: Knowledge Base Embedding
包括TransE、TransH、TransR、PTransE等算法。

考虑实体描述的知识表示学习算法
GitHub - xrb92/DKRL: Representation Learning of Knowledge Graphs with Entity Descriptions

词表示学习
跨语言词表示学习算法
Learning Cross-lingual Word Embeddings via Matrix Co-factorization

主题增强的词表示学习算法
GitHub - largelymfs/topical_word_embeddings: A demo code for topical word embedding

可解释的词表示学习算法
GitHub - SkTim/OIWE: Online Interpretable Word Embeddings

考虑字的词表示学习算法
GitHub - Leonard-Xu/CWE

网络表示学习
文本增强的网络表示学习算法
GitHub - albertyang33/TADW: code for IJCAI2015 paper "Network Representation Learning with Rich Text Information"

(1) 中科院自动化所的博士,用神经网络做自然语言处理:http://licstar.net

(2) 分词项目:https://github.com/fxsjy/jieba
(3) 清华大学搞的中文分词等NLP开源项目:https://github.com/thunlp

(4)一个轻量级的分词开源软件:https://github.com/lionsoul2014/jcseg

(5) 有一些信息检索的笔记:http://www.cnblogs.com/jcli/category/315064.html

(6)word2vec的资源汇总:http://blog.csdn.net/itplus/article/details/37969519

(7)Deep Learning实战之word2vec:http://techblog.youdao.com/?p=915#LinkTarget_699

(8)中英文维基百科语料上的Word2Vec实验: http://www.52nlp.cn/%E4%B8%AD%E8%8B%B1%E6%96%87%E7%BB%B4%E5%9F%BA%E7%99%BE%E7%A7%91%E8%AF%AD%E6%96%99%E4%B8%8A%E7%9A%84word2vec%E5%AE%9E%E9%AA%8C

(9)很多NLP的原创中文论文:https://liweinlp.com/?p=342

(10) 文本特征提取:http://blog.csdn.net/qll125596718/article/details/8306767

(11)CSDN对文本分类的简单介绍:http://blog.csdn.net/yangliuy/article/details/7316494

(12) LDA(Latent Dirichlet Allocation)第一作者的主页:http://www.cs.columbia.edu/~blei/

(13) LDA的详细介绍:http://blog.csdn.net/v_july_v/article/details/41209515

(14) CNN用于自然语言处理:http://blog.csdn.net/zhdgk19871218/article/details/51387197

(15)elasticSearch高手:http://log.medcl.net/

(16)文档相似度的参考文献:(a) https://www.zhihu.com/question/29094227

                                     (b)http://www.52nlp.cn/

(17) word2vector or doc2 vector   :http://weixin.niurenqushi.com/article/2016-06-15/4322378.html

0x00 中文分词

1)FoolNLTK

slogan:可能不是最快的开源中文分词,但很可能是最准的开源中文分词

仓库地址

2)CWS_Dict

论文"Neural Networks Incorporating Dictionaries for Chinese Word Segmentation", AAAI 2018 源码

仓库地址

3)multi-criteria-cws

多标准中文分词的简单解决方案

仓库地址

4)jieba

结巴中文分词

仓库地址

5)NLPIR-team/NLPIR

NLPIR是一套专门针对原始文本集进行处理和加工的软件,提供了中间件处理效果的可视化展示,也可以作为小规模数据的处理加工工具。

仓库地址

0X01 命名实体识别

1)anaGO

2)golden-horse

3)LTP

4)NeuroNER

使用神经网络实现的命名实体识别,简单易用并达到state-of-the-art的效果。

仓库地址

5)shiyybua/NER

基于tensorflow深度学习的中文的命名实体识别

仓库地址

6)nltk

0x02 词性标注POS-tagging

1)anaGO

2)LTP

3)NLPIR

仓库地址

4)jieba

仓库地址
“结巴”中文分词:做最好的 Python 中文分词组件

5)nltk

0X03 关键词抽取KEYWORD EXTRACTION(FOR DOCUMENT(S))

1)NLPIR(FOR SHROT TEXT AS WELL)

仓库地址

2)jieba

仓库地址

TextRank-based

TFIDF-based

4) aneesha/RAKE

仓库地址

0x04 依存句法DEPENDENCY PARCING

1) LTP

2) nltk

0x05 自然语言理解NLU(SEMANTIC ANALYSIS)

1)anaGO(SRL)

2)RasaHQ/rasa_nlu

将自然语言转换为结构化数据
仓库地址
Rasa NLU (Natural Language Understanding) is a tool for understanding what is being said in short pieces of text. For example, taking a short message like:

"I'm looking for a Mexican restaurant in the center of town"
And returning structured data like:

  intent: search_restaurant
  entities: 
    - cuisine : Mexican
    - location : center

3)LTP

4)is13

Investigation of Recurrent Neural Network Architectures and Learning Methods for Spoken Language Understanding

仓库地址

0x06 字词匹配WORDS MATCHING

1)NLPIR(KeyScanner)

2)AC AUTOMATON (PYTHON:esmre  ahocorasick)

0X07 实体链接ENTITY LINKING

1)yahoo/FEL

快速的实体链接工具集,实现mention连接到Wikipedia。

仓库地址

2)dalab/pboh-entity-linking(JAVA)

论文"Probabilistic Bag-Of-Hyperlinks Model for Entity Linking"的源码。

仓库地址

3)CN-DBpedia API

CN-DBpedia提供全套API,并且免费开放使用。

WEBSITE

4)songjs1993/Entity-Linking

Entity Linking,识别给定文本中出现的命名实体(Named Entity),并映射到特定的知识库中唯一的实体。包括命名实体识别、消歧等工作。

仓库地址

5)semanticize/semanticizer

The Semanticizer是2012年由Daan Odijk开发的用于语义连接的应用。

仓库地址

0x08 自动文摘AUTOMATIC SUMMARIZATION

1)miso-belica/sumy

针对文本文档和HTML的自动文摘python模块。 https://pypi.python.org/pypi/sumy

仓库地址

0x09 主题建模TOPIC MODELING

1)baidu/Familia

百度开源的Familia 开源项目包含文档主题推断工具、语义匹配计算工具以及基于工业级语料训练的三种主题模型:Latent Dirichlet Allocation(LDA)、SentenceLDA 和Topical Word Embedding(TWE)。

仓库地址

2) Microsoft/LightLDA

微软开源的方便快捷轻量的大规模主题建模系统 http://www.dmtk.io

仓库地址

0x0A 文本分类TEXT CLASSIFICATION

1)yoonkim/CNN_sentence

经典论文Convolutional Neural Networks for Sentence Classification (EMNLP 2014). 的大牛作者的源代码。

仓库地址

2)DocumentClassification

使用TensorFlow实现的简单的用以文本分类的CNN模型。

仓库地址

3)lc222/text_classification_AI100

主要用于文本分类,其中涉及CHI选择特征词,TFIDF计算权重,朴素贝叶斯、决策树、SVM、XGBoost等算法, 实现传统的文本分类并取得了不错的效果。

仓库地址

4) dennybritz/cnn-text-classification-tf

TensorFlow搭建cnn文本分类模型

仓库地址

5)gaussic/text-classification-cnn-rnn

使用卷积神经网络以及循环神经网络进行中文文本分类.基于TensorFlow在中文数据集上的简化实现,使用了字符级CNN和RNN对中文文本进行分类,达到了较好的效果。

仓库地址

6)清华大学THUCTC

THUCTC(THU Chinese Text Classification)是由清华大学自然语言处理实验室推出的中文文本分类工具包,能够自动高效地实现用户自定义的文本分类语料的训练、评测、分类功能。

仓库地址

7)jiegzhan/multi-class-text-classification-cnn-rnn

使用TensorFlow构建的用于多类别分类的 CNN, RNN (GRU and LSTM)模型。

仓库地址

0x0B 问答系统QA\CHATBOT

1)brmson/yodaqa

YodaQA 是一个开源的事实型问答系统,他能够利用即时的信息抽取从数据库和非结构化的文本语料中抽取答案。在Freebase和DBPpedia上表现优异。

仓库地址

2)ChatterBot

ChatterBot 是一个用于构建chatbot的集成了机器学习的对话引擎,。http://chatterbot.readthedocs.io

仓库地址

3)Conchylicultor/DeepQA

使用TensorFlow实现论文A Neural Conversational Model 中的google的聊天机器人(seq2seq方法)。

仓库地址

4)macournoyer/neuralconvo

使用Torch实现论文A Neural Conversational Model 中的google的聊天机器人(seq2seq方法)。

仓库地址

5) fateleak/chatbot-zh-torch7

4)的中文情境下的实现。

仓库地址

6)alfredfrancis/ai-chatbot-framework

使用python的chatbot框架。

仓库地址

7)zake7749/Chatbot

基于向量匹配的情景式聊天机器人。

仓库地址

8)qhduan/Seq2Seq_Chatbot_QA

使用TensorFlow实现的Sequence to Sequence的聊天机器人模型。

仓库地址

自然语言处理工具

  1. 著名工具:NLTK、结巴、Word2Vec、Gensim、SpaCy
  2. 目前常用的自然语言处理开源项目/开发包有哪些? - 刘知远的回答 - 知乎 
    https://www.zhihu.com/question/19929473/answer/90201148

你可能感兴趣的:(机器学习)