Python语言解决用户评论标签匹配

我们观察用户评论发现:属性词往往和情感词伴随出现,原因是用户通常会在描述属性时表达情感,属性是情感表达的对象。还发现:属性词和专用情感词基本都是名词或形容词(形谓词)。

算法流程图如下:



评论数据如下:



代码如下:

#encoding=utf-8

#############################
#
#   功能:给定一些中文的产品评论,希望从中找到评价对象及评价词。
#
#   @author:licl
#
##############################

fdata = open('JD_DFB_comments_out.txt','r')
Output = open('Pattern_Result.txt','a')

try:
    data = fdata.readlines()
    
    listline = []
    
    
    for line in data:
        
        listline = line.replace(" ","/")
        listline = listline.split("/")
        
        i = 1
        
        while i < len(listline):
            
            if listline[i] != "名词":
                
                i = i+2
                
            else:
                
                new_list = ["","",""]
                new_list[0] = listline[i-1]
                
                a = i-1
                i = i+2
                
                while i < len(listline):               
                    
                    if listline[i] == "标点":
                        
                        i = i+2
                        break
                    
                    else:
                        
                        if listline[i-1]=='不' or listline[i-1]=='不怎么样' or listline[i-1]=='不怎么' or listline[i-1]=='不太':
                            
                            new_list[1] = listline[i-1]
                            
                        if listline[i] == "形容词" or listline[i] == "形谓词":
                        
                            new_list[1] += listline[i-1]
                            
                            b = i-1
                            
                            t = (b-a)/2
                            
                            new_list[2] = str(t)
                        
                            for line in new_list:
                                
                                Output.write(line + " ")
                                
                            Output.write("\n")   
                            break
                        
                        else:
                    
                            i = i+2
            
except:
    
    print "‘文件不存在’或者‘文件无法打开’"
        
finally:  
    
    fdata.close()
    Output.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值