数据分析1.2(接着上一篇)

这篇博客深入研究手机的各个属性,通过LDA主题模型、词频统计和互信息筛选属性词,并探讨如何从评论中抽取<属性词, 形容词, 副词>词对。博主分享了两种实现方法,尽管存在不足,但能初步得到属性词的得分结果,为后续分析提供参考。" 50926333,1457845,iOS集成React Native动态加载更新实践,"['IOS开发', 'React-Native']
摘要由CSDN通过智能技术生成

上一篇数据分析1.1中通过LDA主题模型分析得到的结论中,只能大致得出客户对该手机反映的一些情况,完全不能深入的了解该手机的各个属性方面的问题,当然这也不是博主的最终目的,但是今天这篇博客能够更加深入的研究该手机的各个方面,并对属性值打分.

1.如何获取手机的属性值?
(1)第一步,首先采用jieba.analyse.extract_tags(s,allowPOS=(‘n’,‘vn’,‘v’,))筛选出评论文本中的名词,动名词,动词这些可能为手机属性的词.
(2)第二步,因为一般用户评论手机的好坏,都是在手机的某些属性方面,所以可以采用统计每个词的词频,设定合适的阈值,去除一些不相关的词语(噪音).
(3)第三步,将前两步筛选出的词作为候选属性词,选取候选属性词词频最高的几个词作为中心种子,然后采用互信息的方式进一步的对候选属性词进行筛选(这里说一下互信息的方式,就是说在某一句评论中,候选属性词与中心种子中的词互信息大,或者说,中心种子中的词在一句评论中出现的情况下,某一个候选属性词也出现的概率大,那么就说明该词极有可能是属性词)
(4)第四步,通过上面三步筛选后,得出来的结果中基本上大部分词都是所要的属性词了,但其中还是会含有少量的噪音,此时数据量比较少,可以手动去除噪音,或者是自己写一个常见词但不是属性词的文本文档,每次只需要去调用就好,就省去了手动去除环节,到此时所有属性词基本上都筛选出来了.

代码如下:(我是对所有好评评论进行该操作)

'''
通过jiaba.analyse.extract_tags(s,allowPOS=('vn','n','v',))进行第一步属性筛选,
然后统计词频,进行第二步筛选,筛选出词频大于5的词作为候选属性词
'''
 good_inputfile = '评论文档地址.csv'
date1 = pda.read_csv(good_inputfile, encoding='utf-8',header=None)
mycut = lambda s:' '.join(jieba.analyse.extract_tags(s,allowPOS=('vn','n','v',)))
data = date1[1].apply(mycut)
m = {}
lis = []
for item in data:
    # item = list(item)

    item = item.split(' ')
    for i in item:
        if i not in m.keys():
            m[i] = 1
        else :
            m[i] = m[i]+1      #统计词频
for i in range(0,len(m.values())):
    if list(m.values())[i]>10:   #筛选出词频大于5的词作为候选词
        lis.append(list(m.keys())[i])
print(lis)
test = ['像素','拍照','电池','屏幕','音质','性价比','性能','外观'] #选取好评中心种子

'''
进行第三步筛选,采用互信息进行筛选,通过计算一二步筛选出的候选属性词与
中心种子的相关程度,进一步过滤掉噪声,这一步完成后基本将属性词筛选的差不多了,
其准确度也还行.
得出筛选的结果进行方法一或方法二进行抽取<属性词,形容词,副词>词对
'''
date2 = pda.read_table('不是属性词表.txt',header=None)
#print(list(date2[0]))
li
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值