一. 项目目的 掌握列表、集合和字典等数据结构的使用 掌握SQLite数据库操作和简单SQL语句 掌握Web
A.关系数据库优化
B.数据字典
C.关系数据库规范化理论
D.关系数据库查询
A.关系数据库优化
B.数据字典
C.关系数据库规范化理论
D.关系数据库查询
A.数据库定义
B.数据通信
C.数据定义
D.数据维护
问题描述 近年来,越来越多的用户愿意在各种网络平台上分享自己对于某些事物的看法,这些个人观点通常都带有一定的感情色彩,这种感情色彩通常代表着该用于对于该事物的褒贬程度。这里我们以电影评价为例,如果一个用户在电影评论网站对某个电影做出积极(positive)的评价,那么代表着这个用户对该电影的认可,反之则代表一种否认。而通过分析这种情感色彩,我们可以很容易地知道一部电影的精彩程度或其在大众心中的口碑。 在本问题中,我们选取了英文影评10000句,其中积极评价与消极评价各5000句。希望同学通过这10000句语料,利用机器学习算法(可以不限于下文中提到的算法),得到一个能够较为准确地判断一句英文影评是积极的还是消极的模型。输入 若干行,每行一句未在给出的10000句话里出现过的句子输出 与输入相同的行数,每行一个整数。第i行的整数为1代表输入的第i句话为积极的情感色彩,-1表示其为消极的情感色彩,其余输出非法。实验评价 实验评价由两方面组成,第一方面为你最后提交的程序通过测试得到的准确性。第二方面为代码实现情况。数据集描述 数据集内一共有三个文件,分别为rt-polarity.neg, rt-polarity.pos, rt-polarity.test。所有影评中的标点均可直接被看做一个单词(即标点与单词之间,单词与单词,标点与标点之间都用空格隔开)。其中rt-polarity.neg, rt-polarity.pos各有5000句影评rt-polarity.neg保存的为负面评价的影评,rt-polarity.pos为正面评价的影评。rt-polarity.test中保存了若干句没有分析正负面评价的影评,需要你对这若干句影评进行正负面评价的分析。作业提交 作业提交为多个文件的压缩包,其中需要包含的文件有:源代码,针对rt-polarity.test分析正负面评价的输出结果(输出文件文件名:rt-polarity.output)。 压缩包命名为:学号-姓名-rt-polarity.zip。附录——机器学习相关介绍 请注意,我们希望同学们利用更加先进的机器学习算法,这里的候选算法只是为对这个领域不太了解的同学提供一个导向性的帮助。 在完成某些复杂算法时,同学们可以合理地利用一些Python库完成功能,但是需要事先与助教沟通。 K临近算法及其在情感极性分析中的运用简介 对于情感极性分析,我们首先需要找到一种将一句话转化为一种可计算的实体的方法。最为简单的方法如下所述: 假设所有的话的不同词语加起来总共只有n个,那我们可以将一句话转化为一个n维的向量。第i位表达的信息是这个第i位代表的词在整句话中出现的比例。 假设词语一共有“I”、“am” 、“is”、“have”、“an” 、“a” 、“dream”、“.”(注意“.”也被看做了一个词语)那么我们可以认为所有利用这些词语造出来的句子都可以被表达为一个8维的向量,其中第一维表示“I”在句子中出现的比例、第二维表示“am”在句子中出现的比例,……依次类推。 比如句子“I have a dream .”其转化后的8维向量为: 通过这样的转化,我们就将一句话转化为了一个高维向量。对于语料中的m句话,我们均可以通过这样的转化将其转化为m个向量。 接下来考虑新给出一句话,如何判断其极性。同样地,首先将给出的这句话转化为一个向量,接下来我们可以直接衡量出这个向量与原先给出的m个向量之间的直线距离。我们取所有距离中前K小的向量(K为一个预设定的参数),统计这K个向量中是占多数的是积极的向量还是消极的向量,然后直接认为给定的话的极性为占多数的极性改进 我们注意到,由上文构造出来的向量受到了一些出现频率较高的,但是没有实际表达情感意义的词语影响,如、“I”、“am” 、“is”等。这导致计算向量距离时,很大一部分距离被用在计算这样无意义的词语上。对此,我们可以为每一个词语新增一个权重,表示这个词语的重要性。这个方法叫做“逆文本频率指数”(IDF)。 假设这个词语为w,一共在句话中出现,那么我们认为越大,应给w赋予的权重越小。具体的,w的权重为。其中D表示一共有多少句话。 这样的权重表达了我们更加看重一些出现频率较小的词语而不是出现频率较大且无意义的词语。 最后,我们可以把初始的方法得到的向量每一位依次乘以每个词语的权重,得到每句话最终的表示向量。 如何自己评价自己的模型 大家在对自己的数据进行处理时,可以将整体的数据划分为3个部分,分别叫做训练集、开发集、和测试集。 训练集为对模型进行训练的数据集合,在K临近算法中为预先输入给程序的m句已知极性的话。 使用训练集进行计算得到模型后,依次将开发集的数据输入模型,可以得到一个准确率。这个时候利用这个准确率,调节超参数。在K临近中,则是调节K的大小。 最后模型的性能可以利用从未使用过的测试集依次输入模型,得到准确率。这时这个准确率是对模型一个较好的评价。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!