在PyCharm中运行《开心麻花影视作品分析》即可进入如图1所示的系统主界面。在该界面中,选择要分析的电影名称,然后单击“分析”按钮即可。\
具体的操作步骤如下:
(1)分析电影功能。保存当前计算机处于联网状态,然后在“选择电影”下拉列表中,选择要分析的电影名称(如夏洛特烦恼),再单击“分析”按钮,将进行在线爬取相关的评价并分析(此处需要耐心等待一段时间),分析完成后,将显示如图2所示的界面。
(2)查看评论数及平均分。在图2中,单击“主要城市评论数及平均分”右侧的“查看”按钮,将打开如图3所示的图表显示分析结果。
(3)查看评论词云图。在图2中,单击“词云”右侧的“查看”按钮,将打开如图4所示的词云图。
(4)查看评论分布热力图。在图2中,单击“热力图”右侧的“查看”按钮,将打开如图4所示的热力图。
部分源码如下,其余完整详见下载。
import pandas as pd from pyecharts import Geo,Line,Bar from pyecharts import Overlap import jieba from wordcloud import WordCloud, ImageColorGenerator import matplotlib.pyplot as plt import sys from os import path import urllib.request import collections import json import os import imageio import re # 显示热力图,主要城市评论数_平均分页面 class MainWindows(QMainWindow): def __init__(self): super(QMainWindow,self).__init__() self.setGeometry(200, 200, 1250, 650) self.browser = QWebEngineView() def kk(self,title,hurl): self.setWindowTitle(title) url = d+'/'+hurl self.browser.load(QUrl(url)) self.setCentralWidget(self.browser) # 主窗体 class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(382, 206) self.horizontalLayoutWidget = QtWidgets.QWidget(Form) self.horizontalLayoutWidget.setGeometry(QtCore.QRect(70, 20, 251, 51)) self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.label = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label.setAlignment(QtCore.Qt.AlignCenter) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) self.comboBox = QtWidgets.QComboBox(self.horizontalLayoutWidget) self.comboBox.setDuplicatesEnabled(False) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.horizontalLayout.addWidget(self.comboBox) self.pushButton = QtWidgets.QPushButton(self.horizontalLayoutWidget) self.pushButton.setObjectName("pushButton") self.horizontalLayout.addWidget(self.pushButton) self.verticalLayoutWidget = QtWidgets.QWidget(Form) self.verticalLayoutWidget.setGeometry(QtCore.QRect(80, 80, 235, 89)) self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout_2 = QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(self.verticalLayoutWidget) self.label_2.setAlignment(QtCore.Qt.AlignCenter) self.label_2.setObjectName("label_2")