文本处理、词频统计与Simhash生成文档指纹
时间:2020-04-19
本文章向大家介绍文本处理、词频统计与Simhash生成文档指纹,主要包括文本处理、词频统计与Simhash生成文档指纹使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
text='''The Data Mining and Web Information System Research Group DMWIS at College of Computer Science and Technology in Jilin University is a team of faculty, master and doctoral candidate students. Our research interests are AI, data mining, machine learning, web mining, text-based information retrieval, natural language processing, and applications of deep learning to natural language processing'''
# 去除标点符号
for i in ',()?!.':
text=text.replace(i,' ')
temp = text.lower().split()
dic = {}
for word in temp:
if word not in dic:
dic[word] = 1
else:
dic[word] = dic[word] + 1
for key in dic:
print(key,dic[key],end=' , ')
the 1 , data 2 , mining 3 , and 4 , web 2 , information 2 , system 1 , research 2 , group 1 , dmwis 1 , at 1 , college 1 , of 3 , computer 1 , science 1 , technology 1 , in 1 , jilin 1 , university 1 , is 1 , a 1 , team 1 , faculty 1 , master 1 , doctoral 1 , candidate 1 , students 1 , our 1 , interests 1 , are 1 , ai 1 , machine 1 , learning 2 , text-based 1 , retrieval 1 , natural 2 , language 2 , processing 2 , applications 1 , deep 1 , to 1 ,
print(len(dic))
41
#生成41个不同的随机整数 0-255
import random
random_list=[0 for i in range(41)]
vis=set()
for i in range(41):
t=random.randint(0,255)
while t in vis:
t=random.randint(0,255)
random_list[i]=t
vis.add(t)
print(random_list)
[87, 127, 40, 63, 225, 90, 107, 97, 71, 62, 91, 51, 2, 160, 188, 166, 20, 44, 95, 116, 119, 106, 241, 78, 8, 89, 167, 123, 184, 199, 16, 18, 114, 120, 183, 124, 232, 81, 82, 230, 211]
进行异或
ans=[0 for i in range(8)]
for i in range(7,-1,-1):
#print(1<<i)
j=0
for key in dic:
if(i==7):
print(key,bin(random_list[j]))
if((1<<i&random_list[j])==0):
ans[7-i]-=dic[key]
else:
ans[7-i]+=dic[key]
j+=1
print(ans)
the 0b1010111
data 0b1111111
mining 0b101000
and 0b111111
web 0b11100001
information 0b1011010
system 0b1101011
research 0b1100001
group 0b1000111
dmwis 0b111110
at 0b1011011
college 0b110011
of 0b10
computer 0b10100000
science 0b10111100
technology 0b10100110
in 0b10100
jilin 0b101100
university 0b1011111
is 0b1110100
a 0b1110111
team 0b1101010
faculty 0b11110001
master 0b1001110
doctoral 0b1000
candidate 0b1011001
students 0b10100111
our 0b1111011
interests 0b10111000
are 0b11000111
ai 0b10000
machine 0b10010
learning 0b1110010
text-based 0b1111000
retrieval 0b10110111
natural 0b1111100
language 0b11101000
processing 0b1010001
applications 0b1010010
deep 0b11100110
to 0b11010011
[-28, 10, 16, 10, 0, -10, 8, -4]
[1 if i>0 else 0 for i in ans]
[0, 1, 1, 1, 0, 0, 1, 0]
原文地址:https://www.cnblogs.com/Tony100K/p/12731214.html
- iOS内存管理:从MRC到ARC实践
- MySQL错误修复:Table xx is marked as crashed and last (automatic?) repair failed
- PHP跨站脚本攻击(XSS)漏洞修复方法(一)
- Windows下获取网络连线实际名称,加强IP类设置脚本的兼容性
- Android APP 快速 Pad 化实现
- PHP彩蛋还是漏洞?expose_php彩蛋的触发和屏蔽方法
- 深入源码探索 ReactNative 通信机制
- PHP跨站脚本攻击(XSS)漏洞修复思路(二)
- WordPress发布文章自动同步到新浪微博(带特色图片)
- go http 服务器编程(1)
- Linux系统内存监控、性能诊断工具vmstat命令详解
- go http 服务器编程(2)
- 利用placeholder属性来添加输入框默认文字提示,提高用户体验
- Linux系统监控、诊断工具之top命令详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【深度学习】深入理解LSTM
- 短视频商城源码,两种方式实现点击出现弹窗显示
- 【50期】基础考察:ClassNotFoundException 和 NoClassDefFoundError 有什么区别
- MySQL 8.0新特性 — 管理端口
- 从单词嵌入到文档距离 :WMD一种有效的文档分类方法
- 程序员技术选型:写Go还是Java?
- 用python爬虫简单网站却有 “多重思路”--猫眼电影
- 对开发者而言,GitHub Profile可能是比简历更好的求职利器
- R语言中GLM(广义线性模型),非线性和异方差可视化分析
- leetcode树之二叉树的深度
- PowerBI DAX 库存余量模型与计算
- 20种小技巧,玩转Google Colab
- 图深度学习入门教程(九)——图滤波神经网络模型
- 技术分享 | 我的内存去哪儿?生产实践
- 数据传输 | DTLE 3.20.09.0 来啦!