一种针对社交文本的切分取词方法及系统与流程

文档序号:28816635发布日期:2022-02-09 06:23阅读:62来源:国知局
一种针对社交文本的切分取词方法及系统与流程

1.本发明属于社交文本处理技术领域,具体涉及一种针对社交文本的切分取词方法及系统。


背景技术:

2.随着互联网的进步与发展,涉嫌网络诈骗的情况越来越严峻,其网络诈骗的形式也层出不穷,这猖獗的背后是因为有庞大的产业为其提供帮助,使得网络诈骗各个环节独立运行,网络诈骗成本降低,网络诈骗数量不断突破新高。
3.现有技术中,从事网络诈骗的人员一般都会在匿名的各种通讯软件和暗网论坛进行交流和交易,交流中所用语言风格独特,常常带有只有内行才能看懂的黑话、暗语。
4.针对于此类文本信息,传统的文本切分方法及系统已经无法满足,需要基于大量此类信息数据,结合语言风格,建立黑话、暗语词库,开发一套能有效对其进行文本切分的方法及系统,以便能够更好的对网络诈骗情况进行监测。


技术实现要素:

5.针对现有技术中存在的无法满足对从事网络诈骗的人员涉及的社交文本进行精准切分的问题,本发明提出了一种针对社交文本的切分取词方法及系统,其目的为:针对上述关于从事网络诈骗的人员聊天信息强烈鲜明的语言风格,以及与传统聊天内容上的巨大差别,本发明根据不同类型的语料,形成有自身特点的文本识别和切分技术,对文本进行精准切分取词。
6.为实现上述目的本发明所采用的技术方案是:提供一种针对社交文本的切分取词方法,包括s1:采集从事网络诈骗的人员最近一个月聊天信息的原始文本数据,并对原始文本数据进行清洗;s2:使用n-gram模型构建n-gram词库,并通过互信息对清洗后的原始文本数据进行计算过滤,将保留的文本数据存入n-gram词库;s3:利用n-gram词库并通过文本分词函数对文本数据进行分词;s4:对分词结果进行复核,若存在错误分词结合则对其进行修复;s5:设置固定的时间为n-gram词库的更新周期,对n-gram词库进行更新。
7.较优的,本发明s1中对原始文本数据的清洗具体为:s1.1:通过正则表达式去除原始文本数据中的无效字符,包括:不可见字符、网址、数字、非中文、@字符串和无意义字符;s1.2:判断是否存在敏感词分隔符,若存在则将其替换为空字字符:s1.2.1:首先创建一个候选敏感词分隔符集合,将原始文本数据中所有的表情符号和标点分割符号加入该候选敏感词分隔符集合,将他们都作为候选敏感词分隔符;s1.2.2:然后使用正则表达式提取所有的某一种候选敏感词分隔符加入到第一列
表,然后提取所有该候选敏感词分隔符和其后带的代词字符加入到第二列表中;s1.2.3:若第二列表中的字符长度最小值小于等于2,并且第一列表长度与第二列表长度相等,则认为该候选敏感词分隔符是敏感词分隔符;s1.2.4:将敏感词分隔符替换为空字字符。
8.较优的,本发明所述n-gram词库包括已登录词典、处理完成的原始文本数据和自定义词典,s2具体为:s2.1:将清洗后的原始文本数据,利用空格进行分隔形成列表,筛选长度大于1的字符串加入待处理列表中;s2.2:将待处理列表中所有字符串取出,统计它的4gram和对应的词频,加入到n-gram字典中,并计算n-gram字典中字符串长度为1的词的数量,作为词的总数;s2.3:根据n-gram字典中的词的字符串长度不同,设置不同的阈值,然后计算n-gram字典中每个词的互信息,保留互信息大于阈值的词作为输出集合存入n-gram词库。
9.较优的,本发明s3中文本分词函数具体为:s3.1.1:首先依赖n-gram词库判断一个字符串是否需要进行切分,若一个字符串的4gram的四个词全部在n-gram词库中,则这个字符串为完整字符串,不需要进行切分;若一个字符串的4gram的四个词不全部在n-gram词库中,则在这个字符串处进行切分;s3.1.2:对一个待进行分词切分的字符串,根据其字符串的长度l,赋值一个长度为l-1的全0数组,字符串的前两个字对应全0数组中的一个0,然后依次统计字符串s的首字、二字、三字、四字和五字是否在n-gram词库中,如果在,对应的数组位置就加1,一直遍历到该字符串所有的字统计完成;s3.1.3:然后将数组对应的字符串进行判断切分,从0的部分切开,非0的部分连接起来,切分形成一个列表。
10.较优的,本发明通过所述文本分词函数对本分数据进行切分具体为:s3.2.1:提取n-gram词库中的所有字符串,对字符串进行依次判断;s3.2.2:若字符串是纯数字或字母或字符串的中文字符长度小于等于4,则将该字符串添加到result列表中;对剩余的字符串通过文本切分函数进行切分,并对切分后的字符串列表中的每个字符串w进行判断;s3.2.3:若字符串w是中文加数字,将数字替换为空字符串后添加到result列表中;若字符串w是中文加非数字,将字符串w中的中文提取出来并赋值为r后继续判断:s3.2.4:若字符串r小于5个字符,则将字符串w添加到result列表中;若字符串r大于等于8个字符,使用结巴分词,并将结果添加到result列表中;若字符串r大于等于5个字符且小于8个字符,判断结巴分词结果中单个字的数量,如果单个非停用字的数量大于0,说明结巴分词是错误切分,将字符串w添加到result列表中,否则,将结巴分词结果添加到result列表中。
11.较优的,本发明s4具体为:对result列表中的词k进行遍历判断,如果词k是单个字,并且它的上一个词q也是单个字,若单字k和单字q都不在停用词中,且新词q+k在清洗后的文本中,那么修复该错误
切分,拼接q+k成词。
12.较优的,本发明s5具体为:当对n-gram词库进行更新时,首先扩充已登录词典和自定义词典,接着扩充当天的原始文本数据,对当天的原始文本数据中字符串文本长度大于5的进行清洗,并利用空格分隔,加入到待定的words集合中,将words集合中所有汉字带数字的字符串替换为纯汉字字符串,替换后提取集合中字符长度在2-5之间的字符串,并且过滤掉字符首尾两个字任意一个在停用词中的字符串,将剩下的字符串扩充到n-gram词库中。
13.本发明还包括一种针对社交文本的切分取词系统,包括:文本预处理模块:采集从事网络诈骗的人员最近一个月聊天信息的原始文本数据,并通过正则表达式对原始文本数据进行清洗,以及判断是否存在敏感词分隔符并替换为空字符串;n-gram词库创建模块:由处理完成的原始文本数据、已登录词典和自定义词典组成,所述处理完成的原始文本数据即上个周期的原始文本数据经过4gram处理后入库的数据;分词函数模块:利用文本分词函数对文本数据进行切分,对切分后的result列表进行拼接,并修复错误切分;n-gram词库更新模块:每个周期对n-gram词库进行更新时,首先扩充已登录词典和自定义词典,然后将这个周期内产生的原始文本数据通过文本预处理模块进行处理后,扩充到n-gram词库中。
14.较优的,本发明所述n-gram词库创建模块具体为:步骤1:将清洗后的原始文本数据,利用空格进行分隔形成列表,筛选长度大于1的字符串加入待处理列表中;步骤2:将待处理列表中所有字符串取出,统计它的4gram和对应的词频,加入到n-gram字典中,并计算n-gram字典中字符串长度为1的词的数量,作为词的总数;步骤3:根据n-gram字典中的词的字符串长度不同,设置不同的阈值,然后计算n-gram字典中每个词的互信息,保留互信息大于阈值的词作为输出集合存入n-gram词库。
15.较优的,本发明所述n-gram词库更新模块具体为:当对n-gram词库进行更新时,首先扩充已登录词典和自定义词典,接着扩充当天的原始文本数据,对当天的原始文本数据中字符串文本长度大于5的进行清洗,并利用空格分隔,加入到待定的words集合中,将words集合中所有汉字带数字的字符串替换为纯汉字字符串,替换后提取集合中字符长度在2-5之间的字符串,并且过滤掉字符首尾两个字任意一个在停用词中的字符串,将剩下的字符串扩充到n-gram词库中。
16.相比现有技术,本发明的技术方案具有如下优点/有益效果:1.本发明根据文本切分函数对文本数据进行切分,能够使切分结果更加精准。
17.2.本发明设置有更新周期,将周期时间内产生的新数据对n-gram词库进行周期性更新,使词库与时俱进,越来越丰富。
18.3.本发明的文本数据限制文本类型,可以对大多数文本数据进行切分。
附图说明
19.为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式中所需要使用
的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
20.图1是本发明一种针对社交文本的切分取词方法及系统的流程示意图。
具体实施方式
21.为使本发明目的、技术方案和优点更加清楚,下面对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明的一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。
22.实施例1:如图1所示,提供一种针对社交文本的切分取词方法,包括s1:采集从事网络诈骗的人员最近一个月聊天信息的原始文本数据,并对原始文本数据进行清洗;具体为:s1.1:通过正则表达式去除原始文本数据中的无效字符,包括:不可见字符、网址、数字、非中文、@字符串和无意义字符;s1.2:判断是否存在敏感词分隔符,若存在则将其替换为空字字符:s1.2.1:首先创建一个候选敏感词分隔符集合,将原始文本数据中所有的表情符号和标点分割符号加入该候选敏感词分隔符集合,将他们都作为候选敏感词分隔符;s1.2.2:然后使用正则表达式提取所有的某一种候选敏感词分隔符加入到第一列表,然后提取所有该候选敏感词分隔符和其后带的代词字符加入到第二列表中;s1.2.3:若第二列表中的字符长度最小值小于等于2,并且第一列表长度与第二列表长度相等,则认为该候选敏感词分隔符是敏感词分隔符;s1.2.4:将敏感词分隔符替换为空字字符。
23.s2:使用n-gram模型构建n-gram词库,并通过互信息对清洗后的原始文本数据进行计算过滤,将保留的文本数据存入n-gram词库;本发明所述n-gram词库包括已登录词典、处理完成的原始文本数据和自定义词典,s2具体为:s2.1:将清洗后的原始文本数据,利用空格进行分隔形成列表,筛选长度大于1的字符串加入待处理列表中;s2.2:将待处理列表中所有字符串取出,统计它的4gram(如字符串:新的一年,对应的4gram列表为[新,新的,新的一,新的一年,的,的一,的一年,一,一年,年])和对应的词频,加入到n-gram字典中,并计算n-gram字典中字符串长度为1的词的数量,作为词的总数;s2.3:根据n-gram字典中的词的字符串长度不同,设置不同的阈值,然后计算n-gram字典中每个词的互信息,保留互信息大于阈值的词作为输出集合存入n-gram词库。
[0024]
本发明的互信息计算方法:二字词:i=(p(ab))/(p(a)
×
p(b))。
[0025]
三字词:min{i=p(abc)/(p(a)
×
p(bc) ),i=p(abc)/(p(ab)
×
p(c) )}。
[0026]
四字词:min{p(abcd)/(p(a)
×
p(bcd) ),p(abcd)/(p(ab)
×
p(cd) ),p(abcd)/(p(abc)
×
p(d))}。
[0027]
其中,i表示互信息,p表示概率,min表示最小值,ab/abc/abcd表示两字词/三字词/四字词,(比如:葡萄(ab)/葡萄酸(abc)/葡萄好酸(abcd))。
[0028]
s3:利用n-gram词库并通过文本分词函数对文本数据进行分词;本发明s3中文本分词函数具体为:s3.1.1:首先依赖n-gram词库判断一个字符串是否需要进行切分,若一个字符串的4gram的四个词全部在n-gram词库中,则这个字符串为完整字符串,不需要进行切分;若一个字符串的4gram的四个词不全部在n-gram词库中,则在这个字符串处进行切分;s3.1.2:对一个待进行分词切分的字符串,根据其字符串的长度l,赋值一个长度为l-1的全0数组,由于成词至少是两个字,所以字符串s的前两个字对应数组的索引为0,后面的每一个字对应一个索引位置。(如字符串“国际短信”,对应的全0数组为array([0, 0, 0]),第一个0对应“国际”,第二个0对应”短”,第三个0对应”信”)。然后依次统计字符串s的首字、二字、三字、四字和五字是否在n-gram词库中,如果在,对应的数组位置就加1,一直遍历到该字符串所有的字统计完成;s3.1.3:然后将数组对应的字符串进行判断切分,从0的部分切开,非0的部分连接起来,切分形成一个列表。
[0029]
通过所述文本分词函数对本分数据进行切分具体为:s3.2.1:提取n-gram词库中的所有字符串,对字符串进行依次判断;s3.2.2:若字符串是纯数字或字母或字符串的中文字符长度小于等于4,则将该字符串添加到result列表中;对剩余的字符串通过文本切分函数进行切分,并对切分后的字符串列表中的每个字符串w进行判断;s3.2.3:若字符串w是中文加数字,将数字替换为空字符串后添加到result列表中;若字符串w是中文加非数字,将字符串w中的中文提取出来并赋值为r后继续判断:s3.2.4:若字符串r小于5个字符,则将字符串w添加到result列表中;若字符串r大于等于8个字符,使用结巴分词,并将结果添加到result列表中;若字符串r大于等于5个字符且小于8个字符,判断结巴分词结果中单个字的数量,如果单个非停用字的数量大于0,说明结巴分词是错误切分,将字符串w添加到result列表中,否则,将结巴分词结果添加到result列表中。
[0030]
s4:对分词结果进行复核,若存在错误分词结合则对其进行修复;s4具体为:对result列表中的词k进行遍历判断,如果词k是单个字,并且它的上一个词q也是单个字,若单字k和单字q都不在停用词中,且新词q+k在清洗后的文本中,那么修复该错误切分,拼接q+k成词,除此之外,其他情况均直接添加词k。
[0031]
s5:以一个月为n-gram词库的更新周期,对n-gram词库进行更新。s5具体为:当对n-gram词库进行更新时,首先扩充已登录词典和自定义词典,(已登录词典是收集的已经被识别出来的词语或者不常用词。自定义词典是人工自行添加的词语,这些词
语可能是行业新词或者黑话,自定义词典因人工添加而更新。当对n-gram词库进行更新时,需要将已登录词典和最新自定义词典中的词添加到n-gram词库中。)接着扩充当天的原始文本数据,对当天的原始文本数据中字符串文本长度大于5的进行清洗,并利用空格分隔,加入到待定的words集合中,将words集合中所有汉字带数字的字符串替换为纯汉字字符串,替换后提取集合中字符长度在2-5之间的字符串,并且过滤掉字符首尾两个字任意一个在停用词中的字符串,将剩下的字符串扩充到n-gram词库中。
[0032]
本发明还包括一种针对社交文本的切分取词系统,包括:文本预处理模块:采集从事网络诈骗的人员最近一个月聊天信息的原始文本数据,并通过正则表达式对原始文本数据进行清洗,以及判断是否存在敏感词分隔符并替换为空字符串;n-gram词库创建模块:由处理完成的原始文本数据、已登录词典和自定义词典组成,所述处理完成的原始文本数据即上个周期的原始文本数据经过4gram处理后入库的数据;分词函数模块:利用文本分词函数对文本数据进行切分,对切分后的result列表进行拼接,并修复错误切分;n-gram词库更新模块:每个周期对n-gram词库进行更新时,首先扩充已登录词典和自定义词典,然后将这个周期内产生的原始文本数据通过文本预处理模块进行处理后,扩充到n-gram词库中。
[0033]
本发明所述n-gram词库创建模块具体为:步骤1:将清洗后的原始文本数据,利用空格进行分隔形成列表,筛选长度大于1的字符串加入待处理列表中;步骤2:将待处理列表中所有字符串取出,统计它的4gram和对应的词频,加入到n-gram字典中,并计算n-gram字典中字符串长度为1的词的数量,作为词的总数;步骤3:根据n-gram字典中的词的字符串长度不同,设置不同的阈值,然后计算n-gram字典中每个词的互信息,保留互信息大于阈值的词作为输出集合存入n-gram词库。
[0034]
本发明所述n-gram词库更新模块具体为:当对n-gram词库进行更新时,首先扩充已登录词典和自定义词典,接着扩充当天的原始文本数据,对当天的原始文本数据中字符串文本长度大于5的进行清洗,并利用空格分隔,加入到待定的words集合中,将words集合中所有汉字带数字的字符串替换为纯汉字字符串,替换后提取集合中字符长度在2-5之间的字符串,并且过滤掉字符首尾两个字任意一个在停用词中的字符串,将剩下的字符串扩充到n-gram词库中。
[0035]
以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1