进入AI领域做产品 —— 我的自学之路(NLP)
语音和文字处理 —— 自然语言处理 NLP
自然语言处理目前是限制AI发展中众多限制条件里的“关键条件”,一旦这一“关键条件”突破,人类就能真真切切的感受到AI的智能化,同时人机的交互方式也将改写。
所以除了计算机视觉之外,对语言这块最好也要有一定的认知。
概念
是理解和处理文字的过程,相当于人的大脑。
流程
理解:
- 文本/语义理解 NLU。
处理: - 对话状态维护 DST;
- 动作候选排序 POLICY。
应用: - 语言生成 NLG。
瓶颈
自然语言处理的“发展趋势”是能理解目标说的话的意义。以下的“限制条件”构成了瓶颈,相对于计算机视觉来说,自然语言处理距离突破“限制条件”似乎更为接近了。
语言本身的难度限制:
- 语言歧义性;
- 语言多样性;
- 语言多变性;
- 语境复杂性。
数据质量限制:
- 错字;
- 多字/少字;
- 别称;
- 不连贯;
- 噪音。
知识依赖。
实现
规则方法:
- 上下文无关的语法分析,主谓宾/动状补。
统计法:
- N-GRAM语言模型-离散 → NLPM神经概率语言模型-连续 → WORD EMBEDDING词嵌入 → 词语相似度、关系、映射 → 句子表示。
深度学习:
- RNN:循环神经网络,把句子看做由词语组成的序列,循环计算;
- CNN:卷积神经网络,把句子看做自底向上的组成式结构,池化。
文本相似度:
-
文本距离:
- 指的是两个文本之间的文本相似度;
- 与文本相似度呈负相关;
- 距离小离得近,相似度就高;离得远则相似度就低。
-
欧氏距离:
- 适用场景:编码检测等类似场景,两串编码必须完全一致才能过检;
- 不适用场景:对位置和顺序非常敏感,语义相同的句子往往完全不能匹配。
-
曼哈顿距离:
- 同欧氏距离,公式把平方换成了绝对值,并拿掉了根号。
-
编辑距离:
- 将文本A编辑成B需要的最少变动次数,每次只能修改一个字;
- 适用场景:编辑距离算出来很小的情况,此时文本相似度很高,算法的精确率很高;
- 不适用场景:召回率低,一些语义相同的句子可能距离非常大导致完全不匹配。
-
杰卡德相似度:
- 文本A与文本B中交集的字数除以并集的字数,与文本的位置顺序无关;
-
适用场景:
- 对文本顺序不敏感的文本,可以很好兼容;
- 长文本查重。
-
不适用场景:
- 重复字符很多的文本,语义大致一样但结构差距很大,往往会完全匹配,这时是不符合需求的;
- 对文字顺序很敏感的场景。
-
余弦相似度:
- 适用场景:和杰卡德的思路类似,但是余弦考虑了文本频次;
- 不适用场景:向量之间方向相同,大小不同的情况。
-
JARO相似度:
- 关键参数,两个字符串相互匹配的字符数量,两个字符串长度,换位数量;
- 适用场景:
- 对位置、顺序敏感的文本;
- 业务场景下需要考虑文本位置偏移、顺序变换的影响,既不希望位置或顺序变了相似度却保持不变,又不希望直接把相似度变为0。
- 不适用场景:此方法是比较综合的算法。
分类/聚类 —— TF - IDF:
- 一篇文章中每个词的重要性大小不一,而那些在某类文章中频繁出现,但在整个语料库中较少出现的词,通常被视为更能表征文章类别,重要性更高;
- 词频:某个词出现的频率越高,重要性越高;
- 逆向文档频率:包含某词的文档数越多,该词的通用性越高,重要性越低;
- 词频 X 逆向文档频率:可以理解为权重,高频词如果通用性高,则重要性低,就要降低权重;低频词通用性低,则重要性高,要加权。
应用场景
句法语义分析:
- 对于给定的句子分词,词性标记。
- 信息抽取;
- 文本挖掘;
机器翻译:
- 统计机器翻译SMT;
- 神经网络机器翻译NMT;
- 注意力机制。
信息检索;
语言生成:
- 天气预报;
- 问答系统;
- 对话系统。