文本分析之机械重复词的处理

问题引出

在做文本分析时,例如网上购物的评论中,有些用户会为了获取积分或者获取金钱奖励,而采取一种复制手段,可以称之为机械重复词:如下图所示:
在这里插入图片描述
在这里插入图片描述
这些重复词只是为了单纯的凑字数,并没实际含义,但在文本分析时产生的影响确实不可忽略的。

问题处理

对于这些机械重复词,直接利用jieba分词处理显然是不合适的,可以利用一些规则找出这些重复词的索引,然后将这些索引对应的词给删掉,以达到去重目的:
(1)首先把字符串转化列表,list会自动按单个字符分词;
在这里插入图片描述
(2)准备两个空列表,一个list1用于存储当前词,一个list2用于存储判断重复词;
(3)判断第i个字符是否为此字符串的最后一个字符,若是就判断list1与list2是否相等,若相等就记录其索引;
(4)比较当前单个字符分词与list1中的第一个单个字符是否相等,同时需要判断list2的长度是否大于1,若当前字符和list1首字符相同,list2为空,将词加入list2;当前字符和list1首字符不同,list2为空,将词加入list1;
(5)当前词和list1不同,list2不为空,若list1与list2重复,记录list2字符的索引,list1本来的内容不用再去判断重复了清空list1与list2,并把当前值赋个list1;当前词和list1首字符不同,list2不为空,若list1与list2不重复,将当前字符添加到list2;
(6)当前字符词和list1首字符相同,list2不为空,若list1与list2重复,记录list2中字符对应的索引,删除list2里的内容,list1需要再去和后面的词汇继续判断重复,再将当前值赋到list2,当前字符词和list1首字符相同,list2不为空,若list1与list2不重复,将list2的值赋给list1,当前字符赋给list2;
(7)将记录的索引对应重复的字符删除,并将剩下的字符重新拼接起来。

函数代码

// An highlighted block
def qc_string_forward(s):
    filelist = s
    filelist2 = []
    for a_string in filelist:
        temp1 = a_string.strip('\n')
        temp2 = temp1.lstrip('\ufeff')
        temp3 = temp2.strip('\r')
        char_list = list</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值