自2013年以来,我一直从事自然语言处理(NLP)方面的工作,当时手动特征工程在机器学习中非常流行。从那时起我们已经走了很长一段路。实际上,我的博士专业是信息检索和机器学习技术,尤其是它们如何应用于社会计算和计算语言学,同时还开发了从大规模文本数据中高效提取信息的方法。我有幸拥有将经典机器学习应用于自然语言处理的经验,见证了深度学习在该领域的爆发式增长。许多学生一直要求我准备一份关于如何开始使用自然语言处理的指南。这篇博文旨在根据研究、该领域的知识和个人经验帮助其他人。虽然这不是直接指南,但我在此处共享的资源可以帮助您在需要时创建自己的NLP学习路径。这将是我多年来遇到的教育资源的组合。我将分享我研究这些资源及其适用性的经验。此列表绝不是详尽无遗的,但它应该提供一些选项,并且对于任何有兴趣开始使用NLP的人来说都是一个很好的起点。您实际上不需要消耗所有内容。只需选择适合您当前需求的资源。例如,您可能已经有了一些理论基础,只需要获得在生产环境中开发NLP系统的最佳实践。在这种情况下,您可以直接跳到有关NLP技术实践经验的建议。我只是介绍我个人研究过的内容,我敢肯定还有很多其他资源我还缺少,如果您有任何建议,请随时发表评论。SpeechandLanguageProcessing作者:DanJurafsky和??JamesH.Martin学习基础知识对于学习任何学科都至关重要。我非常喜欢这个,因为它对我有用。我关注这本书有一段时间了,现在已经是第三版了。本书涵盖的材料写得非常好,为NLP提供了良好的理论基础。对于任何想要开始学习NLP的人来说,这可能是一个很好的起点。即使我读过这本书,我也会定期复习它,因为它会定期更新该领域的最新进展。如果您真的很喜欢这本书,您还会发现讲座很有用,因为它们确实涵盖了本书涵盖的许多基本主题。自然语言处理的语言学基础:EmilyM.Bender的形态学和语法的100个要点EmilyBender是我最喜欢的语言研究人员之一。她的工作对我所做的研究产生了巨大影响,使我能够对NLP研究采取更严格的方法。NLP深受语言学的影响。事实上,Emily提倡用语言学的规则来指导NLP的发展。她的书很好地介绍了NLP中使用的语言概念。这是任何NLP学生的必读书籍。诺亚·A·史密斯(NoahA.Smith)的《语言结构预测》(LinguisticStructurePrediction)这本书侧重于自然语言处理和机器学习之间的联系,涵盖了语言结构的统计、基于计算的建模。本书假定您已经对机器学习有所了解。如果您是机器学习的新手,可以在此处查看我的机器学习建议列表。建议您至少学习一门机器学习的入门课程,以充分利用本书。JacobEisenstein的自然语言处理简介这是我最喜欢的NLP书籍之一,因为它侧重于讨论语言学概念和应用。它涵盖了集束搜索、最大似然估计、矩阵分解等方法。然后解释了如何利用这些方法来解决范围广泛的任务,例如分类、词性标注、关系提取、语言建模等。本书假定读者具有多元微积分和线性代数的知识。本书直接推荐的一本书是《机器学习数学》这本书。这是一本比其他教科书更高级的教科书,它确实需要对机器学习和数学概念有一定的了解。YoavGoldberg的自然语言处理中的神经网络方法(关于人类语言技术的综合讲座)如果您刚刚开始您的NLP之旅,您可能已经接触过NLP中更现代的方法,例如RNN和其他基于深度学习的模型。如果您正在寻找神经网络背后的理论及其在NLP中的使用方式的全面概述,那么这本书适合您。本书中的参考资料对我自己的研究很有帮助。ModernDeepLearningTechniquesAppliedtoNaturalLanguageProcessingbySoujanyaPoria和ElvisSaravia关于NLP的现代方法,我也想推荐我和SoujanyaPoria放在一起的这个开放资源。它带您了解NLP领域的一些最新进展,从词嵌入到注意力机制再到强化学习。CS224N:深度学习自然语言处理|ChristopherManning和AbigailSee的2019年冬季如果您最近接触了NLP,您可能已经遇到过这个热门的NLP课程。所有讲座和幻灯片都是公开的,您可以在课程网站上找到。该课程非常注重NLP的深度学习方法,因此您会看到第一堂课直接从词嵌入开始,然后过渡到更高级的主题,如卷积网络和转换器。如果你对经典的NLP方法感兴趣,你可能想看看开头提到的其中一本书。事实上,我强烈建议您这样做,因为它是宝贵的知识,在构建实际NLP系统的实践中很有用。这样的理论知识还好,但是不管你是NLP研究人员还是工程师,都得辅以动手实践。我发现这些书对于练习语言建模和基于文本的分类等主题非常有用。使用PyTorch进行自然语言处理:使用深度学习构建智能语言应用程序,作者DelipRao和BrianMcMahan尽管本书基于PyTorch,但使用深度学习构建语言应用程序的实践很好。此外,还有一些传统概念和方法的内容和代码,如TF-IDF和语义等。如果您是PyTorch开发人员,您会发现这本书很容易上手。HobsonLane、ColeHoward和HannesHapke合着的《自然语言处理实战》这是另一本特别的书,也是我最喜欢的书之一,它为您提供有关NLP的所有实践实践。这本书将指导您从语料库构建您的第一个词汇一直到构建聊天机器人。本书中有很多代码示例,所以如果你喜欢编码,它可能适合你。SowmyaVajjala、BodhisattwaMajumder、AnujGupta和HarshitSurana的PracticalNaturalLanguageProcessingNLP实践实践,我非常喜欢今年出版。它涵盖的主题从NLP的各种实际应用到部署NLP系统的最佳实践。尽管本书只读了一半,但我不得不将其包括在内,因为有许多NLP工程师希望熟悉如何更有效地构建NLP系统并了解构建NLP系统所需的技术。附录(奖励)这里有一些其他资源和项目,可以帮助您随时了解NLP领域。代码为arXiv(cs.CL)的论文使用MLNLPProgressNLPNewsbySebastianRuderNLPNewsletterbyElvisSaravia我关于如何开始学习NLP的建议到此结束。选择最适合您的内容很重要。我已尝试为每个条目提供一些解释,希望这将帮助您创建自己的学习路径。这些是我遇到的一些最好的资源,我发现它们对于扩展我的知识甚至教授这些概念非常有用,更不用说将它们应用于研究想法和构建从语义搜索引擎到情感分类器的NLP系统.本文转载自雷锋网。如需转载,请在雷锋网官网申请授权。
