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基础任务根据问题本质的不同可以分为以下几种。

  • 从类别生成序列:包括文本生成、图像描述生成等任务。
  • 从序列生成类别:包括文本分类、情感分析、关系提取等任务
  • 从序列到同步生成序列:包括分词、词性标注、语义角色标注、实体识别等任务。
  • 从系列异步生成序列:包括机器翻译、自动摘要、拼音输入等任务

自然语言处理(NLP)的任务相关推荐

  1. 【组队学习】【29期】9. 基于transformers的自然语言处理(NLP)入门

    9. 基于transformers的自然语言处理(NLP)入门 航路开辟者:多多.erenup.张帆.张贤.李泺秋.蔡杰.hlzhang 领航员:张红旭.袁一涵 航海士:多多.张红旭.袁一涵.童鸣 基 ...

  2. 【组队学习】【28期】基于transformers的自然语言处理(NLP)入门

    基于transformers的自然语言处理(NLP)入门 论坛版块: http://datawhale.club/c/team-learning/39-category/39 开源内容: https: ...

  3. 自然语言处理(NLP)之用深度学习实现命名实体识别(NER)

    几乎所有的NLP都依赖一个强大的语料库,本项目实现NER的语料库如下(文件名为train.txt,一共42000行,这里只展示前15行,可以在文章最后的Github地址下载该语料库): played ...

  4. 自然语言处理(NLP)之使用TF-IDF模型计算文本相似度

    自然语言处理(NLP)之使用TF-IDF模型计算文本相似度 所用数据集:ChnSentiCorp_htl_all.csv 语料库即存放稀疏向量的列表. 要注意的是,搜索文本text与被检索的文档共用一 ...

  5. 自然语言处理(NLP)之gensim中的TF-IDF的计算方法

    自然语言处理(NLP)之gensim中的TF-IDF的计算方法 step 1.  去掉所有文本中都会出现的词 texts = [['这是', '一个', '文本'], ['这是', '第二个', '文 ...

  6. 自然语言处理NLP之语义相似度、语言模型、doc2vec

    自然语言处理NLP之语义相似度.语言模型.doc2vec 目录 自然语言处理NLP之语义相似度.语言模型.doc2vec 语义相似度

  7. 自然语言处理NLP之BERT、BERT是什么、智能问答、阅读理解、分词、词性标注、数据增强、文本分类、BERT的知识表示本质

    自然语言处理NLP之BERT.BERT是什么.智能问答.阅读理解.分词.词性标注.数据增强.文本分类.BERT的知识表示本质 目录

  8. 自然语言处理NLP之文本蕴涵、智能问答、语音识别、对话系统、文本分类、情感计算

    自然语言处理NLP之文本蕴涵.智能问答.语音识别.对话系统.文本分类.情感计算 目录

  9. 自然语言处理NLP之文本摘要、机器翻译、OCR、信息检索、信息抽取、校对纠错

    自然语言处理NLP之文本摘要.机器翻译.OCR.信息检索.信息抽取.校对纠错 目录

  10. 自然语言处理NLP之自然语言生成、文本相似性、看图说话、说话生图、语音合成、自然语言可视化

    自然语言处理NLP之自然语言生成.文本相似性.看图说话.说话生图.语音合成.自然语言可视化 目录

最新文章

  1. (每日一题)P1447 [NOI2010] 能量采集(莫反套路 + 欧拉反演 / 容斥原理)
  2. 面试官:为什么SpringBoot的 jar 可以直接运行?
  3. 计算机视觉会议与专家(重排版)
  4. Proxy模式简介和用例
  5. 学phython的小笔记
  6. 心情舒畅,升级到u10.04了
  7. 编程语言入门及进阶、设计模式、面向对象书籍
  8. MWeb建立静态网站/博客的基础教程
  9. Boolean.getBoolean()和Boolean.parseBoolean()
  10. android反编译工具 win8,Apk Easy Tool(android反编译工具)
  11. python处理考勤数据_python连接中控考勤机分析数据
  12. 阿里云免费SSL证书续费步骤 TOMCAT
  13. 掌握spark 3.0中的查询计划
  14. JavaWeb-狂神系列
  15. 时钟源系统(时统系统)GPTP对自动驾驶的重要性
  16. 跟随Deepmind使用AI玩《星际争霸2》
  17. 生活篇之工资和年终奖的纳税
  18. 计算机专业英语白浩课后答案,在职攻读硕士学位全国联考英语考试词汇速记
  19. 即时通讯整体解决方案
  20. 【Linux】目录结构和硬盘分区

热门文章

  1. android 蓝牙锁应用开发实例(三)蓝牙相关功能实现【第一部分】
  2. Rejecting re-init on previously-failed class java.lang.Class
  3. linux 解压rar文件
  4. BCGControlBar Pro MFC用户界面控件常见问题大全
  5. java socket多人聊天_如何运用Java socket实现多人聊天室功能
  6. flutter可以用 mysql数据库_Flutter 本地数据存储(文件、SharedPreferences 、数据库 sqlite)使用示例...
  7. 关闭CentOS系统自动更新服务 及 关闭yum自动下载更新
  8. springboot医院住院管理系统 计算机毕设源码32182
  9. 未授权访问漏洞-Redis未授权访问漏洞
  10. 个人自媒体如何利用辅助工具引流推广到获客变现