『杂项』数据溯源与验真的探索之路(3)

admin 2024年2月15日16:27:18评论10 views字数 1883阅读6分16秒阅读模式
你已选中了添加链接的内容『杂项』数据溯源与验真的探索之路(3)

点击蓝字 关注我们

『杂项』数据溯源与验真的探索之路(3)
日期:2023-11-08
作者:H4y0
介绍:数据安全比赛中常有数据溯源与数据验真类的题目,学到了很多有意思的东西,将这个有趣的过程分享给大家。

0x00 前言

相对于固定格式的数字或字母,正则表达式处理中文就有些力不从心了。而数据安全中需要处理中文部分一般都是含有一定语义的自然语言,可以通过自然语言处理来获取其中的敏感数据。

0x01 NLP与NER

1.1 NLP

自然语言处理(英语:Natural Language Processing,缩写作 NLP)是人工智慧和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言处理包括多方面和步骤,基本有认知、理解、生成等部分。简单来说,NLP就是让计算机去理解自然语言,包括分析语句的意思、拆分语句、分析词性等。以HanLP为例:

『杂项』数据溯源与验真的探索之路(3)

1.2 NER

命名实体识别(英语:Named Entity Recognition,简称NER),又称作专名识别、命名实体,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。同样以HanLP为例:

『杂项』数据溯源与验真的探索之路(3)

可见NER可以识别自然语言中的人名、地名、机构等。结合赛题的题目要求,以某数据安全竞赛决赛题目为例:

『杂项』数据溯源与验真的探索之路(3)

题目中明确提出了可使用NER等手段提取数据,根据题目要求和线下环境,如何使用NER提取数据,且看下文。

『杂项』数据溯源与验真的探索之路(3)

0x02 HanLP

2.1 安装

HanLP是一个开源的面向研究人员和公司的多语种NLP库,提供了轻量级RESTful API,使用起来非常方便,可以申请免费公益API,具体可见:

https://github.com/hankcs/HanLP

但线下赛无法接入互联网,HanLP也可以搭建在本地。直接使用pip安装即可。

pip install hanlp[full]

2.2 NER demo

以提取学校名为例:

import hanlpimport hanlp.utilsimport osimport jsonHanLP = hanlp.pipeline()     .append(hanlp.utils.rules.split_sentence, output_key='sentences')     .append(hanlp.load('FINE_ELECTRA_SMALL_ZH'), output_key='tok')     .append(hanlp.load('MSRA_NER_ELECTRA_SMALL_ZH'), output_key='ner', input_key='tok')# 测试文本text = '那些那些会员学习我的有关,阜阳市第四初中其实设计感觉免费自己记者一般。'#分词result = HanLP(text, tasks='ner/msra')names = []addresses = []schools = []#print(result)for sentence in result['ner']:    if len(sentence)!=0:        for tup in sentence:            if tup[1]=='ORGANIZATION':                schools.append(tup[0])print(schools)

当然,也可以通过读取文件的方式提取一个txt中所有的学校名。

『杂项』数据溯源与验真的探索之路(3)

由于提取的内容为所有的组织机构,所以最终的结果除了学校之外还会有其他机构,该类题目的评分标准与准确率有关,如何提高准确率成为了新的问题。

2.3 准确率相关

一个简单的办法,我们可以进行后处理来提高准确率,方法如下:

1

使用正则表达式匹配学校名称(不推荐)。

2

使用上下文信息,例如“大学”、“初中”、“小学”等词汇,可筛选含有这些上下文信息的实体。

3

训练模型,通过标注等方式训练模型提取学校信息。

4

如果有给定数据,可通过白名单的方式进行筛选,提取数据后与白名单比较,匹配则保留。

回到上文提取姓名、地址,要注意的是题目中给出了省市数据address.txt,所以地址的提取可通过白名单的方式进行实体的筛选。姓名的提取往往较为准确,一般不需要筛选。

『杂项』数据溯源与验真的探索之路(3)

0x03 总结

NER提取自然语言中的敏感信息是一种非常方便且有效的方式,但是要注意对实体的筛选及处理来提高准确率。如果可以的话可以针对数据类型去训练模型,这才能最好地发挥NER的优势。

推荐阅读

『杂项』数据溯源与验真的探索之路(1)

06-02 特稿

『杂项』数据溯源与验真的探索之路(3)

『杂项』数据溯源与验真的探索之路(2)

07-26 特稿

『杂项』数据溯源与验真的探索之路(3)
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

点此亲启

原文始发于微信公众号(宸极实验室):『杂项』数据溯源与验真的探索之路(3)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日16:27:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『杂项』数据溯源与验真的探索之路(3)http://cn-sec.com/archives/2193557.html

发表评论

匿名网友 填写信息