import csv
from snownlp import SnowNLP
data = []
# 读取 CSV(GBK)
with open('step1/comment.csv', 'r', encoding='GBK') as f:
reader = csv.reader(f)
next(reader)
for row in reader:
label = str(int(row[0])) # 转成 '0' / '1'
review = row[1].strip()
sentiment = SnowNLP(review).sentiments
data.append([label, review, sentiment])
command = input().strip()
# 正面评论
if command == '正面评论':
item = sorted(data, key=lambda x: x[2], reverse=True)[0]
print([item[0], f'"{item[1]}"', item[2]])
# 负面评论
elif command == '负面评论':
item = sorted(data, key=lambda x: x[2])[0]
print([item[0], f'"{item[1]}"', item[2]])
# 冲突评论
elif command == '冲突评论':
conflict_pos = [] # label=1 但 sentiment<0.5
conflict_neg = [] # label=0 但 sentiment>=0.5
for label, review, sentiment in data:
if label == '1' and sentiment < 0.5:
conflict_pos.append([label, review, sentiment])
elif label == '0' and sentiment >= 0.5:
conflict_neg.append([label, review, sentiment])
conflict_pos.sort(key=lambda x: x[2])
conflict_neg.sort(key=lambda x: x[2])
for label, review, sentiment in conflict_pos + conflict_neg:
print([label, f'"{review}"', sentiment])
# 评论分析
elif command == '评论分析':
pos = 0
neg = 0
for _, _, sentiment in data:
if sentiment >= 0.5:
pos += 1
else:
neg += 1
print(f"正面评论:{pos}条")
print(f"负面评论:{neg}条")
修改代码 使得输入冲突评论时输出['1', '"服度很好.不管是前是後勤人,均很情,以待人;事效率高.包括登入住,,客房服等;工作尚有不足.如容易被忽的床管老化等,建酒店方面可以定期修,等到客反,就稍被了.祝程旅行及庭酒店越越好!"', 0.00036452629552274907]
['1', '"我在6月19-21号又入住了该酒店,还是一副老样子,问前台能否换楼尘老是回答要等半小时,不知为何?望酒店在各方方面面有待提高!"', 0.0008121509824536854]
['1', '距离火车站非常近,走路5分钟就能到,在市中心,去哪个地方,交通都比较方便。入住比较晚,晚上10点钟左右,想订餐被告知下班了,想到宾馆小卖部买点方便面,没想到也关门,这一点不太方便。房间还行。', 0.002652099778034489]
['1', '"优点:酒店位置挺好,服务生态度很好,早餐很好缺点:房间居然不能上网,酒店工程师说是swtich坏掉了,从下午到晚上11点都没有修好,失望。。。第二天早上居然还要跟我收网费,天啊,我一分钟上网都没用到...总的来说在香港这个价位住到的酒店应该算很不错的了"', 0.0034845609509304154]
['1', '位置、设施都不错,价格也还可以,就是隔音太差了,被隔壁吵了一晚上', 0.03347265239191355]
['1', '酒店还是非常的不错,我预定的是套间,服务非常好,随叫随到,结帐非常快。顺便提一句,中餐很差。', 0.12541148960122617]
['1', '早餐非常不错。房间条件还好,就是电视太小。周围非常方便。赶上八点半结账,等了超过十分钟。', 0.20935638048244598]
['1', '去住了四晚,总体感觉不错,首先位置好,离油麻地地铁B2出口很近,步行最多三分钟。其次服务好,我说的普通话,没发现有什么歧视之类的,有天我们不打算打扫房间,估计是主管之类的还专门跑到房间来敲门问一会还需要打扫卫生吗;打扫卫生的阿姨也很热情,对我们说早上好;门卫也热情,对我们微笑,害得我妈高兴一天:)。第三房间比想象的好,不算太小,但很干净,也很安静,先前还说住重庆大厦,后来去看了下完全要不得,幸亏没去。第四价格还不错吧,在携程定的,四晚2266元,押金500元。下次去还住那里吧:))', 0.21880607541043173]
['1', '前台的服务很不错,快捷、周到、让人感觉很好。房间环境还可以,就是床垫太差,躺在上面能感觉到弹簧,该换了。', 0.37067241062266776]
['1', '"酒店位置不错,不过靠近马路有点吵闹,因为窗户不是双层的服务员比较热情,当时要一个电热壶很快就送到房间里了建议酒店注意枕套的干净程度"', 0.4226389981291292]
['0', '我去年的时候去过该酒店,那时候住的是高级房,就是不让抽烟,其余感觉一般,比学校的老宿舍要强。', 0.8745810372887357]
['0', '很好,顶级,太棒了,很棒(为了免费餐券,我随便写的)房间设施还可以,但酒店内非常的冷,冬天不推荐入住。夏天应该住的很舒服。', 0.974213881413997]