admin 管理员组

文章数量: 1184232


2024年4月20日发(作者:strcpy函数作用两个数)

敬件打农与狡用

China

Computer

I

■与足

&

Communication

1B

2021

年第

2

基于

Python

的企业办公文档检索系统的开发与应用

王瑶陈翔高艳彬

(中国电力工程顾问集团西南电力设计院有限公司

四川成都

610021

)

近年来

企业办公系统的更新速度越来越快

对于不同的系统功能和版本

随之产生了大量的帮助文档.

当用户遇到一些问题时

如果让用户从这些文档中去寻找解决问题的办法

将会浪费很多时间.本文使用

Python

语言

通过对收集到的帮助文档内容进行处理

最终搭建了一个基于

Flask

的企业办公帮助文档检索系统.办公系统的用户只

需要输入简单的问题描述

就可返回解决该问题的帮助文档

方便系统使用人员快速准确地定位问题的解决办法

从而

有利于提高工作效率.

关键词

帮助文档

Python;

文本处理

文本相似度算法

中图分类号

TP311.52

文献标识码

A

文章编号

1003-9767

(2021)

02-126-04

Development

and

Application

of

Based

Enterprise

on

Python

Office

Document

Retrieval

System

WANG

Yao,

CHEN

Xiang,

GAO

Yanbin

(Southwest

Electric

Power

Design

Institute,

Chengdu

Sichuan

610021,

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

系统方案及开发环境

档案馆等

设计人员在最初使用这些办公系统的过程中

遇到一些使用问题

。因此

软件部门在每次开发完一个系统

1.1

系统方案

交付使用后

都必须抽出

1

~

2

名技术人员专门处理设计人

通过整理公司内部各个系统的帮助文档

发现这些文档

员遇到的问题一役设计人员遇到的大多数是一些基本的使用

主要是

Word

或者

PDF

格式的文档

首先人工将这些帮助

问题

完全可以通过查找帮助文档进行解决

由于技术文档

文档切分成包含一个问题及其解决方法的文档

将这些切分

包含的内容很多

设计人员又急于处理设计方面的问题

后的文档作为系统最终推送给设计人员的帮助文档

其次

有太多时间阅读技术文档

利用

Python

文本处理技术

Word

PDF

的文档转换成

这不仅是对公司人力的一种浪费

也是对公司财力

TXT

文档

,这样就可以只读取文档内部的文字描述了

。具体

力的一种浪费

为了让设计人员更方便

、快捷地使用系统

的系统方案如图

所示

同时减轻软件开发人员的负担

本文提出一种基于文本相似

对于从帮助文档中读取的内容

首先利用分词工具对文

度算法的帮助文档检索系统

该系统可以根据设计人员提出

档进行分词

接着根据停用词文件去除其中的停用词

,这样

作者简介

王瑶

(1990-)

,

甘肃兰州人

,硕士研究生

工程师

研究方向

软件工程

自然语言处理和模式识别

126

信■与电

2021

年第

2

China

Computer

&

Communication

软件卄域;与龛用

1

系统方案

文档内容就变成以词语为单位的列表

然后通过文本向量化

NLP

是人工智能研究的一个分支领域

自然语言主要是指

技术建立词袋模型

生成每个词对应的词向量

使得每一个

人类经常使用的交流语言

例如汉语

英语

日语等

自然

文档的文本内容表示成词向量的形式

语言处理的研究内容就是实现计算机和人类之间通过自然语

同理

对输入的问题进行分词和停用词处理

获取每个

言进行有效的交流

词语的词向量

最后利用文本相似度算法比较问题描述的词

中文自然语言处理的流程与英文自然语言处理的流程存

向量和每一个文档的词向量

获得输入问题相对于每个文档

在差异

中文需要进行分词

不像每个英文单词之间都有空

的相似度

再进行排序

返回相似度最高的文档名称

从而

英文的每个单词就表示一个意义

而中文的一句话是由

完成由用户输入问题到提取帮助文档的过程

很多字组成的

相邻的字再组成一个词语

所以中文的一个

1.2

系统开发环境

词语相当于英文的一个单词

当然中文的词语不完全是由两

个字组成的

有时候一个字

三个字

,甚至四个字都可以组

本系统的开发环境以基于

Windows

Python

语言环境

成一个词语

。因此

中文要进行自然语言处理方面的研究

为主

主要因为它可以很方便地处理一些文档

加之自然语

首先要进行分词

言处理的相关技术也以

Python

语言为主

并将文本相似度算

法作为辅助

,

最终利用

flask

打包发布

WebService

接口

2.4

分词和停用词

2

系统的关键技术点

分词技术是一个相当复杂的问题

,包括基于规则的方法

和基于统计的方法

基于规则的方法就是要建立相应的中文

2.1

Python

语言

词语词典

利用正向最大匹配原则或者逆向最大匹配原则对

目标文本进行分词

。基于统计的方法是通过统计语料库内相

Python

作为近几年流行起来的一门编程语言

在人工智

邻字之间出现的频次

将频次较高的两个或者几个字划分为

算法

Web

应用等方面发挥着巨大的作用

它是一种面

一个词语

现在的分词技术是融合了这两种方法

因此要做

向对象的动态类型语言

具有运行速度快、

可移植

可扩展

出分词效果很好的模型会耗费相当大的精力去维护一个词语

性等特点

Python

语言之所以能够流行

主要有两个原因

词典

这对于研究者来说是极不方便的

第一

Python

语言是一种解释型语言

代码简短易于实现

现在有很多开源的分词工具

从而很容易对一般的语料

第二

Python

语言有相当强大的库函数

很多复杂且难懂的

进行分词

而对于特殊领域内出现的特殊词语

分词工具也

计算过程

都可以通过调用

Python

相关的库进行辅助计算

留出了更新词典的接口

只需要将自己专属领域的生僻词语

Python

语言有很多编辑器

Sublime

PyCharm

本文

传入分词工具的词典中

分词工具就可以在目标文档中遇见

选择

PyCharm

201&3.5

x64

作为开发工具

这类词语的时候将其识别为一个词语

2.2

文本预处理

Pywin32

虽然现在的分词工具很多

但是各个分词工具也有各自

文本预处理的目的是将帮助文档的文字内容提取出来

的特点

,从而就需要根据自己应用的不同场景选择不同的分

方便后面进行自然语言处理的相关操作

本文使用

pywin32

词工具

HanLP是一个很强大的分词工具

它在分词的准确

读取

Word

或者

PDF

格式的文档内容

在使用

pywin32

的时

度方面表现很好

但就是分词耗费的时间较长

Jieba

是目前

,一定要确定是否与自己的

Python

环境匹配

本文使用

应用最为广泛的分词工具

分词速度快

分词效果也不错

win32com

读取文档的文字内容

并将读取的内容保存成

.txt,

因此受到大家的青睐

从而构建了文档检索系统的语料库

方便日后处理

通过对比应用环境

本文决定在对文档进行分词处理的

时候选用

HanLP

作为分词工具

因为这时候侧重的是分词的

2.3

自然语言处理

精确度

而在对用户输入的问题进行分词时选用

Jieba

作为

自然语

言处理

(Natrural

Language

Processing

,

分词工具

因为这时候分词处于实时的在线应用

对于反馈

127

敬件打农与狡用

China

Computer

I

■与足

&

Communication

1B

2021

年第

2

的结果有很高的要求

们之间的相似性

余弦值越大则表明越相似

相似度的计算

2.5

文本向量化

如下

在自然语言处理研究领域中

文本向量化是文本表示的

一种重要方式

顾名思义

文本向量化就是将文本表示成一

=

3

3

5

系列能够表达文本语义的向量

而将这些向量作为输入

其中

4

2

分别表示向量仏和

B

的各分量

算机才可以进行处理

无论是中文还是英文

词语都是表达

在本文中通过以下方式计算

①将每篇文章的词语合成

文本处理的最基本单元

一个大的集合

并且通过

TF-IDF

算法计算出每篇文章中的

本系统选用的词袋模型是最早的以词语为基本处理单元

词对于这个大集合中的词的词频

②通过

TF-IDF

算法计算

的文本向量化方法

原理如下

输入问题的每个词对于这个大集合中的词的词频

③生成文

John

likes

to

watch

movies,

Mary

likes

too.

章的词频向量和输入问题的词频向量

④通过余弦定理计算

John

also

likes

to

watch

football

games.

这两个向量的余弦相似度

值越大表明越相似

在程序中返

根据上述文本

构建了如下字典

回相似度大于

0.1

的文章名称

'

football'':!,''games'

1

Mary''too"

:1Q}

3

系统应用

以上字典中包含了

10

个单词及其唯一的索引

每个文本

3.1

Flask

简介

10

维的向量表示如下

Flask

Python

编写实现的

Web

应用程序框架

较其他

[1,2,

1,1,1,0,0,0,

1,1]

同类型框架更为灵活

轻便

安全且容易上手。

它可以很好

[1,1,

1,1,

o.i,

1,1,

o.o]

1

地结合

MVC

模式进行开发

开发人员可以分工合作

Flask

该向量表示的是词典中每个单词在文本中出现的频次

依赖于

Werkzeug

WSGI

工具集和

Jinja2

搜索引擎

与文本单词出现的顺序无关

Flask

是微内核的

Web

框架

“微

”并不是意味着把整

2.6

文本相似度算法

Web

应用放入一个

Python

文件

而是指

Flask

旨在保持代

码简洁且易于扩展

其主要特征是核心构成比较简单

程序

通过实验比较

本文最终通过

TF-IDF

算法

词频-逆

员可以使用

Python

语言便捷地实现一个网站或

Web

服务

文档频次算法

结合余弦定理计算文本相似度的。

TF

算法

因此

文本使用

Flask

框架发布程序

是统计一个词在一篇文章中出现的频次

在文章中一个词出

现的次数越多

那么对该文章的表达能力也越强。

出现的频

3.2

Flask

发布

Web

服务

次用该词在一篇文章中出现的次数除以文章的总词数计算而

本系统的网页界面选择使用

Bootstrap

框架

配合

js

计算式如下

码实现系统帮助界面的人机对话接口

在完成前端界面的设

计后

使用

flask

接口将前端获得的数据传回后台进行计算,

再将后台计算的问题描述与帮助文档相似度计算结果返回给

前端界面

返回到前端界面的结果是以相似度从高到低进行

其中

%是词

i

在文章/中出现的频次

排序推荐的

5

个相关文档

设计人员再根据自己的需求点击

IDF

算法是统计一个词出现在语料库的多少个文章中

下载相应的帮助文档

如果一个词语在越少的文章中出现

则该词语对文章的区别

能力也就越强

Zog

总文章数/出现该词语的文章数)

4

结语

行计算

计算式如下

基于

Python

的企业办公文档检索系统在大大减少工作量

的同时

也使得设计人员能更高效地完成工作

在实际的工

;

4

]

作中

对于一些帮助文档不能解决的问题

也将处理问题的

其中

QI

表示语料库中的总文章数

表示语料库

办法归纳成新的帮助文档

并加入办公文档检索系统中

中出现该词语的文章数

。分母加

1

为了避免分母为零的情况

,随着各种办公系统功能的增加,

也添加了很多帮助文档

TF-IDF

算法就是将

TF

算法和

IDF

算法结合起来进行使

到办公文档检索系统中

这次大胆的尝试

不仅将人工智能

用的

表达式如下

的概念引入传统的企业办公系统中

也是对未来工作的一种

探索

A

丿

(4)

参考文献

余弦相似性通过计算两个向量夹角的余弦值来度量它

[1]

王挺

麦范金

刘忠.自然语言处理及其应用前景的研究

[J].

128

信■与电

2021

年第

2

China

Computer

&

Communication

软件卄域;与龛用

桂林航天工业高等专科学校学报

,2006,11(4):19-21.

[7]

BENGIO

N

CI

D,et

layer

­

[2]

Zhang

Hui,Zhang

Min,Li

Haizhou,et

translation

wise

training

of

deep

networks

[C]//Proc

of

the

12th

Annual

rulematching

for

syntax-based

statistical

machine

Conference

on

Neural

Information

Processing

System,

2006.

translation[C]//Proceedings

of

the

2009

Conference

on

[8]

周志华.机器学习

[M],

北京

清华大学出版社,2016.

Empirical

Methods

in Natural

Language

Processing,

2009.

[9]

淮青.词义和构成词的语素义的关系

[J],

辞书研

[3]

王挺,麦范金,

刘忠.自然语言处理及其应用前景的研究

[J].

,1981(1):98-110.

桂林航天工业学院学报

,2006,11(4):19-21.

[10]

敏萱.面向普通未登录词理解的二字词语义构词研究

[J].

[4]

宋一凡.自然语言处理的发展历史与现状

[J].

中国高新科

中文信息学报

,2015,29(5):63-68,83.

,2019(3):64-66.

[11]

Yang

Z,Yang

D,Dyer

C,et

chical

Attention

[5]

Neto

J

L,Freitas

A

er

C

A

tic

Text

Networks

for

Document

Classification[C]//Conference

Summarization

Using

a

Machine

Learning

Approach[C]//

of

the

North

American

Chapter

of

the

Association

for

Advances

in

Artificial

Intelligence,

2002.

Computational

Linguistics,

2016.

[6]

张燕平

张铃.机器学习理论与算法

[M],

北京

北京科学

[12]

王飞

基于蚁群优化的模糊文本聚类算法研究

[D].

郑州:

出版社

,2012.

河南工业大学

,2010.

129


本文标签: 文档 帮助 问题 系统 文本