NLP是人工智能的一个子领域,作为AI产品经理,我们至少要知道NLP是什么,它能做什么事,这样我们就能得到一种办理问题的思维,将碰着的问题和方法连接起来。接下来我从“NLP是什么、能做什么、目前碰着的难题”三个方面来大略先容下NLP。
一.什么是NLP
NLP,中文叫自然措辞处理,大略来说,是一门让打算机理解、剖析以及天生自然措辞的学科,大概的研究过程是:研制出可以表示措辞能力的模型——提出各种方法来不断提高措辞模型的能力——根据措辞模型来设计各种运用系统——不断地完善措辞模型。
NLP理解自然措辞目前有两种处理办法:
1.基于规则来理解自然措辞,即通过制订一些系列的规则来设计一个程序,然后通过这个程序来办理自然措辞问题。输入是规则,输出是程序;
2.基于统计机器学习来理解自然措辞,即用大量的数据通过机器学习算法来演习一个模型,然后通过这个模型来办理自然措辞问题。输入是数据和想要的结果,输出是模型。
接下来大略先容NLP常见的任务或运用。
二.NLP能做什么:1.分词
中文可以分为字、词、短语、句子、段落、文档这几个层面,如果要表达一个意思,很多时候通过一个字是无法表达的一个含义的,至少一个词才能更好表达一个含义,以是一样平常情形因此“词”为基本单位,用“词”组合来表示“短语、、句子、段落、文档”,至于打算机的输入是短语或句子或段落还是文档就要看详细的场景。由于中文不像英文那样词与词之间用空格隔开,打算机无法用区分一个文本有哪些词,以是要进行分词。目前分词常用的方法有两种:
基于规则:Heuristic(启示式)、关键字表基于机器学习/统计方法:HMM(隐马尔科夫模型)、CRF(条件随机场)(注:在这里就不详细先容方法的事理和实现过程了,大家感兴趣,可以自行百度理解)
现状分词这项技能非常成熟了,分词的准确率已经达到了可用的程度,也有很多第三方的库供我们利用,比如jieba,以是一样平常在实际利用中我们会采取“jieba+自定义词典”的办法进行分词。
2.词编码
现在把“我喜好你”这个文本通过分词分成“我”、“喜好”、“你”三个词,此时把这三词作为打算机的输入,打算机是无法理解的,以是我们把这些词转换成打算性能理解的办法,即词编码,现在普遍是将词表示为词向量,来作为机器学习的输入和表示空间。目前有两种表示空间:
(1)离散表示:
A.One-hot表示
假设我们的语料库是:
我喜好你你对我有觉得吗
词典{“我”:1,“喜好”:2,“你”:3,“对“:4,“有”:5,“觉得”:6,“吗”:7} 。一共有七个维度。
以是用One-hot表示:
“我” :[1, 0, 0, 0, 0, 0, 0]
“喜好”:[0, 1, 0, 0, 0, 0, 0]
········
“吗” :[0, 0, 0, 0, 0, 0, 1]
即一个词用一个维度表示
B.bag of word:即将所有词的向量直接加和作为一个文档的向量。
以是“我 喜好 你”就表示为:“[1, 1, 1, 0, 0, 0, 0]”。
C. Bi-gram和N-gram(措辞模型):考虑了词的顺序,用词组合表示一个词向量。
这三种办法背后的思想是:不同的词都代表着不同的维度,即一个“单位”(词或词组合等)为一个维度。
(2)分布式表示:word2vec,表示一个共现矩阵向量。其背后的思想是“一个词可以用其附近的词来表示”。
离散式或分布式的表示空间都有它们各自的优缺陷,感兴趣的读者可以自行查资料理解,在这里岂论述了。这里有一个问题,当语料库越大时,包含的词就越多,那词向量的维度就越大,这样在空间储存和打算量都会指数增大,以是工程师在处理词向量时,一样平常都会进行降维,降维就意味着部分信息会丢失,从而影响终极的效果,以是作为产品经理,跟进项目开拓时,也须要理解工程师降维的合理性。
3.自动文摘
自动文摘是指在原始文本中自动择要出关键的文本或知识。为什么须要自动文摘?有两个紧张的缘故原由:
(1)信息过载,我们须要在大量的文本中抽出最有用、最有代价的文本;
(2)人工择要的本钱非常高。目前自动文摘有两种办理思路:第一种是extractive(抽取式),从原始文本中找到一些关键的句子,组成一篇择要;另一种办法是abstractive(择要式),打算机先理解原始文本的内容,再用自己的意思将其表达出来。自动文摘技能目前在新闻领域利用的最广,在信息过载的时期,用该技能帮助用户用最短的韶光理解最多、最有代价的新闻。此外,如何在非构造的数据中提取构造化的知识也将是问答机器人的一大方向。
4.实体识别
实体识别是指在一个文本中,识别出详细特定类别的实体,例如人名、地名、数值、专有名词等。它在信息检索、自动问答、知识图谱等领域利用的比较多。实体识别的目的便是见告打算机这个词是属于某类实体,有助于识别出用户意图。比如百度的知识图谱:
“周星驰多大了”识别出的实体是“周星驰”(明星实体),关系是“年事”,搜索系统可以知道用户提问的是某个明星的年事,然后结合数据“周星驰 出生韶光 1962年6月22日”以及当前日期来推算出周星驰的年事,并把结果直接把这个结果显示给用户,而不是显示候选答案的链接。
此外,NLP常见的任务还有:主题识别、机器翻译、文本分类、文本天生、情绪剖析、关键字提取、文本相似度等,往后有韶光再为大家做大略先容。
三.NLP目前存在的难点1.措辞不规范,灵巧性高
自然措辞并不规范,虽然可以找一些基本规则,但是自然措辞太灵巧了,同一个意思可以用多种办法来表达,不管是基于规则来理解自然措辞还是通过机器学习来学习数据内在的特色都显得比较困难。
2.错别字
在处理文本时,我们会创造有大量的错别字,怎么样让打算机理解这些错别字想表达的真正含义,也是NLP的一大难点
3.新词
我们处在互联网高速发展的时期,网上每天都会产生大量的新词,我们如何快速地创造这些新词,并让打算机理解也是NLP的难点
4.用词向量来表示词依然存在不敷
上述,我们讲到,我们是通过词向量来让打算机理解词,但是词向量所表示的空间,它是离散,而不是连续,比如表示一些正面的词:好,很好,棒,厉害等,在“好”到“很好”的词向量空间中,你是不能找到一些词,从“好”连续到“很好”,以是它是离散、不连续的,不连续最大的问题便是不可导.打算机是处理可导的函数非常随意马虎,不可导的话,打算量就上来了。
当然现在也有一些算法是打算词向量做了连续近似化,但这肯定伴随着信息的丢失。总之,词向量并不是最好的表示词的办法,须要一种更好的数学措辞来表示词,当然可能我们人类的自然措辞本身便是不连续的,或者人类无法创建出“连续”的自然措辞。
小结:
通过上述的内容,我们已经大概知道了“NLP是什么、能做什么以及目前存在的难题”。作为人工智能产品经理,理解NLP技能能够提高我们自己的技能理解力,在理解行业需求、推进项目开展都有非常大的帮助,实在这可以让我们得到是一种连接能力,将需求与工程师连接起来,将问题与办理方案连接起来。虽然NLP等人工智能技能存在很多不敷,但我们须要调度好自己的心态,人工智能运用化才刚刚开始,一定是不足完美的,不要成为批驳者,而是成为人工智能时期的推进者。
作者:在产品汪的路上
本文由 @在产品汪的路上 授权发布于大家都是产品经理,未经作者容许,禁止转载。
题图来自PEXELS,基于CC0协议