python文本情感分析:SnowNLP的应用---案例

想法:一直以来,我曾今想过,我们的出来的商业评论如何确定和判断他的情感因素?如何根据文本来将某条记录打上对应的标签,仅仅靠一个分类??

安装:https://pypi.org/project/snownlp/0.12.3/#files  下载完可安装

1.pip install snownlp==0.12.3
2.python setup.py install

from snownlp import SnowNLP
s = SnowNLP(u'曾经有一份真诚的爱情放在我面前,我没有珍惜,等我失去的时候我才后悔莫及,人世间最痛苦的事莫过于此。如果上天能够给我一个再来一次的机会,我会对那个女孩子说三个字:我爱你。如果非要在这份爱上加上一个期限,我希望是……一万年!')
s.words
print (s.words) #分词
print (s.pinyin) #转拼音
print (s.sentiments)#情感系数
print (s.keywords(4))#关键词提取
print (s.summary(3))#自动文摘
print ("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
print (s.sentences) #句子切分



案例:
import pandas as pd
from snownlp import sentiment
from snownlp import SnowNLP   # 情感分析包,可以自己建立对应的模型

def type_class(text):
    if text > 0.8:
        text = '好评'
    elif text >0.5:
        text = '中评'
    else:
        text= "差评"
    return text

#抓取的评论数或者内容进行打标签
path = r"C:\Users\lihwa11\Desktop\2019-09-12\comment.xlsx"
#读取内容
df = pd.read_excel(path)
#应用文本分析
df['score'] = df['comment'].apply(lambda x: SnowNLP(x).sentiments)
#根据评分,调用
df['type'] = df['score'].apply(lambda x: type_class(x))
df

python文本情感分析:SnowNLP的应用---案例_第1张图片

 

#从txt文档中读取评论
with open("tbpl_test.txt",'r') as f:
    text = f.readlines()
#print(text)
data = []
for i in text:
    pl = SnowNLP(i)
    score = pl.sentiments
    data.append([i,score])

#把评论和得到的情感分数写入CSV文件夹中
with open("sentiscore.csv","w",newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['comment','sentiscore'])
    for k in data:
        writer.writerow(k)


时间字段处理
如果你文件里时间列的时间格式包含了日期和时间 如2017-06-04-14:13:00,则恭喜你pandas会自动识别时间格式。
假如你文件里时间列的时间格式只精确到日期 如2017-06-04,那么你将需要对该字符串进行特殊处理,也许你需要如下方法:

from dateutil import parser
df['date'] = df.date.apply(parse.parse)




或者
paat = r"C:\Users\lihwa11\Desktop\2019-09-12\1.txt"
#file = open(paat,encoding='gb18030',errors='ignore')
file = open(paat,encoding='utf-8',errors='ignore')
while True:
    line = file.readline()
    print(line)
    s = SnowNLP(lines.decode('utf-8'))
    print(s)

 

你可能感兴趣的:(数据处理)