中文情感词典构建与文本标记之二分类

词典构建

一直想使用的台湾大学(NTSUSD)简体中文情感极性词典基本上都是CSDN和数据堂,找不到免费资源,于是先找一下其他资源。
寻找过程中找到了Python的Synonyms库,可以用来来获取同义词,或许以后会用到?不过测试后发现准确率显示挺低的。
找到了HowNet的中英数据集,准备尝试构筑词典。构筑结果如下:

#coding='utf-8'
filename1='正面评价词语(中文).txt'

comment_pos=[]
with open(filename1,'r') as f1:
    lines=f1.readlines()
    for i in range(2,len(lines)):
        line=lines[i][:-2]
        comment_pos.append(line)

#类似的样板copy/paste了四次,对情感/评价和正面/负面进行了不同提取(准备合并为一个函数)  

文本标记

使用csv模块读取原csv文件,jieba进行分词,然后二者取交集,将结果写回到新文件。

temps=[]
with open('ipad_dataset.csv','r') as raw:
    lines=raw.readlines()
    with open('ipad_dataset_word.csv','w+',newline='') as labelled:
        writer=csv.writer(labelled)
        for i in range(0,len(lines)):
            temp=set(jieba.lcut(lines[i][:-1])) & set(comment_pos)
            if(0!=len(temp)):
                temps.append(temp)
                writer.writerow([';'.join(temp)+';',''])
            else:
                writer.writerow('')
    with open('ipad_dataset_sentiment.csv','w+',newline='') as labelled:
        writer=csv.writer(labelled)
        for i in range(0,len(lines)):
            temp=set(jieba.lcut(lines[i][:-1])) & set(comment_pos)
            if(0!=len(temp)):
                rowTemp=''
                for i in temp:
                    rowTemp+='1;'
                writer.writerow([rowTemp,''])
            else:
                writer.writerow('')

#temps仅用于测试  

但是效果非常差,原因一方面在于本文时对ipad的评论,但很多人将对象引到了国产手机、苹果、淘宝等等上面,极性不好;另一方面我感觉是我使用的这款字典太过于正规,导致很多当代网络用语未被包含、反而“是”“和”等词语被当成了正向词语进行筛选。

接下来我先尝试下多个Py文件的联合使用,再将“建词典”“标注文本”二者函数化、接口化一下。

-------------本文结束感谢您的阅读-------------
想看点儿什么?客官请说~