文本相似性热度统计(python版)
0. 写在前面
节后第一篇,疫情还没结束,黎明前的黑暗,中国加油,武汉加油,看了很多报道,发现只有中国人才会帮助中国人,谁说中国人一盘散沙?也许是年龄大了,看到全国各地的医务人员源源不断的告别家人去支援湖北,看到医务人员、肺炎病人的故事,总会忍不住落泪,中国加油,中国人加油!
1. 场景描述
背景不写了,只谈技术,做的是文本相似性统计,因需要从文本描述性信息中分析同类信息,以便后续重点关注,数据量比较大,大概20多万,人工效率低,需要算法来实现。
根据需求要从不同维度进行统计:
(1)分组不分句热度统计(根据某列首先进行分组,然后再对描述类列进行相似性统计);
(2)分组分句热度统计(根据某列首先进行分组,然后对描述类列按照标点符号进行拆分,然后再对这些句进行热度统计);
(3)整句及分句热度统计;(对描述类列/按标点符号进行分句,进行热度统计)
(4)热词统计(对描述类类进行热词统计,反馈改方式做不不大)
2. 解决方案
在网上以及和同事都验证了很多不同实现方案,具体过程就不说了,对比下来,jieba+gensim效果最好。
算法实现介绍:
(1)输入文件是excel,数据大概20多万,首先通过pandas获取excel信息,通过jieba分词进行处理,jieba分词要首先自定义词典以及排除信息,这样效果会差异很大,然后形成一个二维数组。
(2)使用gensim 中的corpora模块,将分词形成后的二维数组生成词典
(3)将二维数组通过doc2bow稀疏向量,形成语料库
(4)刚开始使用TF模型算法,后来更改为:LsiModel模型算法,将语料库计算出Tfidf值。
(5)获取词典token2id的特征数
(6)计算稀疏矩阵相似度,建立一个索引
(7)读取excel行数据,通过jieba进行分词处理
(8)通过doc2bow计算测试数据的稀疏向量
(9)求得测试数据与样本数据的相似度
算法说明:
(1)这里有个点,7-9步会循环执行,针对文档描述列中的每一行,会与在第六步中创建的索引就行比对,会统计与该行相似性超过50%的行数据,同时会将统计到的数据增加个数组中,后续不再执行比对,以免重复统计。
(2)第一步jieba算法中会用到专业术语词典及stop词典等,7-9部会循环执行,目前相似度阈值设置的为:50%,另外excel操作就不多说了(增加了汇总起来清单的超链,可以导航到清单)
(3)效率上,20多万的数据,因需要转换向量,大概需要20来分钟。
(4)大的算法发是这样的,下一篇再开始上代码,针对不同需求,进行介绍。
I’m 「软件老王」,如果觉得还可以的话,关注下呗,后续更新秒知!欢迎讨论区、同名公众号留言交流!
文本相似性热度统计(python版)的更多相关文章
- 利用sklearn计算文本相似性
利用sklearn计算文本相似性,并将文本之间的相似度矩阵保存到文件当中.这里提取文本TF-IDF特征值进行文本的相似性计算. #!/usr/bin/python # -*- coding: utf- ...
- 人脸验证算法Joint Bayesian详解及实现(Python版)
人脸验证算法Joint Bayesian详解及实现(Python版) Tags: JointBayesian DeepLearning Python 本博客仅为作者记录笔记之用,不免有很多细节不对之处 ...
- 字符串匹配算法之 kmp算法 (python版)
字符串匹配算法之 kmp算法 (python版) 1.什么是KMP算法 KMP是三位大牛:D.E.Knuth.J.H.MorriT和V.R.Pratt同时发现的.其中第一位就是<计算机程序设计艺 ...
- Python版飞机大战
前面学了java用java写了飞机大战这次学完python基础后写了个python版的飞机大战,有兴趣的可以看下. 父类是飞行物类是所有对象的父类,setting里面是需要加载的图片,你可以换称自己的 ...
- 【Python】《大话设计模式》Python版代码实现
<大话设计模式>Python版代码实现 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼 ...
- ROS Learning-011 beginner_Tutorials (编程) 编写 ROS 话题版的 Hello World 程序(Python版)
ROS Indigo beginner_Tutorials-10 编写 ROS 话题版的 Hello World 程序(Python版) 我使用的虚拟机软件:VMware Workstation 11 ...
- 《大话设计模式》Python版代码实现
上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼界.<大话设计模式>的代码使用C#写成的 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 数据结构:顺序表(python版)
顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...
随机推荐
- centos7+docker+elasticsearch 安装记录+踩坑
版本: cenos7 :3.10.0-957.21.3.el7.x86_64 (内核需>=3.10 才可以安装) docker: yum安装版本为1.13.1 elasticsearch: 6 ...
- 揭发233的docker/machine
继手动滑稽之golang-vmware-driver广告篇,今天把vmware-driver完成 然而我却要发一篇牢骚,这是对docker公信力的挑战!!! 本来很简单的升级到vmware 15.x的 ...
- VS2019菜单栏没有团队选项解决方法
新安装了Visual Studio 2019结果菜单栏没有“团队”菜单,导致没办法连接TFS服务器,查了下网上也并没有对应解决方法(甚至遇见这个问题的都没有/笑哭,所以这个方法写出来也大概没什么用) ...
- Unity 基于Cinemachine计算透视摄像机在地图中的移动范围
Unity中Cinemachine的基础功能介绍可详见之前写的博客: https://www.cnblogs.com/koshio0219/p/11820654.html 本篇的重点是讨论,在给定规则 ...
- React Hooks 实现和由来以及解决的问题
与React类组件相比,React函数式组件究竟有何不同? 一般的回答都是: 类组件比函数式组件多了更多的特性,比如 state,那如果有 Hooks 之后呢? 函数组件性能比类组件好,但是在现代浏览 ...
- 倍增LCA模板2董博文版 伪代码
Dfs(int rt){ f[][rt]; ;k<=;k++) f[k][rt]=f[k-][f[k-][rt]]; } int LCA(int x,int y){ if(Dp[x]<Dp ...
- 查看JVM参数
如何查看一个正在运行中的java程序,它的某个jvm参数是否开启?具体值是多少? jps jinfo jvm的参数类型: 1.标配参数:java -version ,java -help , jav ...
- 关于python列表的一些基础知识。
因学校实验室要求,自学了python,一开始看书觉得太简单了,也没有多动手去尝试,直到看完了前八章突然想动手试试的时候,人傻了,深刻体会到了好记性不如烂笔头的道理,故整理一些python列表的操作. ...
- 华为,小米部分机型微信浏览器rem不适配的解决方案
针对近日华为,小米的部分机型,在升级系统或升级微信之后,微信内置浏览器产生的rem不能正确填充满的问题,有如下解决方案 目前来看,产生这个情况的原因是因为给html附font-size时,附上的fon ...
- Oracle GoldenGate for BigData-Kafka
0. Env list:Oracle Linux:6.10Oracle DB 11.2.0.4OGG4Ora:19.1OGG4BD:19.1 1.Install package for OCI ins ...