自然语言处理(NLP)的任务

1. 什么是NLP

自然语言处理是人工智能的一个子领域,自然语言处理是研究人与人交互中以及在人与计算机交互中的语言问题的一门学科。人工智能应用的领域主要有:数据挖掘、推荐算法、智能搜索、广告推荐、自然语言处理、计算机视觉、自动驾驶等等。

2.NLP主要研究方向

  1. 信息抽取:从给定文本中抽取重要的信息,比如时间、地点、任务、事件、原因、结果、数字、日期、货币、专有名词等等。通俗来说,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。
  2. 文本生成:机器像人一样使用自然语言处理进行表达和写作。依据输入的不同,文本生成技术包括书籍到文本生成和文本到文本生成。数据到文本生成是指包含键值对的数据转化为自然语言文本;文本到文本生成对输入文本进行转换和处理从而产生新的文本。
  3. 问答系统:对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体连接、关系识别、形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳答案。
  4. 对话系统:系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。
  5. 文本挖掘:包括文本聚类、分类、情感分析以及对挖掘信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习。
  6. 语音识别和生成:语音识别是将输入计算机的语音符号识别转换成书面语表示。语音生成又称为文语转换、语音合成,它是将书面文本自动转换为对应的语音表征。
  7. 信息过滤:通过计算机系统自动识别和过滤符合特定条件的文档信息。通常指网络有害信息的自动识别和过滤,主要用于信息安全和防护,网络内容管理等。
  8. 舆情分析:是指收集和处理海量信息,自动化地对网络舆情进行分析,以实现及时应对网络舆情的目的。
  9. 信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。
  10. 机器翻译 :把输入的源语言文本通过自动翻译获得另外一种语言的文本。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。

3. NLP算法工程师,需要实实在在掌握的技能

  1. 正则表达式。除了简单的文本匹配场景外,各种文档结构化、信息抽取的冷启动,基本都是靠这个。因为在实际业务下,不可能马上就能获取高质量的标注数据,更别说各种sota模型训练了,所以你可能掌握各种正则表达式,无疑一马平川之大效果,比如xx前面不存在xx字符且后面存在xx字符,或者xx字符出现几次且后面必须出现xx字符的场景。(来自知乎:其实我一直想做一个根据人类语言自动提供正则表达式推荐的模型,调研了一阵子发现难度很大,从另一个角度也说明要写好正则表达式也非常难的)
  2. 常用句法分析工具。这个一般主要会在关键短语抽取、信息抽取使用。由于缺少标注数据,不能使用sota模型,又因为单独使用正则表达式毕竟不能覆盖各种case,因此有时候需要与句法分析工具结合,配合对简单语法的使用,例如主谓结构、动宾结构、补语结构等等,找出我们所需的信息单元。不过从头训练一个句法工具通常来不及满足业务方的上线期限,因此通常会使用一些已有工具如哈工大的LTP,虽然有些问题,但是大多数情况下够用。
  3. 性能优化的意识。这里并不特指某个性能优化的方法,而是在日常写代码的时候,要有这个意识,例如如何优化循环的效率、能够并行化操作的地方尽量并行化,模型读取数据的时候如何优化读取的效率,模型部署上线inference的时候是否满足业务的性能要求,如果不满足,能够找到性能优化的位置,例如模型设计的时候是否设计了冗余的层数、是否使用了过于复杂的模型,部署的时候是否使用一些高效的部署方式(如tensorflow-serving)、是否可以使用TensorRT优化部分op,是否可以针对部署平台上的硬件环境重新编译tensorflow。这些都需要在实际的工程中从坑里爬出来,哈哈。
  4. linux。这个技能也是刚需,但是并不需要你对linux的操作精通到什么程度,但至少懂得常用的操作命令,例如监控服务器的状态、防火墙策略的配置、docker的简单操作、常用数据库的操作(mysql、postgresql等)、压缩解压命令、ftp/sftp命令、chmod命令、vi、cat、ps等等。除了上述技能外,默认大家对NLP领域的技术都是符合条件的,所以就没额外说明。如果你对基础的统计机器学习、RNN、transformer、bert等不太了解的话,那实在是说不过去的。上述技能针对的是需要落地需求的算法工程,但如果你是专门做算法研究,对落地没有要求的,那就可以忽略上面的东西,此时你需要的就是拼论文、拼比赛、拼研究组、拼导师、拼学长学姐。。。

4. 基础任务

高效率的字、词或句子的向量表示方法,大大减轻了我们对人工特征工程的依赖。在此基础上,自然语言处理有一系列的基础任务。
如果把一段文本理解为一个序列,把各种标签理解为不同类别,那么NLP基础任务根据问题本质的不同可以分为以下几种。

  • 从类别生成序列:包括文本生成、图像描述生成等任务。
  • 从序列生成类别:包括文本分类、情感分析、关系提取等任务
  • 从序列到同步生成序列:包括分词、词性标注、语义角色标注、实体识别等任务。
  • 从系列异步生成序列:包括机器翻译、自动摘要、拼音输入等任务
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 自然语言处理(Natural Language Processing,简称NLP)是计算机科学与人工智能领域的一个重要研究方向,目的是让计算机能够理解、处理和生成人类的自然语言。NLP-100例是一份经典的NLP问题集合,包含了各种与自然语言处理相关的问题和挑战。 这份NLP-100例涵盖了从基础的文本处理到更高级的自然语言理解和生成的问题。例如,其中包括了文本预处理、词频统计、语法分析、词性标注、实体识别、情感分析、机器翻译等任务NLP-100例的目的是帮助研究者和开发者更好地理解NLP领域的核心问题和技术,同时提供一些典型的案例和数据集供实践和研究使用。通过完成这些例题,可以锻炼自己在NLP领域的能力和技术,提高对自然语言的处理和理解能力。 此外,NLP-100例也为研究者提供了一个可以与其他人交流和探讨的平台。研究者可以使用相同的数据集和问题进行实验和评估,从而更好地了解NLP技术的优劣和进展。 总之,NLP-100例是一个对NLP进行实践和研究的重要资源。通过解决这些例题,可以深入理解自然语言处理的基础和技术,掌握各种NLP任务的方法和技巧。同时,它也是一个促进交流和合作的平台,为NLP研究者提供了一个共同的基础和语言。 ### 回答2: 自然语言处理(Natural Language Processing,简称NLP)是研究计算机与人类自然语言之间的交互的一门学科。NLP-100例指的是日本的一个NLP入门教程,包含了100个常见的NLP问题和对应的解答。 NLP-100例涵盖了从文本处理到语义理解等多个方面的问题。其中,一些例子包括:文本的分词、词性标注、句法分析、语义角色标注和文本分类等。 以分词为例,分词是将一段连续的文本分割成词语的过程。在NLP-100例中,可以通过使用Python中的分词工具NLTK(Natural Language Toolkit)来实现分词功能。 另外,对于文本的词性标注,NLP-100例提供了使用POS(Part-Of-Speech)标记对文本中的每个词进行词性标注的方法。可以使用NLTK提供的POS标注工具来实现。 此外,NLP-100例还包括了语义角色标注的问题,语义角色标注是为了确定句子中的谓语动词所承担的语义角色,如施事者、受事者、时间等。可以使用Stanford CoreNLP工具包来实现语义角色标注。 最后,NLP-100例还介绍了文本分类的问题,文本分类是将文本划分到预定义的类别中。可以使用机器学习算法,如朴素贝叶斯或支持向量机(SVM)等来进行文本分类。 通过学习NLP-100例,我们可以了解到自然语言处理的基本方法和技术,并且可以利用这些技术来解决相关的自然语言处理问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值