网站主体必须要与域名注册人相同,服饰网站建设模板,南宁网站建设速成培训,小米开发者模式之前写了一篇关于关键词词库构建的文章#xff0c;没想到反响还不错#xff0c;最近有空把接下来的两篇补完#xff0c;也继续使用物流关键词词库举例#xff0c;本篇文章承接关键词词库构建并以其为基础#xff0c;将计算各关键词的 TF-IDF 权值#xff0c;TF-IDF 权值主… 之前写了一篇关于关键词词库构建的文章没想到反响还不错最近有空把接下来的两篇补完也继续使用物流关键词词库举例本篇文章承接关键词词库构建并以其为基础将计算各关键词的 TF-IDF 权值TF-IDF 权值主要用于表达各关键词的重要程度最后展示一个实际应用的例子—构建物流评价体系并结合TF-IDF 关键词权值希望能给大家启发。 目录
1 TF-IDF 关键词权值计算
1.1 为什么使用 TF-IDF
1.2 TF-IDF 介绍
1.3 TF-IDF 关键词权值计算
① 语料
② TF-IDF 计算
③ xx 关键词匹配
2 构建XX评价体系
2.1 构建物流评价体系
2.2 TF-IDF 权值结合评价体系 代码地址nlp_yinyu 1 TF-IDF 关键词权值计算
1.1 为什么使用 TF-IDF
上一篇文章有统计关键词的词频数简单来说某语料中某关键词的词频数越大那么该关键词在该语料中的重要程度越大这是比较容易理解的。
那么有没有一种更加直观并且可量化的方式表示某关键词在语料中的重要程度呢那这就是本篇文章介绍的 TF-IDF它将计算出一个数值来表示关键词对于预料的重要程度数值越大重要程度越大。
1.2 TF-IDF 介绍
TF-IDFTerm Frequency-Inverse Document Frequency是一种常用的文本特征提取方法用于评估一个词语对于一个文档集合中的某个文档的重要程度。
TFTerm Frequency表示某个词在文档中出现的频率即词频TF值越大表示该词在文档中的重要性越高。
IDFInverse Document Frequency表示逆文档频率它衡量词语在文档集合中的普遍重要性IDF值越大表示该词对于区分不同文档的能力越强。
TF-IDF的计算公式为 TF-IDF(t,d) TF(t,d) * IDF(t)
其中t表示词语d表示文档。TF(t,d)表示词语t在文档d中的词频出现的次数IDF(t)表示词语t的逆文档频率。
1.3 TF-IDF 关键词权值计算
① 语料
语料还是以之前爬取的京东网站上的 5000 条评论数据为例可以在文章顶部的代码仓库中下载 ② TF-IDF 计算
和分词步骤类似主要分为以下三步
引入语料 excel 数据加载自定义词典权值计算生成【TF-IDF关键词权值计算表.xlsx】文件
代码如下
import jieba.analyse
import pandas as pd
from base_handle import BaseHandle # 引入工具类baseHandle BaseHandle() #实例化
2.1 word2vec 拓展关键词词库
def words_weight(url):TF-IDF关键词权值计算text baseHandle.read_col_merge_file(url) #引入语料 excel 数据diy_dict(baseHandle.get_file_abspath(物流词汇大全.txt)) #引入自定义词典jieba.load_userdict(diy_dict) #加载自定义字典# 第一个参数待提取关键词的文本# 第二个参数返回关键词的数量重要性从高到低排序!!# 第三个参数是否同时返回每个关键词的权重# 第四个参数词性过滤为空表示不过滤若提供则仅返回符合词性要求的关键词keywords_list jieba.analyse.extract_tags(text, topKNone, withWeightTrue, allowPOS())#print(keywords_list)#以列表形式df pd.DataFrame(keywords_list,columns[keyword, weight])# list转dataframedf.to_excel(TF-IDF关键词权值计算表.xlsx, indexFalse)# 保存到本地excel#jieba自己本来就拥有的一个比较大众化的语料库。因此对于相对来说比较大众化的文本数据处理jieba自带的TF-IDF语料库可以完美契合我们的诉求。if __name__ __main__:words_weight(baseHandle.get_file_abspath(语料库_京东_5000条评论.xlsx))
最终输出【TF-IDF关键词权值计算表.xlsx】文件如下 可以看到这是统计了所有词汇的权值结果足足有7424个单词那么接下来就需要进行筛选匹配。
③ xx 关键词匹配
以物流关键词词库为例然后我们在上一篇文章中统计出来的物流关键词词库就派上用场了
class BaseHandle(object):def __init__(self):# 物流关键词词库目前30个物流关键词self.logistics_list [京东, 新鲜, 包装, 物流, 很快, 快递, 收到, 速度, 送货, 推荐,小哥, 服务, 发货, 配送, 送到, 到货, 第二天, 冷链, 完好, 送货上门# 使用word2vec加的关键词 严谨,保障, 效率, 方便快捷, 客服, 省心, 快捷, 严实]主要分为以下三步
读取TF-IDF关键词权值计算表遍历匹配生成【物流关键词词库权值计算表.xlsx】文件
代码如下
import jieba.analyse
import pandas as pd
from base_handle import BaseHandle # 引入工具类baseHandle BaseHandle() #实例化def words_ididf_match(keywords_list):关键词批量匹配权重df pd.read_excel(TF-IDF关键词权值计算表.xlsx, sheet_nameSheet1)b1 []b2 []for i in range(len(df)):keyword df.loc[i,keyword]if any(word if word keyword else False for word in keywords_list): #判断列表(list)内一个或多个元素是否与关键词相同a1 df.loc[i,keyword]a2 df.loc[i,weight]b1.append(a1)b2.append(a2)else:continuef1 pd.DataFrame(columns[关键词, 权重])f1[关键词] b1f1[权重] b2f1.to_excel(物流关键词词库权值计算表.xlsx, indexFalse)# 保存到本地excelif __name__ __main__:words_ididf_match(baseHandle.logistics_list)
最终输出【物流关键词词库权值计算表.xlsx】文件如下 如此一来可以看到物流关键词词库中各关键词的权重了各关键词对于语料的重要程度也就很直观了 2 构建XX评价体系
2.1 构建物流评价体系
以物流为例前文已经存在物流关键词词库和 TF-IDF 权值数据了那么我们该如何利用呢在此我提供一个思路可利用这些数据来服务一个评价体系分为几个维度各维度下分几个指标或者直接简单地分为几个维度即可本文以此为例。
构建评价体系的方法见仁见智可以说是文献统计问卷统计等等我将物流评价体系分为六大维度货物完好度、物流响应能力、人员沟通质量、误差处理、物流服务费用和信息质量。
然后将物流关键词词库中的关键词匹配到这几个维度下这就需要人工进行操作了如下
维度关键词货物完好度京东新鲜包装配送冷链到货完好严实物流响应能力快递物流送货收到很快速度发货送到第二天快捷人员沟通质量小哥服务客服误差处理保障物流服务费用方便快捷严谨信息质量推荐省心效率
我简单地归类了下不一定准确算是举个例子~
2.2 TF-IDF 权值结合评价体系
接下来就是利用 TF-IDF 权值数据了将每个关键词的权值标上去如下图 如此可以清晰地看到各维度的重要程度而且由于它提供的是量化数据所以也会显得比较可靠。
为了显得研究更加丰富下一篇文章将结合情感分析进行统计