APP下载

基于舆情数据网页的敏感词过滤与分析

2022-07-26魏欣雨李斌勇陈红豆易佳雯张蕊悦

网络安全技术与应用 2022年7期
关键词:词表冰毒分词

◆魏欣雨 李斌勇 陈红豆 易佳雯 张蕊悦

基于舆情数据网页的敏感词过滤与分析

◆魏欣雨 李斌勇 陈红豆 易佳雯 张蕊悦

(成都信息工程大学网络空间安全学院 四川 610225)

随着自媒体时代的到来,互联网信息的广泛传播摆脱了传统的时空限制,合理引导和管控网络舆情呈正确走向,已成为影响社会稳定和有序发展的重要因素。针对不良信息肆意传播所形成的负能量舆论,必须通过技术手段及时监测和处置,才能有效避免舆情进一步发酵。采用数据网页敏感词过滤分析的技术手段,为互联网舆情的管控提供了可行的支撑,对阻断不良信息在互联网的传播具有较为积极的意义。

网络舆情;不良信息;字典树;信息过滤

随着我国信息技术的迅猛发展,互联网平台、社交媒体等成为突发事件舆情传播的主要载体。尤其是近年来广泛兴起的互联网新媒体传播途径,在呈现多元化发展态势的同时,突破了传统的时空约束,使虚假、造谣等负面舆情能在极短时间内持续发酵至广泛关注的规模,日益成为负面舆情发酵的温床。轻则激化矛盾,给社会舆论带来难以挽回的负面影响;重则带来跟风效应,给社会和谐稳定带来潜在风险。因此,用合理的技术方式监测此类信息传播变得尤为重要,本文以数据网页中的文本为例,从敏感词汇总、利用字典树对文本中的不良信息过滤,并对不良信息类别进行分级。

1 舆情数据分析

网络突发舆情状况往往无法预测,因此面对舆情数据时,舆情数据文本量通常较大。在对舆情数据做统计分析时,首先要抓取舆情数据。可以采用工手动抓取,也可以使用一些网络数据抓取工具来抓取。得到数据之后再用统计软件或利用Python语言等进行数据处理分析。

敏感词位置具有随机性,不同的词组代表不同的意思。因此,需要尽可能地将敏感字/词组进行归纳和整合,将网页中的文本作为文本文件。通过HTML标签的定义可以将网页拆解为一个树形结构,通过遍历的方法,可以确定敏感词所在的树节点,返回网页中文本的敏感信息,即这些节点上的数值,如图1所示。

图1 HTML标签拆解为树状结构

2 基于字典树算法的敏感词查找与过滤

2.1 敏感词树的建立与查找

采用将一个词组列表构建出一棵词组查找树,该树需要满足下列条件:

(1)根结点不包含任何字母或者汉字,根结点以外的每个结点都仅含一个英文字母或者汉字。

(2)从根结点开始到某一结点为止,路径上经过的字母或汉字按顺序连起来所构成的单词或词组,为该结点对应的单词或词组,并且单词或词组列表中的每个词都可以与一个结点存在一一对应关系。

(3)如果满足上述条件,这棵词组查找树的结点数最少,可以统计出该词组查找树的结点数量,如图2所示。

图2 敏感词示意图

2.2 敏感词查找过滤实现

网页文本中会存在开头相同但后面句子并不相同的语句,如图所示2以结点(“冰”)为例,若要查询“冰毒”一词,最坏情况遍历第十次才能查询到该词语,但如果采用快速检索,通过比对前缀只需要比对两次结点信息,可以提升查找速度。

Step1:插入新的敏感词时,从根节点开始对比,若当前字符是否已有节点,就将指针指向该节点。如果没有就为该字符创建节点,并把指针指向该新建节点。

Step2:重复上述过程。

Step3:在一个敏感词结束时停止迭代,将最后的非"”字符所在的节点设为末端节点。

struct N //建立根节点N

N*child[n] //设n为敏感词的个数

bool FG;

INSERT (S,Sen) //在敏感树中插入敏感词

n=Sen.root

for i=0 to S.size

a=S[i]-'b' //若敏感词前缀b已经存在

if n.child[a]==NULL //下一个节点不存在

n.chlid[a]=new N //建立新的节点

n=n.child[a] //重复

n.FG=true //直到达到敏感词词尾

FIND(S,Tire) //敏感词查找

n=Tire.root //从根节点开始

for i=0 to S.size

a=s[i]-'b' //在b的子树上进行查找

if n.child[a]==NULL //该词不是敏感词

return false

n=n.child[a] //否则迭代该过程

return n.child.FG //直到该节点为词尾

通过建立敏感词字典树,可以查到每个敏感词,即子树与词库中的敏感词一一对应。通过文本分词技术,可以按照需求把文件中的长句转换为词组,再将分组后的词组与字典树一一对比,判断能否匹配,若能匹配,则为敏感信息。

3 中文分词处理

中文分词是将一个长句子,分解成词组单元或单独字,本文采用基于理解的分词方法进行处理。以“大学生吸食冰毒有一个月”为例,分解成一些词语单元为(“大学生”、“吸食”、“冰毒”、“有”、“一个月”)。“最大匹配法”在中文分词中就有所应用。

按照文章行文顺序使用正向最大匹配算法,可以对待分词的文本中几个连续字符与词表匹配,若成功匹配,则说明该词组切分成功,但此处所切分出的词组不一定是最大匹配,因此需要多次匹配。还以上述“大学生吸食冰毒有一个月”为例子。

待分词文本为:“大学生吸食冰毒有一个月了”,即sen []={"大","学","生","吸","食","冰","毒","有","一","个",“月”}。实际运用中的词表不仅仅是本文提到的这些,而是千千万万按照我们需求分好的词语:dict[]={“大学”,"大学生","吸食","冰毒","有","一个月"}。

(1)从第一个位置“大”开始,当扫描到“学”的时候,可以看出"大学"已经在词表中了。由于“大学”可能后面的词语会组成更长的词,所以现在还不能把他切分出来。

(2)继续扫描第三个位置,发现"大学生"是词表中的词。但是我们还不能确定是否前面找到的"大学生"已经是最大的词了,因为"大学生"可能是词表中其他词组的前缀。

(3)当扫描第四个位置时,发现"大学生吸"并不是dict[]中的词。也不是dict[3]的前缀。由此可得出"大学生"是被切分出的词。

由此可得,如果可以保证下一个扫描的不是词表中的词或词的前缀,那就称该词为最大匹配算法匹配出的词组。

通过编写Hash算法提高效率。其中创建一个集合判断是否为词表中的词或者是词表中词的前缀。

string dict[] = {"大学生","吸食","冰毒","有","一个月"};

for(i = 0;i

//循环判断是否与词表词相同或者为词表词前缀

{

if(str == dict[i].substr(0,str.length()))

{

res = true;

}

}

最后处理结果如图3所示。

由此可见,分词结果与所分析的一致。在数据量很大时,若给出样本量足够大的词表时,可以做到全本文的分词。通过对比分词与敏感词组可以看出文本中是否含有敏感词,以及包含哪些敏感词。

4 结束语

面对当前网络舆情时时变化更替的特点,本文进行了基于舆情敏感信息的目标查找进行研究,从而用分词技术对文本进行分析并找出目标敏感词的位置。采用构建字典树快速查找的方法,为舆情监测部门提供快速可行的技术筛选机制。面对突发事件,本文所探索的敏感词过滤分析方法,在为舆情监测部门提供敏捷的数据呈现的同时,也为舆情部门做出快速响应处理提供了便捷的决策支持。

图3 敏感词示意图

[1]夏立新,毕崇武,梅潇.基于事件链的网络舆情事件演化研究[J].情报理论与实践,2020,43(5):123-130.

[2]王超.我国突发性网络舆情事件的关联网络结构分析[J].现代情报2019,39(12):121-130.

[3]李伟.基于决策树的网页敏感词过滤系统设计[D].西北农林科技大学,2018.

[4]俎云霄.不良信息过滤技术研究[D].北京邮电大学,2012.

[5]张冬冬,林杉.互联网舆情监测、预警和引导技术[J].计算机与网络,2014(19):70-73.

四川省科技计划项目(2021JDRC0046);成都信息工程大学大学生创新创业训练计划项目资助(202110621212)

猜你喜欢

词表冰毒分词
A Chinese-English List of the Sports Programmes in Winter Olympics 冬奥会项目名称汉英对照词表
结巴分词在词云中的应用
基于时间分辨免疫分析的冰毒检测微流控芯片
值得重视的分词的特殊用法
叙词表与其他词表的互操作标准
特殊形态的冰毒认定问题分析
高考分词作状语考点归纳与疑难解析
国外叙词表的应用与发展趋势探讨*
常用联绵词表
论英语不定式和-ing分词的语义传承