3。1。2 功能需求
(1)用户上传文档时,文档类型受到限制,只能上传doc、docx、xls、xlsc、ppt、pptx和PDF类型的文档,用户可以选择上传文档所属的类型,设置下载该文档所需的积分,同时用户上传文档可以获得一定的积分。
(2)系统对用户上传的文档进行敏感词检测和相似度计算,对于不符合要求的文档不予上传。
(3)用户下载文档时会扣除一定的积分,当剩余积分足够时才能下载文档。
(4)系统根据用户的下载信息,向用户推荐同类别的文档。
(5)用户已经下载的文档重复下载不在重复扣除积分,已经收藏的文档不在重复收藏。
3。2 系统功能结构图
系统功能主要分为两大部分,用户文档分享模块和管理员管理模块,其中每一模块都由几个小部分组成,根据分享可画出系统的功能结构图。系统的功能结构图如图3-1所示。
图3-1系统功能结构图
3。3核心功能分析
经过系统的需求分析可以概括出系统的核心功能,系统的核心功能主要分为Tika提取文本,jieba分词,敏感词搜索,TF-IDF算法提取关键词,相似度计算,office文档转PDF文档,PDF文档转SWF文档系统的核心功能架构图为图3-2所示。
图3-2系统核心功能架构图
3。3。1 Tika提取文本
Tika支持多种功能:文档类型检测、内容提取、元数据提取、语言检测。本系统中主要使用到文档类型检测和内容提取两大功能。[9]
用户传送一个文档到Tika,其处理的流程如图3-3所示。
图3-3 Tika处理流程
整体流程为:
1、当用户传一个文件到Tika,它使用与之适合的类型检测机制检测文件类型。Tika支持MIME(多用途Internet邮件扩展(MIME)标准,用于识别文件类型的最佳标准)所提供的所有互联网媒体文件类型。Tika默认MIME类型检测是使用org。apache。tika。mime。mimeTypes。它使用org。apache。tika。detect。Detector 接口提供大部分内容类型检测。内部Tika使用多种技术,如文件匹配替换,内容类型提示,魔术字节,字符编码,以及其他一些技术。文献综述
2、一旦文档类型是已知的,它从解析器库中选择合适的解析器。解析器库中包含的类使用外部库。org。apache。tika。parser 解析器接口是Tika解析文档的主要接口。该接口从文档中提取文本和元数据。Tika 支持大量的文件格式,具体为各个文档类型提供不同的具体解析器类。
3、然后将文档传送到选择的解析器解析内容,提取文本,并且能抛出不可读格式异常解析。
Tika为用户提供了多种使用方式,用户可以使用Tika提供的GUI界面解析文本,也可以在java程序中使用Tika包,同时Tika还可以在Linux、DOS环境下以命令行的形式使用。
本系统使用cmd下使用命令行的形式调用Tika来提取文本。命令行格式为java-jar tika-app-1。12。jar –text 源文件 >> 目标文件
tika-app-1。12。jar为本系统中使用的Tika的jar包,tika-app结合上面的组件和所有的外部解析器库到一个可运行jar GUI和命令行接口。
-text 用于输出文本内容,用户也可以使用 —t来执行这一命令
3。3。2 jieba分词
本系统的敏感词屏蔽和相似度计算都必须已jieba分词为基础。jieba分词是国内程序员用Python开发的一个中文分词模块。以下是jieba分词处理的主要流程。[10]
1)加载词典dict。txt
dict。txt为语料库(词典),其中包含了jieba作者自己收集的语料信息,其分为三列,第一列为中文词语,第二列为词频,第三列为词性。程序加载dict。txt语料库,对语料库的处理有两种方法,在老版本的jieba分词中作者采用trie树对词典进行存储。trie树又叫字典树,是一种常见的数据结构,用于在一个字符串列表中进行快速的字符串匹配。其核心思想是将拥有公共前缀的单词归到一棵树下以减少查询的时间复杂度,其主要缺点是占用内存太大了。[11]来,自,优.尔:论;文*网www.youerw.com +QQ752018766-