文本在线查重系统设计与实现(1)
《基于多粒度偏好的网络文本抄袭检测系统的研究与实现》论文重点记录及知识点
网络爬虫:技术类文本选择主要爬取CSDN,新浪博客等技术性站点;新闻类文本主要爬取腾讯新闻等新闻网站等;
相似度计算:快速检测:传统的余弦算法;普通检测:改进的余弦算法;详细检测:基于语义理解的文本相似度算法
功能方面的需求:网络爬虫模块、系统文本检测服务模块、系统单网页检测服务模块、系统多粒度模块、用户权限管理、系统数据存储模块(自己需要的模块标红)
相关技术
- 网络爬虫
- 文本相似度计算
- 非关系型数据库
- Apache Shiro框架(本人用Flask框架【后面要用到MongoDB数据库】)
系统模块分解图
文本在线查重系统的模块分解图
系统用例图
网络爬虫模块需求分析
文本查重系统只输入文本,不提供输入url
注:选择编写常见站点的页面HTML解析代码,如用户选择的文本类型对应的主要爬取站点。对于系统中没有对应解析方式的网站则采用java中的ContentExtractor方法抽取网页的正文部分。(python中选取其他方法,暂时还没想到)
系统文本检测服务需求分析
具体描述:
系统接收到用户的请求后,根据用户输入文本的正文内容和所选择的文本类型,到相应站点寻找相似文本,并将其url作为种子url,再根据网络爬虫中介绍的抓取策略抓取种子url中包含的其余url。对这些url进行去重处理后,启动网络爬虫系统,爬取url的正文内容存储在本地。
选定的url全部爬取完成后,系统将采用simhash算法对存储在本地的文本进行去重处理,然后根据用户选择的检测类型调用相应的文本相似度检测方法,对存储在本地的文件进行相似度计算。(本人设计只进行详细文本相似度检测)
最后,根据文本相似度从高到低的顺序,向用户展示系统检测到的网络文本抄袭结果。此外,系统将自动统计分析来自各个网站被标记为抄袭的文本的数量比例,并生成图表。
多粒度需求分析:
1.网络爬虫
本人设计:待检测文本只有技术类,优先选择csdn,新浪博客,百度百科等网站进行爬取。
2.文本相似度检测:本人设计只有 详细检测
没有设计用户,直接进行检测
系统数据存储功能需求分析
这是本人不会的点,看了很多文章。
该模块涉及到系统数据的持久性存储以及系统后续业务的使用,考虑到本系统的数据来自网络,具有海量性以及数据无结构性,传统的关系型数据库已经不能满足系统的需求,因此,引入新型的非关系型数据库MongoDB.
系统拓扑图
本人不涉及用户信息数据库
系统功能模块图
数据库设计
本人设计只有系统网络爬虫模块根据用户输入信息爬取的网页镜像数据库,这篇文章作者还设计了用户个人信息以及权限管理
1.文本检测部分数据库的设计和实现
网络爬虫模块的目的是爬取网络上与用户输入文本相关的数据,爬取完成后需要在本地将数据存储下来供后续计算使用。
用户提交文本存储格式
字段名 | 类型 | 描述 |
user_text_id | ObjectId | 用户提交的文本ID |
text |
Array |
用户提交的文本 |
text_title | String | 用户提交文本标题 |
keywords | Array | 文本关键词 |
paragraph | Array |
文本段落区分 |
detection_time | Int64 | 检测时间 |
系统将用户输入的文本标题,正文内容保存下来后,根据关键词提取技术提取文本的关键词以及关键词对应权重,并以{关键词,权重}格式的键值对形式将所有键值对组合成Array形式,保存在keywords中。然后根据关键词的权重由高到低将关键词放入对应的搜索网站中进行搜索以确定种子url。
其中,用户提交的文本正文内容分句后以Array的形式存储在数据库中。
段落标记则是用paragraph字段存储每段的句子数量,以方便后续相似度的计算。
{关键词,权重}键值对keywords
根据种子url爬取的网络文本的主要存储字段及其存储格式(爬取过程经过url去重处理)
文本相似度检测:详细检测 基于语义理解的文本相似度算法
详细检测结果中,sim_sentence_list字段与sim_paragraph_list字段的存储格式类似,均是以用户提交文本句(段)标号,网络文本句(段)标号以及他们的相似度组成的Array类型,句与段的相似度均以用户提交文本顺序排列,系统只存储相似度计算结果大于40%的相似句(段)
网络爬虫部分的设计与实现
只爬取技术类文章:CSDN,博客园与百度等
1.针对系统中没有对应解析格式网页的正文提取方法
java中使用ContentExtractor抽取网页正文
python中暂时没找到,但是可以对百度搜索结果进行提取(这个可以找到)
2.针对站点对网络文本进行解析
CSDN,博客园
//*********
这个后面来补充
先放出别人的伪代码
作者的文本检测页面
文本相似度算法:
1.对文本提取关键词并计算对应权重
采用NLPIR汉语分词系统提取文本的关键词与对应权重值 java
PyNLPIR python中文分词工具
/*******要进行测试*******/
结果形式 关键词1/词性1/权重1.......
2.根据simhash去重(去除重复的语料)
注:提取的文本关键词最多为100个
3.根据语义计算相似度
(这个没怎么看懂)哭。。。。
接下来就是测试了,论文记录完了,开始复现了。
文本在线查重系统设计与实现(1)相关推荐
- 文本在线查重系统(三)
1.爬取了博客园的4000篇文章,存入mongodb数据库. 2.进行了分句存储,并提取关键词. 3.实现了文本相似度计算 截图如下: 运行结果: Building prefix dict from ...
- 文本在线查重系统实现(二)
一.框架学习 https://www.w3cschool.cn/flask/ 二.爬虫 https://www.cnblogs.com/xingzhui/p/7881262.html 三.关键词提取 ...
- 论文免费在线查重我们需要注意些什么?
论文能够快速通过查重是每个毕业生所想的,虽然我们不指望能得到一篇好论文的题目,但事实上,基本底线还是存在的.我们想要写出一篇好的论文,这确实需要很大的努力,在做论文查重的时候也不知道需要注意什么. 我 ...
- 基于抽象语法树的Online Judge语义查重系统设计与实现(毕设)
前段时间做的毕业设计,一直没有时间发出来,现在分享出来,希望大家能够批评指正,共同提高. 因为我们学校的OJ是基于华中科大的,所以整个项目是建立在HUSTOJ基础上的,本次的毕业设计也在这个基础上的. ...
- 基于java的文本/论文查重
业主要求做一个跟知网查重一样牛皮的功能,除了传统的关键字匹配查重和文本内容匹配查重外,还可根据语义进行智能提醒(sb,没几万块钱还想搞这种东西.几十人的团队都不一定做得了,做得出来早放网上坐家里等着收 ...
- Java简单实现在线查重思路
最初仅仅考虑到两篇文本的对比,只使用了余弦相似度定理进行简单的计算.后来考虑到这种实现的局限性(不能随意对比任意文档),因此使用python爬虫爬取网上一些文章作为(模拟)自己的对比库.用户可以上传一 ...
- 文本查重:知识点总结
目录 整体框架 1. 查询文本切分策略 2. 文本相似性计算 2.1 计算粒度 2.2 相似性度量算法 2.3 整体相似度的评估 文本相似度 simhash算法及原理简介 1. 什么是SimHash ...
- 【NLP】Python实例:基于文本相似度对申报项目进行查重设计
Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...
- [转]simhash进行文本查重
有1亿个不重复的64位的01字符串,任意给出一个64位的01字符串f,如何快速从中找出与f汉明距离小于3的字符串? 大规模网页的近似查重 主要翻译自WWW07的 Detecting Near-Dupl ...
最新文章
- Zookeeper 在Hadoop中的应用
- 移动IM开发指南3:如何优化登录模块
- Android 6.0 运行时权限处理
- Chord 弦 - 一个现代音乐播放器
- linux查看apache端口,linux系统下Apache服务启动时80端口报错
- 数据预处理(Python scikit-learn)
- sql多字段求和降序排序_elasticsearch基础笔记11-搜索排序
- ubuntu install redis/mongo
- MenuItem创建注意事项
- 解决:Docker 启动的容器内部时间比服务器时间晚 8 小时,容器内部时间与宿主机时间不一致
- druid seata 配置_架构设计 | 基于Seata中间件,微服务模式下事务管理
- openSUSE Tumbleweed 支持 Linux Kernel 4.20
- Shell 编程入门到精通
- HTML中的三目表达式可以有多长
- Spring boot 搭建个人博客系统(六)——文章点击量和阅读排行榜
- maya表情blendshape_【UE4】人物角色MorphTarget(Blendshape) 面部表情制作方案
- 运营人必备工具,收藏帖
- 一个“点赞”功能的实现代码
- 卡西欧计算机的型号配置,【卡西欧 CASIO fx-82CN X计算器使用总结】菜单|供电|设置|输入|运算_摘要频道_什么值得买...
- 5G毫米波终端关键技术分析