基于Python的企业办公文档检索系统的开发与应用
王瑶陈翔高艳彬
python在线编辑器python3(中国电力工程顾问集团西南电力设计院有限公司,四川成都610021)
摘要:近年来,企业办公系统的更新速度越来越快,对于不同的系统功能和版本,随之产生了大量的帮助文档.当用户遇到一些问题时,如果让用户从这些文档中去寻解决问题的办法,将会浪费很多时间.本文使用Python语言,通过对收集到的帮助文档内容进行处理,最终搭建了一个基于Flask的企业办公帮助文档检索系统.办公系统的用户只需要输入简单的问题描述,就可返回解决该问题的帮助文档,方便系统使用人员快速准确地定位问题的解决办法,从而有利于提高工作效率.
什么原因引起类风湿性关节炎关键词:帮助文档;Python;文本处理;文本相似度算法
中图分类号:TP311.52文献标识码:A文章编号:1003-9767(2021)02-126-04
Development and Application of Enterprise Office Document Retrieval System
Based on Python
WANG Yao,CHEN Xiang,GAO Yanbin
(Southwest Electric Power Design Institute,Chengdu Sichuan610021,China)
Abstract:In recent years,the update speed of corporate office systems has become faster and faster,and a large number of help files have been produced for different system functions and versions.When users encounter some problems,if users are asked to find solutions to the problems from these documents,it will waste a lot of time.This article uses the Python language to process the collected help documents,and finally builds a Flask-based corporate office help document retrieval system.The user of the office system only needs to enter a simple description of the problem,and then he can return to the help file that solves the problem,which is convenient for system users to quickly and accurately locate the solution to the problem,thereby helping to improve work efficiency.
Keywords:help documents;Python;text processing;text similarity algorithm
0引言的使用问题,智能地推荐出与问题相关性最强的帮助文档,
近年来,西南电力设计院有限公司的办公系统越来越多,如OA系统、协同设计管理平台、数字化出版系统和数字化档案馆等。设计人员在最初使用这些办公系统的过程中,会遇到一些使用问题。因此,软件部门在每次开发完一个系统交付使用后,都必须抽出1~2名技术人员专门处理设计人员遇到的问题一役设计人员遇到的大多数是一些基本的使用问题,完全可以通过查帮助文档进行解决。由于技
术文档包含的内容很多,设计人员又急于处理设计方面的问题,没有太多时间阅读技术文档。
这不仅是对公司人力的一种浪费,也是对公司财力、物力的一种浪费。为了让设计人员更方便、快捷地使用系统,同时减轻软件开发人员的负担。本文提出一种基于文本相似度算法的帮助文档检索系统,该系统可以根据设计人员提出解决设计人员的困难,提高公司人员的工作效率反馈"役
1系统方案及开发环境
1.1系统方案
通过整理公司内部各个系统的帮助文档,发现这些文档主要是Word或者PDF格式的文档。首先人工将这些帮助文档切分成包含一个问题及其解决方法的文档,将这些切分后的文档作为系统最终推送给设计人员的帮助文档。其次,利用Python文本处理技术,将Word和PDF的文档转换成TXT文档,这样就可以只读取文档内部的文字描述了。具体的系统方案如图]所示。
对于从帮助文档中读取的内容,首先利用分词工具对文档进行分词,接着根据停用词文件去除其中的停用词,这样
作者简介:王瑶(1990-),女,甘肃兰州人,硕士研究生,工程师。研究方向:软件工程、自然语言处理和模式识别。
China Computer&Communication 2021年第2期
图1系统方案
文档内容就变成以词语为单位的列表。然后通过文本向量化技术建立词袋模型,生成每个词对应的词向量,使得每一个文档的文本内容表示成词向量的形式。
同理,对输入的问题进行分词和停用词处理,获取每个词语的词向量。最后利用文本相似度算法比较问题描述的词向量和每一个文档的词向量,获得输入问题相对于每个文档的相似度,再进行排序,返回相似度最高的文档名称,从而完成由用户输入问题到提取帮助文档的过程。
1.2系统开发环境
本系统的开发环境以基于Windows的Python语言环境为主,主要因为它可以很方便地处理一些文档,加之自然语言处理的相关技术也以Python语言为主,并将文本相似度算法作为辅助,最终利用flask打包发布WebService接口。
2系统的关键技术点
2.1Python语言
Python作为近几年流行起来的一门编程语言,在人工智能、算法、Web应用等方面发挥着巨大的作用。它是一种面向对象的动态类型语言,具有运行速度快、可移植、可扩展性等特点。Python语言之所以能够流行,主要有两个原因:第一,Python语言是一种解释型语言,代码简短易于实现;第二,Python语言有相当强大的库函数,很多复杂且难懂的计算过程,都可以通过调用Python相关的库进行辅助计算。Python语言有很多编辑器,如Sublime、PyCharm等,本文选择PyCharm201&3.5x64作为开发工具。
2.2文本预处理:Pywin32库
文本预处理的目的是将帮助文档的文字内容提取出来,方便后面进行自然语言处理的相关操作。本文使用pywin32读取Word或者PDF格式的文档内容。在使用pywin32的时候,一定要确定是否与自己的Python环境匹配。本文使用win32com读取文档的文字内容,并将读取的内容保存成.txt,从而构建了文档检索系统的语料库,方便日后处理。
2.3自然语言处理
自然语言处理(Natrural Language Processing,简称NLP)是人工智能研究的一个分支领域。自然语言主要是指人类经常使用的交流语言,例如汉语、英语、日语等。自然语言处理的研究内容就是实现计算机和人类之间通过自然语言进行有效的交流。
中文自然语言处理的流程与英文自然语言处理的流程存在差异。中文需要进行分词,不像每个英文单词之间都有空格。英文的每个单词就表示一个意义,而中文的一句话是由很多字组成的,相邻的字再组成一个词语,所以中文的一个词语相当于英文的一个单词。当然中文的词语不完全是由两个字组成的,有时候一个字、三个字,甚至四个字都可以组成一个词语。因此,中文要进行自然语言处理方面的研究,首先要进行分词。
2.4分词和停用词
分词技术是一个相当复杂的问题,包括基于规则的方法和基于统计的方法。基于规则的方法就是要建立相应的中文词语词典,利用正向最大匹配原则或者逆向最大匹配原则对目标文本进行分词。基于统计的方法是通过统计语料库内相邻字之间出现的频次,将频次较高的两个或者几个字划分为一个词语。现在的分词技术是融合了这两种方法,因此要做出分词效果很好的模型会耗费相当大的精力去维护一个词语词典,这对于研究者来说是极不方便的。
现在有很多开源的分词工具,从而很容易对一般的语料进行分词。而对于特殊领域内出现的特殊词语,分词工具也留出了更新词典的接口,只需要将自己专属领域的生僻词语传入分词工具的词典中,分词工具就可以在目标文档中遇见这类词语的时候将其识别为一个词语。
颜料调表大全图片虽然现在的分词工具很多,但是各个分词工具也有各自的特点,从而就需要根据自己应用的不同场景
选择不同的分词工具。HanLP是一个很强大的分词工具,它在分词的准确度方面表现很好,但就是分词耗费的时间较长。Jieba是目前应用最为广泛的分词工具,分词速度快,分词效果也不错,因此受到大家的青睐。
通过对比应用环境,本文决定在对文档进行分词处理的时候选用HanLP作为分词工具,因为这时候侧重的是分词的精确度,而在对用户输入的问题进行分词时选用Jieba作为分词工具,因为这时候分词处于实时的在线应用,对于反馈
的结果有很高的要求。
2.5文本向量化
在自然语言处理研究领域中,文本向量化是文本表示的一种重要方式。顾名思义,文本向量化就是将文本表示成一系列能够表达文本语义的向量,而将这些向量作为输入,计算机才可以进行处理。无论是中文还是英文,词语都是表达文本处理的最基本单元。
本系统选用的词袋模型是最早的以词语为基本处理单元的文本向量化方法。原理如下:
John likes to watch movies,Mary likes too.
John also likes to watch football games.
全身asp根据上述文本,构建了如下字典:
campaign的用法'f ootball'':!,''games'1Mary''too":1Q}
以上字典中包含了10个单词及其唯一的索引,每个文本用10维的向量表示如下:
[1,2,1,1,1,0,0,0,1,1]
[1,1,1,1,o.i,1,1,o.o]1
该向量表示的是词典中每个单词在文本中出现的频次,与文本单词出现的顺序无关。
2.6文本相似度算法
通过实验比较,本文最终通过TF-IDF算法(词频-逆文档频次算法)结合余弦定理计算文本相似度的。TF算法是统计一个词在一篇文章中出现的频次,在文章中一个词出现的次数越多,那么对该文章的表达能力也越强。出现的频次用该词在一篇文章中出现的次数除以文章的总词数计算而来,计算式如下:
其中,%是词i在文章/中出现的频次。
台积电 美国IDF算法是统计一个词出现在语料库的多少个文章中,如果一个词语在越少的文章中出现,则该词语对文章的区别能力也就越强,用Zog(总文章数/出现该词语的文章数)进行计算。计算式如下:
幼;』4昂]⑶
其中,QI表示语料库中的总文章数,表示语料库中出现该词语的文章数。分母加1为了避免分母为零的情况。
TF-IDF算法就是将TF算法和IDF算法结合起来进行使用的。表达式如下:
A
丿(4)余弦相似性通过计算两个向量夹角的余弦值来度量它们之间的相似性。余弦值越大则表明越相似。相似度的计算如下:
=丽飞3血3(5)其中,4和2分别表示向量仏和B的各分量。
在本文中通过以下方式计算:①将每篇文章的词语合成一个大的集合,并且通过TF-IDF算法计算出每篇文章中的词对于这个大集合中的词的词频;②通过TF-IDF算法计算输入问题的每个词对于这个大集合中的词的词频;③生成文章的词频向量和输入问题的词频向量;④通过余弦定理计算这两个向量的余弦相似度,值越大表明越相似。在程序中返回相似度大于0.1的文章名称。
3系统应用
3.1Flask简介
Flask是Python编写实现的Web应用程序框架,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员可以分工合作。Flask 依赖于Werkzeug WSGI工具集和Jinja2搜索引擎。
Flask是微内核的Web框架,“微”并不是意味着把整个Web应用放入一个Python文件,而是指Flask旨在保持代码简洁且易于扩展,其主要特征是核心构成比较简单,程序员可以使用Python语言便捷地实现一个网站或Web服务。因此,文本使用Flask框架发布程序。
3.2Flask发布Web服务
本系统的网页界面选择使用Bootstrap框架,配合js代码实现系统帮助界面的人机对话接口。在完成前端界面的设计后,使用flask接口将前端获得的数据传回后台进行计算,再将后台计算的问题描述与帮助文档相似度计算结果返回给前端界面。返回到前端界面的结果是以相似度从高到低进行排序推荐的5个相关文档,设计人员再根据自己的需求点击下载相应的帮助文档。
4结语
基于Python的企业办公文档检索系统在大大减少工作量的同时,也使得设计人员能更高效地完成工作。在实际的工作中,对于一些帮助文档不能解决的问题,也将处理问题的办法归纳成新的帮助文档,并加入办公文档检索系统中。同时,随着各种办公系统功能的增加,也添加了很多帮助文档到办公文档检索系统中。这次大胆的尝试,不仅将人工智能的概念引入传统的企业办公系统中,也是对未来工作的一种探索。
参考文献
[1]王挺,麦范金,刘忠.自然语言处理及其应用前景的研究[J].
China Computer&Communication 2021年第2期
桂林航天工业高等专科学校学报,2006,11(4):19-21.
[2]Zhang Hui,Zhang Min,Li Haizhou,et al.Fast translation
rulematching for syntax-based statistical machine translation[C]//Proceedings of the2009Conference on Empirical Methods in Natural Language Processing,2009. [3]王挺,麦范金,刘忠.自然语言处理及其应用前景的研究[J].
桂林航天工业学院学报,2006,11(4):19-21.
[4]宋一凡.自然语言处理的发展历史与现状[J].中国高新科
技,2019(3):64-66.
[5]Neto J L,Freitas A A.Kaestner C A A.Automatic Text
Summarization Using a Machine Learning Approach[C]// Advances in Artificial Intelligence,2002.
[6]张燕平,张铃.机器学习理论与算法[M],北京:北京科学
出版社,2012.[7]BENGIO Y.LAMBLIN P.POPOVICI D,et al.Greedy layer
wise training of deep networks[C]//Proc of the12th Annual Conference on Neural Information Processing System,2006.
[8]周志华.机器学习[M],北京:清华大学出版社,2016.
[9]淮青.词义和构成词的语素义的关系[J],辞书研
究,1981(1):98-110.
[10]敏萱.面向普通未登录词理解的二字词语义构词研究[J].
中文信息学报,2015,29(5):63-68,83.
[11]Yang Z,Yang D,Dyer C,et al.Hierarchical Attention
Networks for Document Classification[C]//Conference of the North American Chapter of the Association for Computational Linguistics,2016.
[12]王飞•基于蚁优化的模糊文本聚类算法研究[D].郑州:
河南工业大学,2010.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论