更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
设计一个电商平台商品评论情感分析系统,为了提高用户对电商平台的满意度,现推出商品评论情感分析功能。你需要通过网络爬虫爬取电商平台网站,获取到商品评论信息,并且进行相关的数据清洗后,使用TensorFlow构建情感分析模型,轻松实现商品评论情感分析功能。本任务的考核指标为网页爬取、数据预处理的完成率(代码完成情况、数据爬取和预处理结果)以及情感分析模型的准确率。

#TODO 导入相关的库

import re 

import jieba

import numpy as np

from PIL import Image

from collections import Counter

from wordcloud import WordCloud

from matplotlib import pyplot as plt

 

#TODO 将"comments.txt"文件内容作为语料,选择用于分析文本文件的方法载入语料,并输出文本内容。

corpus_root = r"D:/赛位号/"

file_pattern = r"赛位号_comments.txt"

file_path = corpus_root + r"赛位号_comments.txt"

with open(file_path, 'r', encoding='gbk') as file:

    wordlists = file.read()

print(wordlists)

 

#Todo 将语料内容赋值,匹配字符串后进行内容替换,从而完成数据清洗操作,输出数据清洗结果,要求:清洗掉除汉字以外的字符。

pattern = re.compile(r'[^\u4e00-\u9fa5]') 

#(1)

 

print('数据清洗结果>>>>>>>')

print(cleandata)

cleandata = cleandata.replace('\n','').replace('\r','')

 

#TODO 采用 jieba 对清洗后的数据进行分词,并输出分词结果。

#(2)

 

print("中文分词结果>>>>>>") 

print('/'.join(seg_list))

 

#Todo 统计分词后的词频,选取词频最高的50个词绘制、展示并保存词云图,要求:云图背景为白色,背景图片为 product_bg.png,字体为 simhei.ttf,

counter = Counter(seg_list)

most_common_50 = counter.most_common(50) 

img = Image.open(corpus_root+r'/product_bg.png') #打开图片

#(3)

 

#将图片装换为数组

font = r'C:\Windows\Fonts\simhei.ttf' #电脑自带的字体

wc = WordCloud(

    background_color='white',  

    width=1200, 

    height=1200,

    mask=img_array, #设置背景图片

    font_path=font,

)

#(4)

 

#绘制图片

plt.figure(figsize=(12,12))

plt.imshow(wc) 

plt.axis('off')

plt.show() #显示图片

wc.to_file(corpus_root+r'/cloud_product.jpg') #保存图片

 

请将(1)(2)(3)(4)空白处代码补充完整。

设计一个电影评论情感分析系统,为了提高用户对电影平台的使用体验,现推出电影评论情感自动分析功能。你需要通过网络爬虫爬取电影评论网站,获取到电影评论文本数据,并且进行相关的数据清洗后,使用scikit-learn构建情感分析模型,轻松实现电影评论情感自动分析功能。本任务的考核指标为网页爬取、数据预处理的完成率(代码完成情况、数据爬取和预处理结果)以及情感分析模型的准确率。

 

#TODO 导入相关的库

import re

import jieba

import numpy as np

import pandas as pd

from sklearn.feature_extraction.text import TfidfVectorizer

from sklearn.linear_model import LogisticRegression

from sklearn.model_selection import train_test_split

from sklearn.metrics import classification_report

 

#TODO 读取"movie_reviews.csv"文件内容作为数据集,选择用于分析文本文件的方法载入数据,并输出数据内容。

# 注:文件的具体路径需根据实际情况进行修改

corpus_root = r"D:/赛位号/"

file_path = corpus_root + r"赛位号_movie_reviews.csv"

(1)

 

print(df.head())

 

#Todo 将数据集中的"review"列内容赋值,匹配字符串后进行内容替换,从而完成数据清洗操作,输出数据清洗结果,要求:清洗掉除汉字以外的字符。

pattern = re.compile(r'[^\u4e00-\u9fa5]')

def clean_text(text):

(2)

 

    return cleaned

 

df['clean_review'] = df['review'].apply(clean_text)    

print('数据清洗结果>>>>>>>')

print(df['clean_review'].head())

 

#TODO 采用 jieba 对清洗后的数据进行分词,并将分词结果用空格连接成字符串,赋值给新列"review_seg"。

def seg_text(text):

(3)

 

    return ' '.join(seg_list)

 

df['review_seg'] = df['clean_review'].apply(seg_text)

print("中文分词结果>>>>>>")    

print(df['review_seg'].head())

 

#Todo 将数据集拆分为训练集和测试集,使用逻辑回归算法构建电影评论情感分析模型并输出分类报告。要求:分词后的"review_seg"列作为特征,"sentiment"列作为目标变量,测试集大小为20%,随机种子为123。

X_train, X_test, y_train, y_test = train_test_split(df['review_seg'], df['sentiment'], test_size=0.2, random_state=123)

vectorizer = TfidfVectorizer(max_features=5000)

X_train_vec = vectorizer.fit_transform(X_train)

X_test_vec = vectorizer.transform(X_test)

clf = LogisticRegression()

(4)

 

y_pred = clf.predict(X_test_vec)

print("电影评论情感分析报告>>>>>>")

print(classification_report(y_test, y_pred))

 

请将(1)(2)(3)(4)空白处代码补充完整。

1 2