一、概要
Quora Question Pairs是kaggle上一个关于文本匹配的问题,主要目的是判断两个问题是不是同一个意思。
二、数据简介
数据结构相对比较简单,如下:
"id","qid1","qid2","question1","question2","is_duplicate"
共有6个字段,比较有用的便是question字段代表一个序列文本,is_duplicate代表两个文本是否为相同的意思。
三、数据预处理
作为文本数据,到手之后常用操作就是预处理,笔者这里将数据进行简单清洗,大致分为以下步骤:
1、将文本转为小写
2、对于文本中一些“不规范”表述,统一为一种形式,如:1000g——>1kg等
3、词干提取
预处理这里仔细考虑可以做出几层,比如:提取名词性短语、翻译模型、去除共现词等等,但出于时间考虑,这里只是简单的做了一层的处理。
四、特征工程
对于传统机器学习模型,重头戏就来自特征工程,这里将本项目中的特征工程分为以下几种:
1、统计特征
对于文本的统计特征,项目中提取了以下几种:
(1)共现词
共现词代表同一个词在两个文本同时出现,这是一个比较形象的特征,同时出现的词越多代表相似度越高,这里如果单纯使用名词性的词语可能效果会更好,因为这种问题形式的文本,其核心内容都会在名词短语中体现出来,具体计算方式如下:
(共现词的在q1中出现的次数+共现词在q2中出现的次数)/文本总次数
(2)加权共现词
加权其实就是用文本的TF