NLP 主要解决的问题

参考文章

比较成熟的

文本分类
命名实体识别(NER)

发展中

阅读理解
文本摘要
文本生成…

NLP的数值化和计算

参考文章

数值化

如何把人话(自然语言)转换为数值呢?
首先需要注意一点:说到数值,大家可能本能的想到int, double, float……
但如果将一个语言要素对应成一个标量的话,太容易出现两个原本相差甚远的概念经过简单运算相等的情况。
假设“苹果“被转化为2,而”香蕉“被转化为4,难道说两个苹果等于一个香蕉吗?
因此,一般在处理时会将自然语言的单位语素转化成n维向量。
只要转化方式合理,规避向量之间因为简单运算而引起歧义的情况还是比较容易的。
此处需要一个步骤,把原始文字形式的训练数据转化为数值形式。为了做到这一点,我们需要构建一个向量空间模型(Vector Space Model/VSM)。
VSM负责将一个个自然语言文档转化为一个个向量。说到具体的转化方法,我们之后再介绍。

把自然语言文本转换为向量

参考文档

向量空间模型

假设这个训练集中包含N个文档,你要把这N个文档转换成N个与之一一对应的向量。再假设每个向量包含M维。
那么最终,当全部转换完之后,你把所有N个M维向量放在一起,就构成了一个NxM的矩阵(Matrix)。
这个矩阵就是你的训练集所构建的向量空间模型(Vector Space Model,VSM)
向量空间模型的构建方式大致可以分为两类:

  1. 非深度学习的手工特征工程方法,由特征提取的人员手工设置一些转换规则,将文本转换为向量;
  2. 基于深度学习的文本数据表征方法,简答说就是专门训练一个深度学习模型,对应的输入是自然语言文本,而输出是一个表示该文本的向量。

构建向量空间模型

基于n-gram的文档特征提取

当n2时的n-gram又叫做bigram。n1时叫unigram,n==3时叫trigram。
假设我们的N个文档中有一个是下面这个样子(为简单起见,假设整个文档就一句话):
张继科在比赛中露出了碎花内裤。
那么我们首先把这个文档切分成unigram:
{张,继,科,在,比,赛,中,露,出,了,碎,花,内,裤}
然后再将其切分成bigram:
{张继,继科,科在,在比,比赛,赛中,中露,露出,出了,了碎,碎花,花内,内裤}
注意到bigram是怎么切分的没有?对了,就是取长度为2的窗口,从头到尾连续切分文档,每次后移长度为1。
上面切分出来的这些字段,我们将其称为Term。我们将unigram和bigram的所有Term合并起来,就是基于bigram的全部Term,总共27个:
{张,继,科,在,比,赛,中,露,出,了,碎,花,内,裤,张继,继科,科在,在比,比赛,赛中,中露,露出,出了,了碎,碎花,花内,内裤}。
这是一个文档,所有文档,都按如此方法切分成若干的Term。
NOTE:如果是基于trigram的,则取全部unigram,bigram和trigram的Term的集合。

针对Term计算TF-IDF

TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
N个文档,设其中第i个文档的Term为ci个(i 取值区间为[1, N])。那么这N个文档分别有:c1,c2…cn个Term。
这些Term中肯定有些是重复的。我们对所有这些Term做一个去重操作,最后得出的uni-Term的个数就是M。
换言之,在这N个文档中,基于bigram抽取的文本特征共有M个。
那么针对具体的一个文档,我们就可以构建一个M维的向量,其中每一维对应这M个Term中的一个。
每一个维度的值,都是一个实数(一般在计算机处理中是float或者double类型)。
这个实数值,通常的情况下,取这一维度所对应Term在全部训练文档中的TF-IDF。

计算

自然语言已经转化为了数值形式,那么下一步,究竟进行怎样的计算呢?
这就要看你具体要做什么事情了。在自然语言理解(NLU)中,负责来进行具体计算的那个部分,叫做:模型!

自然语言处理(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. freemarker的${!}
  2. fedora15换主题
  3. android与html注册登录,Android登录注册源码
  4. A Complete Example
  5. 概率论在数据挖掘_为什么概率论在数据科学中很重要
  6. 安卓App报错:android.os.FileUriExposedException
  7. torch版ResNet50(带有多输出)转c++ tensorrt
  8. Oracle修改数据时提示“record is locked by another user”的解决办法
  9. opencv 不同边缘检测算子效果比较
  10. 车牌号识别易语言代码
  11. Linux---如何创建文本文件
  12. 阿里云轻量应用服务器从购买到配置环境以及部署javaweb项目过程
  13. 怎么用PS为一寸证件照更换底色背景色
  14. MIT数字经济研究:建平台要以“网络效应”为目标
  15. python怎么画名字_python 画中国地图怎么把省份名字加上-
  16. nginx实现301域名跳转
  17. t检验比较两种算法的性能
  18. python 函数修饰器 父类_Python函数嵌套、回调函数、闭包、装饰器和类
  19. Java NIO Selector , SelectionKey , SocketChannel , ServerSocketChannel
  20. 解决studio 3T时间到期方法

热门文章

  1. 2015 UESTC 数据结构专题D题 秋实大哥与战争 变化版本的线段树,合并区间,单点查询...
  2. C++ 堆结构(数组实现)
  3. Real-Time Rendering 4th 译文《九 基于物理渲染(中)》
  4. Linux|VMwareTools安装按钮灰色解决办法
  5. 程序员的三行代码情书!看完想找个程序员男朋友!
  6. unity制作爆炸以及受到爆炸波及的油桶(脚本控制)
  7. 【数据库】测试题二 关系代数
  8. PPP模式或成光伏业的又一切入口
  9. 一步步学习电子维修 二极管挡维修法
  10. 2021年数维杯数学建模C题运动会优化比赛模式探索求解全过程文档及程序