语义匹配关键技术及应用(一)
定义:判断两段文本所包含语义信息是否相同。
1. 语义
a) 如何对文本进行划分
b) 如何表达每个token
今天下雨,我骑车差点摔倒,好在我一把把把把住了。
校长说:校服上除了校徽别别别的,让你们别别别的别别别的你非得别别的
2. 匹配
a) 分类问题:不同文本之间是否相似
b) 回归问题:不同文本之间有多相似
基于语义匹配的NLP任务:
3. Text Clustering
4. Paraphrase Identification
5. Text Ranking
6. Question Answering
7. Question Query
8. Answer Selection
9. Searching
10. Machine Reading Comprehension
11. NL2SQL
12. …
发展时间线
传统方法
基于句法相似性计算
1. Token-based:以单词或者n-gram为最小单位,对文本做token划分。之后利用Jaccard/Dice/Cosine进行相似度计算。
2. Character-based: 以字符为最小划分单位,利用Edit/Hamming距判断单词的相似性,进而判断文本的相似性
3. Hybrid:将文本划分为token,利用模糊匹配计算文本相似性
基于近义词相似性计算
构建近义词:
1. 使用机器学习算法;
2. 领域专家构建
3. 知识库抽取
基于分类学相似性计算
基于统计学的相似性计算
文本中每一个token的重要性不一致,基于对大规模的语料集的统计,得到每个token的权重:
1. Term Frequency
2. Invers Document Frequency
基于统计信息,计算文本相似度:
1. TF-IDF
2. BM25
3. …
传统方法的局限性
1. 语言的多义同义问题:相同的词在不同语境下,可以表达不同的语义,例如“苹果”既表示水果,也表示一家科技公司。同理,相同的语义也可由不同的词表达,例如“的士”、“taxi”都表示出租车。
2. 语言的组合结构问题(词序):相同的词组成的短语或句子,不同的语序可表达不同的语义,例如“深度学习”和“学习深度”。
3. 匹配的非对称问题:语义匹配类任务有时不一定要求语言上的相似,例如网页搜索。也不一定要求语义上的相同,例如Answer Selection任务。
注:部分材料来源于CIKM2019 Tutorial - Synergy of Database Techniques and Machine Learning Models for String Similarity Search and Join.
- 点赞
- 收藏
- 关注作者
评论(0)