白话自然语言处理(1)之概述

这是一个瞎扯淡自然语言处理的系列,讲讲自己的经历以及自然语言处理的基本知识,或片面或错误,纯属扯淡。

我和自然语言处理的缘分,开始于17年吧,那时候马上要毕业了,发现自己啥也不会,刚好有个师兄在大米做聊天机器人,可以内推。于是开始抱佛脚,一开始觉得还挺有意思的,反正自己平时也喜欢看yy小说,我想这大概是有益处的。

大概学习一个新领域,总是会去先读一篇概述,理解这个领域是要解决什么问题,目前进展如何,相关的算法有哪些,balala…一通名词下来,似懂非懂。

什么是自然语言处理
一言以蔽之,通过计算机处理人类语言表达的信息,简直说了一句废话。这里“处理”可以分为以下两个方面。

一是理解(自然语言理解,NLU),比如你对机器说“今天天气如何?”,智障机会回答,“你说的啥?”,流水机会说“雨,5度”,智能机会说“今天下雨,有点冷,注意保暖哦,亲!”, 可以看出不同机器对你的问题理解不一样;

另一是准确表达(自然语言生成,NLG),自然语言处理的终极追求就是能够发明一台表达上能够伪装为人类的机器。上面的流水机通过规则生成答案,非常刻板生硬,金属质感十足,智慧机则不然很暖心哦。我时常幻想能够训练一个妹子聊天机器人,说话可棉可柔可刚可直,陪伴钢铁宅男们度余生,画面多美啊,多美!

自然语言处理进展
自然语言处理被各路大牛认为是人工智能领域的璀璨明珠,高高在上,但凡有点追求的从业者都想跪舔一二。从计算机发明伊始,就有大牛开始研究了。那时候冷战,各种密码,大家为了破译敌方密码也是拼了老命了。

经历了快半个多世纪的发展,自然语言处理的相关技术已经有了长足的发展。从知识库、统计方法,再到现在流行的基于深度学习的方法。

知识库的逻辑,可以简单理解为,把人类一切语言都梳理一下,形成词典,形成词语之间的关系,形成一些推理规则,然后一切问题就迎刃而解,老专家们为此累白了头。

统计方法,我们不要什么知识库,梳理起来太难了,门槛太高,我们就从统计或者概率的角度考虑这个问题,比如“大米”普通老百姓以前认为它是一种粮食,那它就是粮食;但是最近的文本中都指向某手机,那就是手机,多么简单。于是自然语言处理迎来一波小高潮。

深度学习,啥也不说了,这年头,如果你从事的是人工智能的相关行业,不会用深度学习解决问题,都不好意思出来吹牛逼。在大数据和大规模计算的背景下,深度学习这碗鸡汤真香。

虽然我们发展出了这么多方法,自然语言处理问题都解决了么?答案是没有,我们现在能处理的还是冰山一角,原因嘛?至少包括三点。

语言表达的多样性,一个词在不同场景下意思一样,相同场景表达方式有不一样。

语言表达具有上下文依赖,如果脱离背景,有的话很难理解,比如有人说“啊”,什么意思?他内心压抑,可以“啊”;他开心也可以“啊”;他表示不理解,也可以“啊”。之前看一本小说,一个人话很少,基本只用一个字来回答别人,就是“嗯”,语调,快慢,表情排列组合,就问你难不难?

机器语言和自然语言的差异,机器语言说白来就是一堆数,可是自然语言是符号,怎么有效地翻译成数呢?

自然语言处理,是带刺的玫瑰啊,远远看一看,其实挺好。

自然语言处理方法
自然语言处理算法可以大概按以下几个方向分类(参考了早上看到的一个内部分享文档,不展开了,后续会慢慢叨叨叨。)

文本表示,即怎么把文本表示成数字。常用方法有,one-hot表示,词袋模型,简单理解为给每个词语一个编号,有点像监狱里管理囚犯,以后“你”就不是你,而是“007”;tf-idf加入了权重信息,在文本中有的词语重要,有的不重要,自然权重不一样,比如母亲节,大家对妈妈说,“妈妈,我非常爱你”,这里面可能“非常”一词只是锦上添花,没那么重要。最近比较流行的是分布式表示,把词语映射成一个向量,你可以想象在三维空间上,每一个词语都有一个属于自己的位置,如天上的星星。
文本匹配,包括简单的字符串匹配还有语义相似度计算,比如你买了条裙子,钢铁直男会说“这得花不少钱吧”,还会说“价格铁定不便宜”,都是一个意思,对机器而言要理解这是一个意思,就得先表示一番,然后计算相似性。算法有KMP、正则、字典树、编辑距离、深度文本匹配等等。
文本分类,判断文本属于哪个类别,不同场景下对类别定义不一样。方法很多很多,当年做了一个汇总,竟然列举了十几种,包括NB、SVM、LR、fasttext、cnn、rnn…。说起文本分类,满满都是泪,以后再详细展开。
文本标注,识别文本中每个词语的标签,可以认为是分类问题的升级版,但是更复杂,原因是不同标签之间相互依赖,有时候是局部的依赖,有时候需要考虑长程的信息。序列标注任务的算法包括,隐马尔可夫HMM、条件随机场CRF、cnn、rnn…。很少用,所以不熟,前段时间面试老有人问这些问题,我说不知道,然后就没有然后了。
文本生成,生成文章。白居易说文章本天成,妙手偶得之,如果开成千上万台机器,每天去人类语言构成的状态空间中去寻找,会不会找到更多的好文章呢?文本生成任务太难了,你想想你写高考作文的时候啥感觉?连人都觉得难的事情,机器更是难上难。之前面试过一家专门做文本生成的公司,目标很好,但是现实很残酷,目前的业务还是帮别人改写文章,来规避平台的规则,这就是黑产啊!文本生成算法,规则模版、n-gram、语言模型、seq2seq…如果你觉的下半辈子无聊,可以尝试探索一二。
总结
一趟学来,头晕脑胀脚抽筋,大概是要服用万通胫骨片了。这是小时候的电视广告,有一段时间是村里的老头老太太当群演,笑死我了。

大概掌握了自然语言处理的概念后,我大胆地把简历交给了师兄,然后师兄说他老板看了我简历后,只是简单地回答了“嗯”。

师兄告诉我,小伙子还要再积累积累,先去别的公司碰碰运气,我回答“哦”。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忘记开挂的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值