基于爬虫和WPF技术的藏文命名实体数据集半自动构建器设计

2024-01-03 08:42李甜华杨文艺
现代计算机 2023年21期
关键词:用户界面藏文爬虫

李甜华,央 啦,杨文艺,春 燕

(西藏大学信息科学与技术学院,拉萨 850000)

0 引言

在自然语言处理中,数据集的质量对模型的性能和准确性有着至关重要的影响。数据集构建是自然语言处理中的一个重要环节,需要收集大量的文本数据,并对这些数据进行标注和清洗,以便用于训练和评估自然语言处理模型[1]。

在中文自然语言处理领域,有很多公开成熟的数据集可以获取,但藏文数据集公开程度低,大部分为实验室内部使用,无法通过公开渠道获取。因此需要自建数据集以便更好地满足研究要求。

《中国藏族网》藏文版包含了大量关于西藏公开的新闻报道,是一个方便快捷的藏文语料来源。本文采用半自动标注的构建方法,基于爬虫技术从该网站获取充足的原始语料[2]。利用WPF 新一代Windows 界面开发技术设计快速高效、开发友好的界面[3],导入通过人工标注的大量的人名、地名和机构名三类命名实体库,对采集的原始数据集进行粗筛选,大幅降低了数据构建的工作量。

1 相关技术介绍

1.1 数据爬虫技术介绍

数据爬虫技术是一种自动化获取互联网上数据的技术,也称为网络爬虫、网络蜘蛛或网络机器人。它可以模拟人类在互联网上的行为,自动访问网站、抓取数据、解析数据并存储到本地或数据库中[4]。通常包括以下几个步骤:

(1)确定目标网站:确定需要的目标网站,了解网站的结构和数据类型;

(2)编写爬虫程序:根据目标网站的结构和数据类型,编写相应程序;

(3)发送请求:爬虫程序向目标网站发送请求,获取网页源代码;

(4)解析数据:爬虫程序解析源代码,可使用正则表达式、XPath、CSS 选择器等提取数据;

(5)存储数据:将解析后的数据存储到本地文件或数据库中。

1.2 WPF界面设计技术介绍

WPF(Windows presentation foundation)是微软推出的一种基于.NET Framework 的用户界面框架,它提供了一种基于XAML(extensible application markup language)的声明式编程模型,提供了一种高度可定制的用户界面设计方案,可以大大提高应用程序的用户体验和开发效率[5]。包含如下核心技术:

(1)XAML:是一种基于XML 的标记语言,用于描述WPF 应用程序的用户界面。开发人员可以将用户界面的布局、样式、动画等元素定义为标记,实现可重用性和可维护性;

(2)数据绑定:可将数据模型与用户界面元素进行绑定,实现数据的自动更新和同步。数据绑定可以大大简化开发人员的工作,提高应用程序的可维护性和可扩展性;

(3)样式模板:可对用户界面元素进行样式化和模板化。样式和模板可以大大提高用户界面的可定制性和可重用性,同时也可以提高开发人员的工作效率;

(4)动画转换:可实现用户界面元素的动态效果和交互效果。可提高应用程序的用户体验;

(5)自定义控件:增强用户界面的定制性和扩展性,提高开发人员的工作效率。

1.3 C#编程语言介绍

C#(C Sharp)是一种由微软开发的面向对象编程语言,它是.NET Framework 的一部分,可以在Windows、Linux 和macOS 等操作系统上运行,具有以下特点[6]:

(1)简单易学:C#语法结构简单、清晰,易于学习和理解。它采用了类似于C++和Java的语法,同时也借鉴了其他编程语言的优点,如Python的简洁性和Ruby的灵活性;

(2)面向对象:一种面向对象编程语言,支持封装、继承和多态等面向对象的特性;

(3)安全性高:提供了多种安全机制,如类型安全、内存安全、异常处理等,可以有效地防止代码中的漏洞和错误;

(4)跨平台性:可在多个操作系统上运行,包括Windows、Linux和macOS等;

(5)丰富类库:包括.NET Framework 和.NET Core 等,这些类库可以帮助开发人员快速地实现各种功能,如文件操作、网络通信、图形界面等。

1.4 八爪鱼爬虫技术介绍

八爪鱼是一款功能强大的网络爬虫工具,可以帮助用户快速、高效地抓取互联网上的数据。以下是八爪鱼爬虫工具的介绍:

(1)界面友好:提供了直观、易用的界面,通过简单的拖拽和配置,创建自己的爬虫任务;

(2)多种数据抓取方式:包括网页、API、RSS、FTP抓取等;

(3)数据处理功能:包括数据的清洗、转换和数据合并等,可快速处理和分析抓取的数据;

(4)多种输出方式:包括Excel、CSV、JSON、XML等;

(5)自动化任务调度:可定时执行爬虫任务,自动抓取和处理数据。

2 系统架构设计

藏文数据集半自动构建器由数据爬虫和数据筛选两部分组成。其中,数据爬虫部分通过八爪鱼采集器设计采集任务快速实现,设置目标网站为《中国藏族网》藏文版,快速抓取网站中的新闻报道正文并导出CSV文件。

数据筛选则通过WPF 进行界面设计,可导入抓取的CSV 文件和命名实体库,基于C#编程语言进行编写筛选逻辑,拆分语料的语句,批量处理,提取其中命中了实体的语句。处理结束后导出数据。整体结构设计如图1所示。

图1 系统结构图

图2 目标网页采集配置

3 藏文数据集半自动构建器实现

3.1 爬虫部分实现

在八爪鱼采集器中创建任务“藏文命名实体爬虫”,设置其采集页面起始网址为:https://ti.tibet3.com/news/tibet/xz/,使用八爪鱼浏览器可自由点击并选取需要爬取的页面元素。

本文需要采集的字段有文章标题、发表时间、记者、浏览次数和正文内容五个部分。进入其中一个正文报道后,通过点击页面中的元素设计采集字段,预览图如图3所示。

图3 数据集字段设计

通过加入循环的处理逻辑,可以采集多页的数据,最终爬虫任务设计流程如图4所示。

图4 八爪鱼采集器爬虫流程设计图

3.2 拆分部分实现

3.2.1 整体设计

拆分部分基于集成开发环境Visual Studio 2019设计开发,由前台和后台两部分组成,前台通过编写样式和模板,以及基于XAML 代码设计程序界面实现;后台通过C#代码实现拆分逻辑。前后台通过MVVM(框架如图5所示)设计模式实现拆分逻辑和页面分离[7]。

藏文数据集半自动构建器模块包含页面公共工具模块、数据导入模块、拆分模块、结果展示模块四部分。如图6所示。

图6 藏文数据集半自动构建器模块设计

3.2.2 拆分算法实现

拆分算法采用基于滑动窗口的命名实体匹配算法,通过字符串处理实现。处理流程如图7所示。具体流程为:通过藏文悬垂符和空格将文本拆分成单个句子,再将单个句子通过隔音符拆分成单个藏文字符,通过滑动窗口动态拼接藏文字符组成藏文短语,再放入实体库中比较,将命中实体的窗口进行拆分,进而将实体词从语句中进行拆分,并输出该语句。

图7 拆分算法流程图

3.3 实际效果显示

3.3.1 爬虫效果展示

八爪鱼爬虫采集器运行效果如图8 所示,在2 小时31 分内,打开了1287 条报道,并爬取了相应内容,平均每分钟可采集8条报道。最终将结果导出为Excel表格文件,如图9所示。

图9 爬虫结果

3.3.2 拆分界面展示

拆分页面设计如图10 所示,在拆分页面分别点击打开人名数据集、地名数据集和机构数据集,导入实体库,并在左下方三个Tab页进行显示。再点击提取关键句,导入爬取的Excel 原始数据,程序将执行拆分算法,并将结果导出为CSV文件。

图10 拆分页面展示图

3.3.3 拆分结果展示

拆分算法执行完后,共命中实体语句7036条,导出结果如图11所示。

图11 拆分结果展示

4 结语

基于爬虫和WPF 技术的藏文命名实体数据集半自动构建器设计为快速高效地从公开的藏文数据集网络上获取命名实体数据,可在一定程度降低藏文数据集自建难度,提高构建效率。该设计采用了应用成熟、上手难度低的八爪鱼采集器作为数据爬取部分;拆分部分采用WPF技术设计了较为美观,操作简单的用户界面。基于C#编程语言设计并实现基于窗口的命名实体匹配及拆分算法。

猜你喜欢
用户界面藏文爬虫
自然用户界面在智能家居系统中的应用路径创新研究:生成式人工智能技术的调节作用
利用网络爬虫技术验证房地产灰犀牛之说
基于CiteSpace的国外用户界面体验图谱量化分析
基于Python的网络爬虫和反爬虫技术研究
西藏大批珍贵藏文古籍实现“云阅读”
黑水城和额济纳出土藏文文献简介
利用爬虫技术的Geo-Gnutel la VANET流量采集
UI用户界面色彩设计研究
大数据环境下基于python的网络爬虫技术
藏文音节字的频次统计