1. 判断句子的相似度:
独热编码可以将单词向量化,而如果能够做到句子的向量化,就可以通过判断两个向量的余弦,来评估相似度:余弦越接近1,越相近,相反接近0则相背离
很容易想到,可以将独热编码后的每个单词的向量做为一个元素,去组成句子从而完成句子的向量化,但是问题在于,繁复的编码会造成存储空间的要求大,在一定程度上会影响性能。
我们考虑将独热编码改为数字编码,如此一来,我们可以成功地将语句进行一个不太耗费存储空间的编码和映射。但对于不同的语句,显然可以看出,他们的转换标准不统一,需要将他们映射到同一维度上才可以比较。
我们认为,当一个单词在一句话中反复出现多次时,对于这个句子,这个词可能比较重要。那么,当两个句子的关键词,也就是重复次数多的词都比较一致时,就可以大致判定两个句子语义近似。
如果一个字或者单词在某个语句或者文章中出现的频率高,而在其他文章中很少出现,就可以认为这个字或者单词对该语句或者文章很重要,也可以说这个字或者单词具有很好的区分能力,反之则无关紧要。
TF:(词频)一个词在一句话中出现的频率
TF=某词出现次数/总词汇数
IDF:逆向文件频率,衡量词语在整个语料库中普遍程度的指标
如果在整个语料库中包含某个单词的文章越少,就说明该单词在整个语料库中具有很好的区分能力,这个单词的IDF指标就越大。
IDF=Log(语料库中的文章总数/1+出现该单词的文章数)
最终,TF-IDF的值就是TF*IDF
我们可以利用TF-IDF算法与余弦相似度相结合计算出文本相似度,帮助优化算法。
语义理解
- 单向预测:一句话中mask掉一部分然后从前向后或是从后向前进行预测
- 双向预测:为了更完整地理解语句的予以,把从前向后和从后向前两个预测拼接到一起
- 上下文预测:【全向预测】--Transformer 模型-核心为聚焦机制,对于一个语句可以同时启用多个聚焦点,不必局限于是从前向后还是从后向前
BERT: pre-training of deep bidirectional transformers for language understanding【联合调节所有层中的上下文来预先训练深度双向表示】 - 预训练:
特征分析 - 数据预处理:解决不属于同一量纲、信息冗余、等性特征不能直接使用、存在缺失、信息利用率低等问题
- 特征选择:
考虑特征是否发散:如果一个特征不发散-比如说方差接近于0,那么这个样本在这个特征上基本没有差异,所以这个特征对样本的区分也没有什么用
特征与目标的相关性:与目标相关性高的特征,应当优先选择 - 特征选择的方法:
过滤法filter:按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。
包装发wrapper:根据目标函数-通常是预测效果评分,每次选择若干特征,或者排除若干特征。
潜入发embedded:先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。 - 降维
由于特征矩阵可能过大,导致计算量大,训练时间长的问题,因此降低特征矩阵维度也是必不可少的。常见的降维方法:主成分分析法(PCA)和线性判别分析(LDA)。
PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PCA是为了让映射后的样本具有最大的发散性;而LDA是为了让映射后的样本有最好的分类性能。所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。