尽管NLP路上任重而道远,但仍然有迹可循,很多时候我们可以将具体的NLP问题拆分为一些基础任务的组合,所以现在我们来介绍深度学习中常见的任务。所谓基础任务,就是完成一些上层的、复杂的任务所必须经过的步骤,因此把这些步骤分别提取出来,作为单独的任务来研究。这些任务也是NLP中被研究已久、相对成熟的部分。这些任务包括(但不限于)以下任务:

1、中文分词。中文跟英文的明显差别是,英文行文以空格作为天然的分隔符,基本组成单位是一个个词,而中文词语之间没有分隔,基本组成单位是字。为了让模型更好地分析中文,中文NLP任务第一步通常要做的是分词,如“结婚的和尚未结婚的”划分为“结婚/的/和/尚未/结婚/的”。事实上,分词这一操作也不限于中文,在英文中如果要做短语挖掘,那就类似中文分词的任务了。

2、词性标注。词性标注是分词后的一个常用操作,其主要目的无外乎有两个:一是根据词性对词语进行过滤,如关键词提取任务中可以只保留动词和名词,从而减少候选词语;二是根据词性对词语进行简单的消歧,比如“一打啤酒”和“打篮球”中的“打”词性不同,词义也不同。

3、词库构建。众所周知,由于互联网的发展,各种“网络热词”层出不穷,显然它们多数都不在已有的词库中,如何自动地发现这些新词并加入到词库中,就是词库构建的工作了。此外,落实到具体领域,如医学、法律等,会有很多该领域的、超出词库内的词语,如何自动地发现这些词语,也属于词库构建的范围。

4、句法分析。句法分析是传统NLP方法的一个基本步骤,它将句子描述为一棵句法依存树,从而可以发现词语之间的依存关键,如图所示。可见,如果能够完成正确的句法分析,对后续的NLP任务是很有帮助的。然而真实场景的句子是很不规范的,句法分析的难度很大,准确率并不高,因此随着深度学习的流行,目前NLP模型基本上已经远离了句法分析这一步。

5、命名实体识别。命名实体识别是指发现句子中的“实体名词”,比如人名、地名、机构名、时间词等,它跟词性标注类似,可以看成是更细颗粒度的词语分词。比如“广州泰迪智能科技有限公司是一家专业从事基于云计算技术的大数据挖掘应用研发、咨询和培训服务的高科技企业。”,我们要找出“广州泰迪智能科技有限公司”这个实体来,它的难度有两点:1)
分词的时候,由于这个词并不在词库中,因此可能把这个词分开为“广州/泰迪/智能/科技/有限公司”,因此需要模型把它们整合起来作为一个整体看;2)
识别出这个词后,还需要将这个词归类为“公司名”(或者“机构名”)。落实到具体领域,命名实体识别也没有被很好地解决。

6、关键词抽取。关键词抽取是指在句子中抽取出若干个能代表句子大意的词语,或者是对句子中的词语进行重要性排序。这个任务也被研究已久,经典的算法有TF-IDF和TextRank等。近年来,随着词向量的发展,由于词向量能更好地捕捉语义,因此不少基于词向量的方法也被提出。

7、语言模型。语言模型是通过前$n-1$个词来预测第$n$个词的模型,也就是建立概率分布$p(w_{n}|w_1,\dots,w_{n-1})$,这在很多任务上都可以用到,包括分词、语音识别、OCR等等。有了这个模型后,我们可以评估一段字符串的组合能成为一个自然语言句子的概率,也就是说,给一个“句子”是否通顺、是否合理进行打分,因为这个特点,所以我们用语言模型来做辅助解码,以便生成更通顺、更自然的句子。

标签: 分词, 关键词, 语言模型

添加新评论