深度神经网络的爆发使得机器学习受到了广泛的关注, 而NLP(自然语言处理)又是其中最受关注的部分。ThoughtWorks正在尝试NLP技术的商业化落地,例如对话机器人、针对特定领域的机器翻译等。
基于NLP的重要性和其最近几年的飞速发展, 它成为了人们经常会讨论的一个流行话题。对于专业人士来说, 通常会聊到词向量, LSTM, attention等技术。但是作为一个非NLP专家, 我们要聊些什么呢?或者说我们应该学些什么呢?本文就从应用角度来总结一下自然语言处理能做哪些事, 以及在我眼中NLP有潜力去做哪些事,帮助大家建立对NLP技术初步的理解。
NLP能做哪些事?
人类研究语音助手已有几十年的历史, 在科幻电影中也常有提及,不过直到2011年,苹果发布Siri, 这种神秘的工具才获得了大众的关注。在Siri之后, 涌现出了以Amazon Alexa, Google Assistant, Microsoft Cortana为代表的一大票语音助手。早期的语音助手功能十分有限, 也很少有人使用。经过了这些年的发展, 现在的语音助手已经有了很大的进步, 已经能很好地处理天气查询, 信息检索, 添加日程, 播放音乐等简单任务。此外, 部分语音助手还支持声纹识别, 提升了安全性。如果你最近没有使用过上述的语音助手, 我强烈建议你去试用一下!
尽管NLP在语音助手应用中发挥了重要作用,但仍然不足以支撑这样一个复杂的综合性系统。语音助手基本上使用了下文中提到的所有NLP技术以及很多其他非NLP技术。创建一个完整的语音助手需要大量的资源, 是一个门槛很高的领域。
文本分类就是将非结构化文本数据划分到事先定义好的标签类中, 这是NLP技术的一大分支, 很多其他技术都依赖于它。由于分类任务不同, 标签的定义也不同, 比如在综合用户评论分析中, 标签可以定义为 “负面”, “中性”, “正面”。而在酒店评论分析中就可以把标签定义为”服务好”, “环境好”, “环境差”等。
由于标签体系可以灵活调整, 文本分类被广泛应用到众多领域中, 下面列出一些典型的应用:
命名实体识别的目标是定位文本中出现的预定义分类, 包括人名, 组织名称, 地名, 日期和时间, 数量等等。下面以一个例子来具体说明:
原文:
Jim bought 300 shares of Acme Corp. in 2006.
标注后(括号内为实体类型):
[Jim](Person)bought 300 shares of [AcmeCorp.] (Organization)in [2006](Time).
NER也有应用场景,下面是几个例子:
除了上面说到的几种分类之外, NLP还能做很多厉害的事情,
NLP有希望做哪些事?
上面讲了很多应用案例, 其中大部分已经比较成熟甚至已经投入到了商业应用中。下面再罗列一些我认为目前不是很成熟但是很有潜力的NLP技术:
总结
上面介绍了几种NLP技术和应用场景, 但是NLP技术涉及的范围远不止这些, 将NLP技术与音频处理、图像处理等技术结合, 又会出现诸如视频字幕生成, 图片描述生成等等有趣的应用。可以说只要有人类, 有语言, 就存在NLP应用的可能性。也正是因为NLP技术涉及范围广泛,才吸引了越来越多企业的关注,并在其之上构建各种智能系统,给我们的生活带来了便利。
了解了这些应用,不妨花几分钟思考一下, 对于你目前接触到的业务, NLP技术能给客户带来哪些价值呢?