问题描述:
语句匹配是自然语言处理的最基本任务之一,是自动问答,聊天机器人,信息检索,机器翻译等各种自然语言处理任务基础。语句匹配问题的复杂性在于,匹配的要求不同,对匹配的定义也不尽相同,比如经典的语句复述判别问题,需要判断两句话是否仅仅是表述方式不同,但意义相同,而在Quora的的的问句匹配语料发布后,大量在该语料库上开展的语句匹配研究工作都沿袭语料发布者的定义,称为语义等价判别,语义等价判定,等价,而不直接判断两个语句是否表达相同的语义,所以其核心是语句的意图匹配。由于来源于真实问答语料库,该任务更加接近于智能客服等自然语言处理任务的实际需求。
输入:一个语句对
输出:表明该语句对是否表达相同或者相似意图的二值标签(0或1)
示例:
样例1
输入:一般几天能通过审核\ t一般审核通过要多久
输出:1
结构图:
1. 特征工程
这部分统计了以下几类特征:
- 基于统计量的特征:q1和q2包含的token个数,unique token的比率,共享token的比率,以及上述特征做四则运算生成新的特征。
- 基于VSM的特征:CountVectorizer和TfidfVectorizer对q1和q2进行向量化,计算q1和q2特征的cosine,L1,L2,Linf距离。
- 基于fuzzywuzzy的特征:字符串模糊匹配生成特征。
- 基于词向量的特征:按idf对词向量进行加权得到句子的表示,计算两个句子向量之间的cosine,L1,L2,Linf距离,以及word mover distance。
- 基于主题模型的特征:使用LDA、LSI、NMF对CountVectorizer/TfidfVectorizer得到的向量进行降维,然后计算cosine,L1,L2,Linf距离,从10维到150维。
- 基于共享前缀后缀的特征:不考虑权重/idf权重/位置倒数权重计算前缀后缀匹配度。
上述特征分别从字和词两个粒度进行了统计,生成了很多冗余特征,用lgbm计算特征重要程度,保留最重要的100个特征。
2. 模型选择