维e 发表于 2020-5-28 07:48:27

麻烦帮忙看看机械压缩去词的代码

本帖最后由 维e 于 2020-5-28 07:49 编辑

我刚刚学着用python做情感分析,跟着一位老师学敲的机械压缩去词的代码,代码没有报错,但也没有成功去掉重复词,搞了半天也没搞懂,请高人帮忙看看,我把前后代码都贴上。分析的数据是从cvs导入的某商品评论内容。

data = pd.DataFrame(data['内容'].unique())

def cutword(strs, reverse=False):
    s1 = []#存一个字符
    s2 = []#存第二个字符
    s = []#存最终结果
    if reverse:
      strs = strs[::-1]
    s1.append(strs)
    for i in strs:
      if i ==s1:
            if len(s2)==0:
                s2.append(i)
            else:
                if s1 == s2:
                  s2 = []
                  s2.append(i)
                else:
                  s = s+s1+s2
                  s1 = []
                  s2 = []
                  s1.append(i)
      else:
            if s1 == s2 and len(s1)>=2 and len(s2)>=2:
                s = s + s1
                s1 = []
                s2 = []
                s1.append(i)
            else:
                if len(s2)==0:
                  s1.append(i)
                else:
                  s2.append(i)
    if s1 == s2:
      s = s + s1
    else:
      s = s + s1 + s2
    if reverse :
      return ''.join(s[::-1])
    else:
      return ''.join(s)

#机械压缩去词
#用aplly免用for循环
data2 = data.iloc[:,0].apply(cutword)
data2 = data2.apply(cutword, reverse = True)

print('机械压缩去词后:')
print(len(data2))
print(type(data2))
print('---------------')

Twilight6 发表于 2020-5-28 09:02:49

给几行数据内容测试下

维e 发表于 2020-5-28 19:34:51

Twilight6 发表于 2020-5-28 09:02
给几行数据内容测试下

测试过了,就是输入什么数据,输出的还是什么数据,不能实现去重的效果

Twilight6 发表于 2020-5-28 19:37:44

维e 发表于 2020-5-28 19:34
测试过了,就是输入什么数据,输出的还是什么数据,不能实现去重的效果

我意思是 你给几行数据 ....

维e 发表于 2020-5-28 19:47:05

Twilight6 发表于 2020-5-28 19:37
我意思是 你给几行数据 ....

我发了一个链接我的原始数据,在审核中。就是随便设个字符串比如“12213456656667”这种,输出的时候还是这一串,{:5_110:}
页: [1]
查看完整版本: 麻烦帮忙看看机械压缩去词的代码