从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(4)

本文介绍了如何使用TF-IDF模型度量新闻标题的余弦相似度,以辨别新闻标题的关系。通过分析不同关系标题的余弦相似度分布,提出了一种升级版的猜测算法,当相似度小于0.5时判断为'unrelated',大于0.5时判断为'agreed',在训练集上实现了77.4%的准确率,较基线模型有显著提升。
摘要由CSDN通过智能技术生成

TF-IDF向量距离度量和数据分析

我们完成了新闻标题文档的TF-IDF向量空间模型,现在我们来看看它对于我们的任务目标(辨别新闻标题A和B的关系)有什么帮助。

用TF-IDF模型度量新闻标题A和B的距离

我们把之前用 pickle 持久化保存的分词结果加载进来,继续下面的内容。

import pandas as pd 
import pickle 
 
pkl_file_rb = open(r'./save_file', 'rb') 
train =pickle.load(pkl_file_rb) 

回顾一下上次所讲,使用 sklearn 包中的 TfidfVectorizer 函数训练TF-IDF模型。

from sklearn.feature_extraction.text import TfidfVectorizer 
 
corpus = pd.concat([train . title1_tokenized, train . title2_tokenized]) 
corpus = [c for c in corpus] 
 
tfidf_model = TfidfVectorizer().fit(corpus) 
matrix1= tfidf_model.transform(train['title1_tokenized']) 
matrix2= tfidf_model.transform(train['title2_tokenized']) 
matrix1.shape, matrix2.shape 
((320552, 67243), (320552, 67243))

现在我们通过计算向量距离的方法,度量新闻标题A和B的距离。向量之间距离算法和相似度计算方法有非常多,这里我们用常见的余弦相似度计算法(cosine similarity measure):

import numpy as np 
 
def cos_sim(a, b): 
    a_norm = np.linalg.norm(a) 
    b_norm = np.linalg.norm(b) 
    cos = np.dot(a,b)/(a_norm 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值