FilmVisualization | 豆瓣电影评论可视化 摘要

 by   datamaning HTML Version: Current License: No License

kandi X-RAY | FilmVisualization Summary

kandi X-RAY | FilmVisualization Summary

FilmVisualization is a HTML library. FilmVisualization has no bugs, it has no vulnerabilities and it has low support. You can download it from GitHub.

豆瓣电影评论可视化 摘要 电影,作为一种深受人们喜爱的视听艺术,在近十几年来发展迅猛,成为了一种主流的休闲和娱乐方式。本文以豆瓣电影网站为研究目标,通过网络爬虫进行爬取的数据获取方式获得了部分豆瓣电影中的热门电影、活跃用户以及相关评分影评数据。我们根据爬取的数据,对每位用户观看电影的类型、地区以及年份内容进行分析与可视化。在用户和电影的关系之外,我们还研究了用户与用户的关系,并对用户进行了简单的电影推荐。此外,我们还对用户影评的文本信息进行了情感分析。虽然本文中只使用了豆瓣电影中的小部分数据,得到的结果可能并不完全准确,但也可以反映大体的趋势,可以作为真实结果的一个参考。 关键词 豆瓣电影;可视化;D3. 首先,对于电影数据,我们期望选取豆瓣电影中的不同类型、不同地区和不同地区的具有代表性的电影作品。对于代表性,什么样的电影具有代表性?由于本文不仅仅只是分析电影的内容数据,还需要将电影的内容与用户的交互行为相结合,得到用户对于电影的兴趣爱好变化以及对影评内容分析。因此,这里的代表性,不仅仅指的是电影的精彩程度、票房数量等指标,而且包含了豆瓣电影社区中用户对于该电影的关注程度。 为了进一步分析用户的行为,每部电影都应该具有一定数量的用户评分、短评以及影评基础,这样才能够正确的进行分析而不会因为样本太少产生偏差。 下面对文中的数据获取方法进行详细的讲解。我们对数据的爬取主要分为一下三个步骤: (1)获取各个时期的具有代表性的电影 在该步骤中,我们首先对豆瓣电影中的电影进行筛选。这里主要是根据电影评分、用户短评数量、用户评论数量等定量指标来进行筛选的。除此之外,我们还对不同时间段的电影进行挑选,以满足每个时间段中都包含一定数量的电影。 (2)获取选取电影中具有代表性的用户 代表性用户的选择基于选出的代表性电影。对于第一步中选择的每一部电影,我们分析并获取对电影具有评分或评价的用户列表。这样,对于每一部电影,我们都得到一个用户的列表,通过将所有电影的用户列表进行整合,我们得到了一个所有用户的活跃度列表。根据该用户活跃度列表,我们选择适量的用户进行分析。 (3)获取选取电影的影评数据 在获取选取电影评论数据的过程中,我们需要保证电影是在第一步中的选取电影列表中,同时影评的用户在第二步中的用户列表中。由于每部电影的影评数据量较大,可以考虑对其进行筛选。 在数据的获取过程中,最理想的状况是获取豆瓣电影中的所有电影以及用户数据,并以此获得所有的用户评论数据。这样便能够毫无误差的对于这些数据进行基于电影以及基于用户的分析,符合大数据时代的数据分析特点。但是,由于人力、时间、数据获取途径等诸多因素的限制,我们并不能够获得上述理想数据集。 在进行电影筛选时,我们最初使用人工的手动选择。该方法具有很强的局限性,需要大量的人力,并且耗时较长。在对手动挑选的电影数据进行分析后,我们发现:满足我们挑选条件的电影都是豆瓣评分较高的热门电影。据此,我们直接选取了豆瓣电影TOP250作为数据集的一部分。 在获取代表性用户的过程中,我们发现每部电影的评价和评论人数都是极为庞大的。例如 1994 年电影肖申克的救赎,其中包含了 62 万多人的评论,14 万余条短评数据以及 3391条的影评数据。为了简化数据获取难度,我们只对影评用户进行筛选,最终获得了前 100名活跃用户。 3. 数据处理 在获取到豆瓣电影的部分数据后,我们对这些数据进行了加工和处理,以方便之后的分析以及可视化。 3.1 电影类别划分 首先,获取的数据包含了上映时间、类别、国家地区、用户、评分、影评等信息。在经过观察后,我们发现,数据中的类别和国家地区信息包含了太多不同的属性,这导致了很多类别中只包含一部甚至不包含相关的电影,这给之后的可视化产生了一定的影响,为此,我们将主要的类别进行筛选,使得类别的数量在一个合适的范围。 首先,对于电影类型,我们选取了剧情、爱情、喜剧、犯罪、冒险、奇幻、动作、动画、悬疑、家庭、惊悚、科幻和战争总共13个类型。这样,每部电影都包含了其中一个或多个类型标签,不包含在类型中用其他类型表示。 对于国家和地区属性,我们采用相同的方法。我们使用了数据集中包含的几个常见国家或地区:美国、英国、法国、日本、香港、德国、中国大陆、意大利、韩国。其余地区的电影被划分为其他类型。 对于电影的年代属性,我们一共设了9个类型,1930s到2010s。 经过分类后,数据中包含的信息更加紧密,同时也为之后的分类显示以及相似度计算提供了方便。 3.2 情感分析 在情感分析过程中,我们通过词典构造与统计方法相结合的情感词选择方法,解决了计算复杂度高,通常没有考虑种子词的强度两个问题。 我们使用的影评数据共有3525条,通过构建字典,以及使用结巴分词工具,我们统计了3525条影评中出现频率高的词语,并过滤掉了一些介词,标点符号等,我们留下了其中词频最高的1000个词并按照从词频从达到小排列出来,最后通过人工的筛选出情感词。 我们使用词库里的情感词用来遍历所有的影评数据,对每条影评都统计影评中情感词语出现的个数程度。最终,我们得到了所有用户影评的感性理性分类信息,为之后的情感可视化提供了数据基础。 4. 可视化交互方案设计和效果 在获取数据并对数据进行处理之后,便进入了可视化与交互方案设计这一核心环节。在该环节中,我们根据可视化目标,设计了三个可视化任务,分别展示所有用户之间的关系,用户与其邻居关系的可视化和用户信息可视化。. 图2系统界面设计 我们设计的系统界面如图2所示,共四个区域。用红线框标注的区域(区域1)为控制面板,用来决定载入的用户数据数量,决定用户邻居个数,决定电影展示依据的属性以及根据列表选择相应的用户;黑框标注的区域(区域2)为所有用户关系的可视化结果;蓝框标注的区域(区域3)为用户及其邻居关系的可视化结果;绿框标注的区域(区域4)为用户信息的可视化效果。下面对每个部分一一进行详细介绍。 4.1 控制面板 使用系统时,首先需要载入数据。在选择好用户数量(范围为10到100)后,点击load data按钮便开始了可视化任务。在选择好邻居数量(范围为1到20)并点击neighbor num按钮后便决定了用户邻居数量。下拉列表框用于选择电影属性,系统将根据此属性分类展示电影。电影属性有三个,分别是类型、地区和年代。User List列表框展示了载入的所有用户的id和其看过的电影数量。点击其中的某个用户后,区域2中会用红色标明表示此用户的节点,其他区域也会自动对此用户的信息进行可视化。 4.2 用户关系可视化 对于不同的用户,我们可以根据他们对共同看过的电影的评分相似程度决定用户之间联系的紧密程度。每个用户可以看做是一个节点,用户与用户之间的联系可以看做是两个节点之间的边。用户的关系可以被抽象为一个图模型,可以通过图模型可视化的方法来进行展示。 经过小组的讨论和分析,最终系统中通过力导向图来表示用户之间的关系(图4)。. 图3用户关系可视化:(a)30位用户关系力导向图;(b)鼠标停留在红色节点上时力导向图显示; 在该力导向图中,用户通过节点进行表示,节点的大小体现出该用户观看电影数量的多少,;节点颜色与用户无关,只用于对用户加以区分,特别的,我们会将选中的节点标记为红色。 用户之间的关系通过边来表示,边的粗细代表了用户之间紧密程度的大小,相似度越大的用户具有更粗的边。此外,节点之间的引力的大小也是取决于用户的相似度,这样使得相似性较大的用户对之间具有更小的距离。 在系统的力导向图中,我们还设计了相应的交互操作。首先,力导向图能够对节点进行拖拽操作,并且会在一定的时间后到达另一中稳态。此外,在没有鼠标停留时,力导向图中省略了用户之间相似性较小的边,只保留关键边(图3a),而再有鼠标停留时,用户会模糊的展现其余的边,同时显示出所有用户与鼠标停留用户之间的边(图3b)。 4.3 用户邻居关系可视化 在用户集合中选择某一用户后,系统会根据设定的邻居数量对其邻居关系进行可视化并基于此邻居集合为其推荐电影。 邻居选取的方法是选取前k(为邻居数量参数)个与此用户联系最紧密的用户。 首先用一个简单的力导向图展示用户与其邻居的关系。如图4所示。其中中间节点为选中的用户,其余节点为其邻居。边的粗细体现了用户与邻居关系的紧密程度。. 图4用户邻居关系可视化 随后是用户电影推荐。用户电影推荐是本次可视化任务的核心任务,在知道每个用户看过的电影,并根据用户关系得到指定用户的邻居后,便可根据邻居看过的电影与指定用户看过电影进行筛选,选取指定用户未看过的电影向其进行推荐。 在推荐之前, 我们首先对这些用户之间两两的相似性进行了可视化显示。在系统中,这是通过弦图的方式实现的(图5)。在该可视化方案中,每一段弧表示一个用户,弦长表示该用户看过电影的数量,弦长与该用户观看电影数量成正比,弧的颜色表示对用户的区分。 由图5a可以看出,每两个用户之间都存在一个条带相连,宽度体现了这两位用户共同看过的电影的数量占各自看过的电影数量的比例。. (a) (b) 图5 推荐用户与其相似用户相似度可视化:(a)用户两辆之间相似度显示;(b)选择其中一个用户时显示效果 此外我们在弦图中加入了交互的操作,用户可以通过鼠标选择一个用户来观看该用户与其余用户之间的相似性大小,而忽略其他用户之间的条带(图5b)。 最终,我们使用树图(图6)来对电影推荐进行可视化。此时可根据控制面板中的下拉列表框选择推荐电影展示依据的属性。电影推荐机制如下: 在炫图上,不选择邻居用户或选择指定用户时,推荐的电影为有一半以上的邻居看过而指定用户没看过的所有电影;选择邻居用户时,推荐的电影为此邻居看过而指定用户没看过的所有电影。. (a) (b) 图6推荐电影可视化:(a)展示所有推荐的电影的分类; (b)点击某子类后展示这一类的所有电影. 4.4 用户信息可视化 在选择指定用户后或者在图4所示图中选择某个邻居后,便会在此区域内可视化被选中用户看过的电影信息以及其性格特征。 我们仍用树图的可视化形式来对用户观看的电影进行动态的显示,并可根据电影类型、上映地区以及上映年代三个标准对电影进行展示,如图7所示。. (a) (b) 图7 用户看过电影的树图可视化:(a)用户看过的电影的所有分类;(b)其中一个分类中的电影 此外,我们使用饼图对以上分类的比例进行了可视化,并使用列表显示所有观看过的电影(图8)。 在用户性格分析部分,我们依据用户影评文本信息,通过数据处理,得到每个用户做出评论的感性敏感词数量的平均值,并用颜色条可视化范式进行可视化,如图9所示。颜色条越长表示用户越感性,越短表示用户越理性。此外我们还加入了颜色编码,红色表示感性,蓝色表示理性。. (a) (b) 图8 用户看过电影饼图与列表可视化.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              FilmVisualization has a low active ecosystem.
              It has 8 star(s) with 6 fork(s). There are 1 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              FilmVisualization has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of FilmVisualization is current.

            kandi-Quality Quality

              FilmVisualization has no bugs reported.

            kandi-Security Security

              FilmVisualization has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              FilmVisualization does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              FilmVisualization releases are not available. You will need to build from source code and install.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of FilmVisualization
            Get all kandi verified functions for this library.

            FilmVisualization Key Features

            No Key Features are available at this moment for FilmVisualization.

            FilmVisualization Examples and Code Snippets

            No Code Snippets are available at this moment for FilmVisualization.

            Community Discussions

            No Community Discussions are available at this moment for FilmVisualization.Refer to stack overflow page for discussions.

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install FilmVisualization

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/datamaning/FilmVisualization.git

          • CLI

            gh repo clone datamaning/FilmVisualization

          • sshUrl

            git@github.com:datamaning/FilmVisualization.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link