收藏 分享(赏)

基于内容的微博推荐系统.doc

上传人:wo7103235 文档编号:6570600 上传时间:2019-04-17 格式:DOC 页数:36 大小:1,012.50KB
下载 相关 举报
基于内容的微博推荐系统.doc_第1页
第1页 / 共36页
基于内容的微博推荐系统.doc_第2页
第2页 / 共36页
基于内容的微博推荐系统.doc_第3页
第3页 / 共36页
基于内容的微博推荐系统.doc_第4页
第4页 / 共36页
基于内容的微博推荐系统.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、哈尔滨工业大学本科毕业设计(论文)- I -摘 要随着互联网的高速发展,人们逐渐走入了信息过载时代,大量有用的、无用的信息充斥在互联网的各个角落,而用户的需求并不是任何时候都很明确传统的分类目录和搜索引擎并不能满足需求,一些科学家和工程师提出了联系用户和物品解决信息过载问题的推荐系统。目前推荐系统已经广泛运用与互联网中,在微博平台上也有基于好友关系的推荐、基于用户个人信息的推荐而基于微博信息本身微博内容的推荐却很少见到。本文在 win7 操作系统下使用C#作为开发语言、使用 Microsoft Visual Studio 2010 作为开发工具,通过开发一款以基于内容的微博推荐为特色的新浪微博

2、客户端来研究基于内容的微博推荐系统能否在微博平台上使用。系统通过对微博信息的分词、分类等操作获取每条微博信息的类别信息并以此为依据获取用户兴趣和做出推荐。关键词:推荐系统;微博;基于内容; 哈尔滨工业大学本科毕业设计(论文)- II -AbstractWith the rapid development of Internet, people gradually get into the era of information overload.A large number of useful, useless information filled every corner of the Int

3、ernet.But the needs of users at any time is not very clear traditional classification directories and search engines can not meet needs.Some scientists and engineers put forward a recommendation system to contact user and solve the problem of information overload.Non the Weibo platform is based on t

4、he recommendation of a friend relationship, based on the recommendation of the users personal information based on the information itself Weibo the recommendation systems have been widely used in the Internet.(Weibo Recommended rarely seen content).In this paper, in order to develop a content-based

5、recommendations for the characteristics of Weibo .Sina Weibo client to research content-based Weibo Recommended system can use the Weibo platform.System through the Weibo information such as word segmentation, classification of operation for each post information access on the basis of the category

6、information and users interest and make recommendations.keywords: Recommended system; Weibo; based on the content;哈尔滨工业大学本科毕业设计(论文)- III -目 录摘 要 .IAbstract II第 1 章 概述 11.1 课题背景 .11.1.1 推荐系统使用现状 11.1.2 微博推荐研究现状 21.2 本文主要工作内容 .3第 2 章 微博推荐系统需求分析与系统总体设计 42.1 需求分析 .42.1.1 功能需求 42.1.2 性能需求 52.2 总体设计 .62.2

7、.1 系统架构设计方案 62.2.2 功能架构设计方案 62.3 开发环境和开发工具 .92.3.1 开发语言 92.3.2 开发工具 92.3.3 开发环境 92.4 本章小结 .9第 3 章 微博推荐系统详细设计 103.1 用户登录详细设计 .103.2 发表微博详细设计 .133.3 微博展示详细设计 .133.4 微博推荐详细设计 .153.4.1 数据库设计 163.4.2 类设计 163.4.3 微博推荐功能详细设计 203.5 小结 .23第 4 章 微博推荐系统实现和测试 254.1 系统登录实现和测试 .25哈尔滨工业大学本科毕业设计(论文)- IV -4.1.1 系统登录

8、实现 254.1.2 系统登录测试 264.2 系统主界面实现和测试 .264.2.1 系统主界面各功能测试 284.3 系统系能测试 .284.4 本章小结 .29结 论 30参考文献 31致 谢 32哈尔滨工业大学本科毕业设计(论文)- 1 -第 1 章 概述1.1 课题背景本课题来源于国家自然科学基金青年基金项目“基于社会化网络的信息推荐方法研究” 。作为项目的一部分本课题主要研究基于内容的推荐系统在新浪微博上的使用。1.1.1 推荐系统使用现状推荐系统是根据用户历史行为数据在海量的信息中为用户推荐出其感兴趣的信息,推荐系统的基本任务是联系用户和物品,解决信息过载问题。目前推荐系统已经广

9、泛应用于电子商务、电影和视频、音乐、社交网络、阅读、基于位置的服务、个性化邮件和广告等领域。推荐系统给这些领域带来了巨大了经济利益和极强的个性化体验。电子商务网站是个性化推荐系统的一大应用领域。著名的电子商务网站亚马逊是个性化推荐系统的积极应用者和推广者,被 RWW(读写网)称为“推荐系统之王” 。亚马逊的推荐系统深入到了其各类产品中,其中最主要的应用有个性化商品推荐列表和相关商品的推荐列表。个性化推荐列表采用了一种基于物品的推荐算法(item-based method) ,该算法给用户推荐那些和他们之前喜欢的物品相似的物品。除了个性化推荐列表,亚马逊另一个重要的推荐应用就是相关推荐列表。当你

10、在亚马逊购买一个商品时,它会在商品信息下面展示相关的商品。个性化推荐体统给亚马逊带来的商业价值和对亚马逊的意义:亚马逊的前科学家 Greg Linden 在他的博客里曾经说过,在他离开亚马逊的时候,亚马逊至少有 20%(之后的一篇博文则变更为 35%)的销售来自于推荐算法 3;其 CEO Jeff Bezos 在接受采访时曾经说过, 亚马逊 相对于其他电子商务网站的最大优势就在于个性化推荐系统,该系统让每个用户都能拥有一个自己的在线商店,并且能在商店中找到自己感兴趣的商品 4。在电影和视频网站中,个性化推荐系统也是一种重要的应用。它能够帮助用户在浩瀚的视频库中找到令他们感兴趣的视频。在该领域成

11、功使用推荐系统的一家公司就是 Netflix,它和 亚马逊是推荐系统领域最具代表性的两家公司。哈尔滨工业大学本科毕业设计(论文)- 2 -从 Netflix 的推荐理由来看,它们的算法和亚马逊的算法类似,也是基于物品的推荐算法,即给用户推荐和他们曾经喜欢的电影相似的电影。至于推荐系统在 Netflix 中起到的作用,Netflix 在宣传资料 5中宣称,有 60%的用户是通过其推荐系统找到自己感兴趣的电影和视频的。个性化推荐系统在个性化音乐网络电台中的应用。目前有很多知名的个性化音乐网络电台。国际上著名的有 Pandora 和 Last.fm,国内的代表则是豆瓣电台。最近几年互联网最激动人心的

12、莫过于以 Facebook 和 Twitter 为代表的社交网络应用,在社交网络中好友之间可以信息分享和传播。在社交网络中推荐系统已经得到了广泛的应用,它能利用用户的社交网络信息对用户进行个性化的物品推荐;能进行信息流的会话推荐;为用户推荐好友。经常使用的 qq、人人网都有为用户推荐好友、为用户推荐可能感兴趣日志的机制。综上可见推荐系统已经广泛应用于互联网的各个领域,它出现在网络的各个角落,上商务网站买东西它会推荐物品、上社交网络它会推荐好友、上视频网站它会推荐感兴趣的视频、上微博它会给推荐用户感兴趣的博主。1.1.2 微博推荐研究现状在微博上关于推荐的研究也有很多。大部分是进行好友推荐、散列

13、标签(Hash tag)推荐或者新闻推荐,而对于微博中主要的载体,简短却包含海量实时信息的微博内容推荐的研究则不多。微博推荐有以下三个难点:(1)用户的活跃程度低。在传统的推荐系统中,用户登录一个推荐系统,就是为了选择一些他想要的资源。而在微博推荐中,许多用户上微博,更多的时间处于“看微博” ,而不是“发微博” ,因此很难直接获得他们的显式反馈信息,也难以对他们的兴趣进行学习和预测。 ( 2)数据的稀疏性和不对称性。在传统的推荐问题中,用户和资源一般是同一个数量级的。但是在微博推荐问题中,由于微博数据海量的特点,微博的数量和增长速度远远大于用户的数量和增长速度。 (3)用户兴趣的动态变化。微博

14、的话题一直紧随现实世界的发展,因此微博上话题不断变化,用户的兴趣也随之变化。在传统推荐问题中,往往是用户根据兴趣选择资源。在微博推荐中,则是不断出现的微博改变着用户的兴趣,再由用户选择喜欢的微博。因此用户的兴趣一直在动态变化,很难找到一个用户长时间感哈尔滨工业大学本科毕业设计(论文)- 3 -兴趣的话题。推荐系统中大部分研究都是利用系统中的一些显式信息来进行学习和预测。显式信息指的是由用户主动提供给网站的信息,如用户的资料、用户喜爱的资源。而与显式信息对应的隐式信息,指的是网站自动获得的信息,如用户的浏览时间、上下文环境等。在现实世界中,大量的信息都是隐式信息而不是显式信息。相比显式信息,隐式

15、信息不需要用户主动提供,因此更容易在实际应用中被使用。事实上,在用户浏览的过程中,浏览器和服务器都已经记录了大量的隐式信息,可以通过各种方法从后台数据库中和浏览日志中挖掘出来。在微博系统中,也存在着多种隐式信息。例如,用户发出微博的时间、用户浏览微博时上下文环境、用户与其他用户之间的好友关系。针对以上难点,有关研究人员提出了一种基于贝叶斯个性化排序(Bayesian personalized ranking,BPR)的微博推荐算法 9。该算法的主要思想是,利用贝叶斯最大后验估算求出微博对之间的全序关系,从而获得用户对微博的个性化排序。推荐算法联系用户与物品之间一般有三种方法:好友关系、用户爱好

16、、用户历史数据。好友关系是跟据好友之间的爱好具有相似之处而把用户好友喜欢的物品推荐给用户;几乎所有的网站在用户注册的时候都要求用户填写个人信息,其中就有用户兴趣爱好一栏,通过用户填写的兴趣爱好内容给用户做出推荐是联系用户与物品的一种方法;用户历史数据是用户在以往操作中产生的数据,通过用户历史数据分析出用户的兴趣并以此为依据做出推荐。1.2 本文主要工作内容本文主要研究基于内容的微博推荐系统,如何在微博上使用推荐系统为用户进行个性化推荐,推荐的依据则是用户以前发表的微博信息的内容。本文使用新浪微博作为推荐系统的载体开发一款以基于内容的个性化推荐为特色的新浪微博客户端(以下简称新浪微博客户端) ,

17、为此主要解决一下几个问题:(1)新浪微博 API 使用;(2)基于内容对微博进行分类;(3)中文分词;(4)推荐方法的选择。哈尔滨工业大学本科毕业设计(论文)- 4 -第 2 章 微博推荐系统需求分析与系统总体设计本章主要论述基于内容的微博推荐系统通过开发一款新浪微博客户端来实现并对这款客户端进行需求分析和总体设计。2.1 需求分析2.1.1 功能需求本小节对系统功能进行需求分析。新浪微博客户端,需要系统能够发表微博、显示用户和好友发表的微博以及根据以往用户发表的微博信息为用户推荐近期关注度比较高的公共微博信息。其中微博推荐是本系统最主要特色,它要求系统能够根据用户发表的微博信息内容为用户做出

18、推荐。2.1.1.1 登录系统使用之前需要登录认证,系统登录需要能够使用新浪微博账号进行登录。2.1.1.2 发表微博用户能够在登录以后发表 140 字以内的文字微博或者发表 140 字以内带有图片的图文微博。 2.1.1.3 微博推荐这个部分是本系统的主要功能,根据用户以往发表的微博信息的内容为用户做出推荐,推荐一些用户感兴趣的公共微博信息给用户。通过四步完成推荐:微博下载、确定用户兴趣、用户对某条微博感兴趣程度、做出合理推荐。微博下载:要想进行微博推荐就需要大量的微博信息的数据,而微博信息都存储在各大微博平台的服务器中,如何才能下载这些信息呢?各大微博平台给第三方提供了微博 API 接口,

19、通过这些接口能方便的下载服务器中的微博信息。这里需要能够下载两个方面的微博数据一是最近几天关注度高的微博信息(以下称为待推荐微博) ;二是某个用户发表的所有微博信息,考虑到用户感兴趣的内容可能会随着时间、环境、心情发生改变,用户发表的所有微博信息应该是近期所发表的所有微博信息(以下成为个人微博信息) ,这个时间大概是两哈尔滨工业大学本科毕业设计(论文)- 5 -个月左右。将下载的个人微博信息和待推荐中的每条微博信息保存下来,为接下来的推荐提供数据支持。确定用户兴趣:要想知道用户对哪些微博信息感兴趣首先需要对微博信息进行分类,要想对微博信息分类首先要进行微博信息的分词。所以确定用户的兴趣要走两步

20、:分词、分类。分词是将下载的所有微博信息的内容按照中文分词技术分割成一个一个单独的词,再根据需要去除其中的虚词,留下需要的有意义的名词和动词,形成各个微博信息对应的词向量。分类是使用分类算法将分词产生的每条微博信息的词向量进行类别的划分,确定每条微博信息所属的类别。用户的兴趣则是根据用户发表微博所属的类别确定。根据用户发表的微博信息在各个类别中所占的比重对用户兴趣做出归纳,之后从待推荐微博中推荐出最合理的一组微博推荐给用户。2.1.1.4 系统用例通过需求分析,得到如图 2-1 所示的系统用例图。图 2-1 新浪微博客户端用例图2.1.2 性能需求待推荐的微博应该具有实时性,每次推荐的内容不应

21、该完全一样;推荐的微博信息应该能够涵盖用户大部分兴趣,即推荐的覆盖率问题;对于一个新用哈尔滨工业大学本科毕业设计(论文)- 6 -户或者没有发表过微博的用户应该也能做出一个合理的微博推荐,即系统冷启动问题;系统登录响应时间、微博加载时间和微博推荐时间不能太长,要在用户能够忍受的范围之内,对于推荐的结果系统需要提供一种验证机制。2.2 总体设计根据系统的需求将系统主要分为四个功能,登录,发表微博、查看微博和微博推荐。其中登录使用 OAUTH 模拟认证;发表微博和查看微博只需要使用新浪微博 API 就能实现;微博推荐则是本系统的重点:首先系统根据需要下载登录用户的个人微博信息和待推荐微博信息;然后

22、根据分类算法对每一条用户微博信息进行分类确定用户兴趣;之后对每条待推荐微博进行分类以确定该条微博是否是用户感兴趣的微博;最后从用户感兴趣的待推荐微博信息中选择一个推荐队列推荐给用户。2.2.1 系统架构设计方案系统为三层架构,逻辑层、展示层、数据层组成如图 2-2 微博推荐系统架构图。用户界面是用户与系统的交互层,推荐用户账号、最终推荐微博数量输入以及最终推荐结果显示都是在这个界面完成;逻辑层由微博下载、分词、分类、推荐四个模块组成,主要使用数据层的数据为用户做出推荐并将推荐结果通过展示层展示给用户;数据层主要是系统从新浪微博服务器中下载的微博信息。S Q L S e r v e r 数 据

23、库 、 类 别 文 件微 博 下 载 、 分 词 、 分 类 、 推 荐用 户 界 面数据层逻辑层展示层图 2-2 微博推荐系统架构图2.2.2 功能架构设计方案本客户端由登录、发表微博、展示微博和微博推荐四个部分组成。系统登录使用新浪微博开发平台提供的 OAuth 认证,新浪微博客开发平台为了保障新浪微博的安全性第三方软件开发过程中微博登录还需要登录账号在哈尔滨工业大学本科毕业设计(论文)- 7 -新浪微博开发平台上申请的认证信息,为此本客户端登录不仅需要输入新浪微博账号密码还需要设置该账号对应的 App Key 和 APP Secret。发表微博和展示微博使用新浪微博 API 接口就能实现

24、。用户登录客户端之后就能发表微博信息,微博信息包括两个部分文本信息和图片信息。文本信息是必不可少的,它的输入是一个 140 字以内的文字信息;图片信息可有可无,当发表图片时需要选择本地的一张图片进行上传,当图片上传完毕时给出提示。发表微博使用新浪微博 API 接口中的写入接口 update。展示微博信息包括显示用户以往发表的微博信息(这部分的微博信息需要存储下来,在微博推荐中需要使用)和好友微博信息。显示用户以往发表的微博信息使用新浪微博 API 接口中的读取接口 user_timeline。下载好友微博信息需要使用新浪微博 API 接口中的读取接口 friends_timeline。这两个接

25、口下载的内容都是 JSON 格式的数组,通过遍历这个数组可以得到一条微博的任何信息。返回类型包含的内容如表 2-1 返回字段说明。表 2-1 返回字段说明返回值字段 字段类型 说明created_at string 微博创建时间id int64 微博 IDmid int64 微博 MIDidstr string 字符串型的微博 IDtext string 微博信息内容source string 微博来源favorited boolean 是否已收藏truncated boolean 是否被截断thumbnail_pic string 缩略图片地址,没有时不返回此字段bminddle_pic s

26、tring 中等尺寸图片地址,没有时不返回此字段original_pic string 原始图片地址,没有时不返回此字段geo object 地理信息字段user object 微博作者的用户信息字段retweeted_status object 被转发的原微博信息字段reposts_count int 转发数comments_count int 评论数additudes_count int 表态数本系统最主要功能和特点是微博推荐部分。这个部分由微博下载、分词、哈尔滨工业大学本科毕业设计(论文)- 8 -分类和推荐四模块构成。微博下载模块,本系统使用新浪微博 API10,从服务器中下载公用微博

27、200 条(待推荐微博)和要用户在最近发表的微博信息 20 条(个人微博) 。这部分需要使用新浪微博开发平台中的 API 接口,主要使用微博读取接口;在使用过程中需要获取新浪微博开放平台应用认证,在认证成功之后下载微博信息并将下载的微博信息存入数据库中。具体下载过程如图 2-3 微博下载流程图所示。开始结束微博开放平台认证下载所需微博信息是数据库提示出错否图 2-3 微博下载流程图分词模块使用中文分词技术将微博内容分解为一个个单独的词。这部分使用中科院 ICTCLAS 开源软件,将微博信息的内容分成一个一个的词以及每个词的词性;再根据词的词性将虚词、助词、代词等没有实际意义的词去掉;最后将剩下

28、的词组成词向量。分类模块使用推荐算法将分词产生的词向量进行分类,本系统使用 K 为 1的 KNN 算法进行分类,每一条微博信息对应一个类别。KNN 分类算法具体歩骤如下:(1) 建立一个包含所有类别的训练集(2) 对训练集中的内容进行分词后得到每个类别的特征词以及该词在本类别的权值(3) 对每条微博信息进行分词获取词向量哈尔滨工业大学本科毕业设计(论文)- 9 -(4) 微博词向量与类别词向量进行相似度计算,依次计算本条微博在每个类别的权重(5) 根据 SWF 决策规则,将微博分配到权重最大的那个类别中在系统中设计一个后台模块能够通过训练集中的内容得到每个类别的词向量,在系统运行时只要将类别词

29、向量加载就能进行接下来的分词工作了。推荐模块对每一条用户微博信息进行分词、分类操作得到用户的兴趣,之后对每一条待推荐微博都进行分词、分类操作得到该条微博信息所属的类别从而确定这条微博用户是否感兴趣,以此确定这条微博是否能推荐给用户。最后在能推荐给用户的微博信息中选择一个最符合用户兴趣分布的队列作为推荐列表进行覆盖率计算。覆盖率计算主要是通过用户以往转载微博信息的类别与推荐列表中微博的类别进行对比看这个推荐列表包含了用户转载微博信息所含有的哪些类,如果包含的不多说明这个推荐不是一个好的推荐需要在可能推荐给用户的微博信息中重新获取推荐列表。2.3 开发环境和开发工具2.3.1 开发语言新浪微博客户

30、端主要使用 C#进行开发,在实现过程中根据需要还会使用一些 css、html 方面的语言。2.3.2 开发工具新浪微客户端使用 Microsoft Visual Studio 2010 作为开发工具, SQL Server 2008 作为数据存储工具。2.3.3 开发环境新浪微博客户端在 Win7 操作系统下开发,开发测试过程中需要连上互联网的计算机,具有新浪微博开放平台认证, sql server2008 数据库。2.4 本章小结本章论述了新浪微博客户端的需求分析和总体设计。需求分析部分主要论述了系统的主要功能需求和性能需求,为系统的开发明确了要求。总体设计部分主要根据需求对系统进行整体上的

31、设计,对系统的功能架构方面进行的论述和做出取舍。哈尔滨工业大学本科毕业设计(论文)- 10 -第 3 章 微博推荐系统详细设计小冒本章跟据系统的需求分析和总体设计分模块对系统进行详细设计,包括各个模块的具体功能实现设计、模块流程、模块使用技术以及实现各模块的类设计。3.1 用户登录详细设计新浪微博开发平台为第三方微博开发提供平台,在开发阶段使用新浪微博API 需要进行 Oauth 认证,如果要发布使用新浪微博 API 的软件作为第三方软件的开发者需要将自己开发的软件提交审核才能发布,发布后所有新浪微博账号都能登录,而这一过程需要有完整的软件提交审核,在开发和测试过程中并不适用;所以在我的客户端

32、中使用 Oauth 认证,需要用户输入登录账号申请的认证信息。新浪微博开发平台提供了一种开发测试过程中使用的方法:为每个测试的账号申请 App Key 和 APP Secret 并且设置响应的回调地址,这样在开发过程中不需要提交审核只需为每个账号申请 App Key 和 APP Secret 并且在程序中设置就行了。微博推荐客户端就是使用这种登录机制具体过程如下:(1). 进入登录界面,从登录界面进入设置界面设置本次要登录的用户在新浪微博开放平台上申请的 App Key,App Secret 和设置的回调地址,然后将输入的认证信息返回登录界面。如果上次登录成功并且选择了保存账号密码的话这次进入

33、设置界面会显示上次登录账号的 App Key,App Secret 和设置的回调地址。(2). 返回登录界面后根据认证信息实例化授权对象 Oauth(3). 输入账号和密码;如果上次登录成功并且保存了账号密码系统会自动设置上次的账号密码。(4). 使用Oauth对象进行模拟登录(5). 如果登录的账号申请的App Key 与设置不同或者登录账号密码有错则提示响应错误,返回登录界面;如果登录成功则进入主界面并且获取Access Token,如果选择了保存账号密码则会将本次登录的账号密码以及设置信息保存下来。哈尔滨工业大学本科毕业设计(论文)- 11 -在不设置 App Key、App Secre

34、t 和回调地址的时候系统默认 App Key 为704237077、App Secret 为 d39cef08d447b3ce55145ce052287fd4、回调地址为http:/127.0.0.1 ,与之相对应的新浪微博账号密码也在登录中设置为默认。登录过程中的类图如图 3-1 登录类图所示。图 3-1 登陆类图登录过程时序图如图 3-1 登录时序图所示。图 3-1 登录时序图哈尔滨工业大学本科毕业设计(论文)- 12 -登录流程图如图 3-2 新浪微博客户端登录流程图。开始设置 A p p K e y 、 A p p S e c r e t 、 回调地址是否进行设置是设置默认值否实例化

35、O A u t h返回登陆界面是否有保存的账户信息显示账号密码是输入账号密码否使用 O A u t h 模拟登录登录是否成功是是否保存账户信息是保存账户密码进入主界面否结束返回错误信息 否图 3-2 新浪微博客户端登录流程图哈尔滨工业大学本科毕业设计(论文)- 13 -3.2 发表微博详细设计发表微博是将140字以内的文字微博或者140内的文字和图片的图文微博发表到新浪微博服务器中。首先需要一个输入界面能够接收用户发表的文字和图片信息,在用户的输入过程中还需要在文字大于140时给用户做出提示;之后使用新浪微博API 接口上传发表的微博信息。发表微博详细用设计如表3-1 发表微博用例规约所示。用

36、例规约详细描述了发表微博功能的实现流程以及需要处理的异常事件;发表微博用例实现如表3-2 发表微博用例实现所示,该表详细设计了发表微博功能所属页面、实现这个功能所需数据的定义以及实现发表微博的事件和线程。表3-1 发表微博用例规约用例名称 发表微博用例说明 用户发表一条少于140字的文字微博或者含图片的图文微博前置条件 用户登录了客户端基本事件流 1. 用户输入一条少于140字的文本信息2. 如果用户需要发表图片选择一张图片上传3. 使用新浪微博API接口中的update 将微博信息上传4. 清空输入框信息,转跳到个人微博信息显示界面其它事件 如果只上传图片而没有文字系统给出提示异常事件流 1

37、. 文字多余140字给出提示2. 微博上传失败给出提示后置条件 用户发表了一条微博信息,个人微博列表发生改变表 3-2 发表微博用例实现用例名称 发表微博功能描述 发表一条少于140字的文字微博或者含图片的图文微博所属界面 frmMain名称 类型 来源 说明txtStatusBody TextBox 用户输入 微博文本信息输入框数据来源定义btnInsertPicture Button 用户输入 微博图片本地地址名称 类型 说明btnInsertPicture_Click 事件方法 上传图片实现函数或类名PublishStatus 线程方法 发微博线程3.3 微博展示详细设计微博展示包括两个

38、方面的内容:查看用户发表的微博信息和查看用户关注的好友( 以下简称好友) 的微博信息。查看微博信息的功能是将用户微博信息和好友微博信息通过登录时认证获取的授权 Oauth 创建 Client 对象使用新浪微博API 下载然后在主界面中展示出来。查看用户微博信息如表 3-3 查看用户微博用例规约。该规约列出了查看的微博信息条数以及实现该功能的基本流程。哈尔滨工业大学本科毕业设计(论文)- 14 -表 3-3 查看用户微博用例规约用例名称 查看用户微博信息用例说明 以列表方式显示用户最近发表的20条微博信息前置条件 用户登录了客户端基本流程 1. 使用新浪微博API中的UserTimeline接口

39、获取认证用户个人微博信息列表2. 遍历并显示个人微博信息列表异常事件流 1. 用户没有发表过微博,个人微博列表显示为空2. 网络状况不同下载发生异常给出提示3. 下载数据有误系统能自动选择后置条件 个人微博列表显示用户微博信息查看用户个人微博信息下载用户最近发表的20微博信息,以固定的格式显示出来;根据微博信息微博内容比较短,既有图片又有文字的特点使用css和html设计每一条微博信息的显示格式,这样在显示列表时就非常方便了。查看用户微博信息用例实现如表3-4 查看用户微博信息用例实现所示。该表详细列出了微博信息的具体内容,还为信息的展示提供了模板使微博信息能整齐清晰的展现出来。表3-4 查看

40、用户微博信息用例实现用例名称 查看用户微博信息功能描述 现在并按列表显示用户最近发表的20条微博信息所属界面模块frmMain.tabControl1显示微博信息模板statusPattern = ”1:23转发 (4) 评论(5)名称 类型 来源 说明ProfileImageUrl String 下载的微博信息 用户头像URLScreenName String 下载的微博信息 用户名Text String 下载的微博信息 微博内容ThumbnailPictureUrl String 下载的微博信息 微博图片URLRepostsCount Int 下载的微博信息 转发条数数据来源定义(个人微博

41、信息内容)CommentsCount Int 下载的微博信息 评论条数名称 类型 说明实现函数或类名 LoadUserTimeline 线程方法 加载个人微博线程查看好友微博信息的主要功能是显示用户好友最近发表的20条微博信息。查看好友微博信息详细用例设计如表3-5 查看好友微博信息用例规约所示。该表详细描述了展示好友微博的具体流程以可能出现的异常事件流并对异常事件做出相应的解决。哈尔滨工业大学本科毕业设计(论文)- 15 -表 3-5 查看好友微博信息用例规约用例名称 查看好友微博信息用例说明 以列表方式显示用户所有好友最近发表的20条微博信息前置条件 用户登录了客户端基本流程 1. 使用新

42、浪微博API中的FriendTimeline接口获取用户好友个人微博信息列表2. 遍历好友微博列表,将其中该用户发表的微博信息剔除,显示其余的微博信息异常事件流 用户好友列表或关注列表为空,则将好友微博信息显示为空后置条件 好友微博列表显示好友微博信息查看好友微博信息用例实现如表3-6 查看好友微博信息用例实现所示。该表与表3-4 查看用户微博信息用例实现类似,这里不再做赘述。表 3-6 查看好友微博信息用例实现用例名称 查看好友微博信息功能描述 现在并按列表显示好友最近发表的20条微博信息所属界面模块frmMain.tabControl2显示微博信息模板statusPattern = ”1:

43、23转发 (4) 评论(5)名称 类型 来源 说明ProfileImageUrl String 下载的微博信息 好友头像URLScreenName String 下载的微博信息 好友名Text String 下载的微博信息 微博内容ThumbnailPictureUrl String 下载的微博信息 微博图片URLRepostsCount Int 下载的微博信息 转发条数数据来源定义CommentsCount Int 下载的微博信息 评论条数名称 类型 说明实现函数或类名 LoadFriendTimeline 线程方法 加载好友微博线程3.4 微博推荐详细设计微博推荐模块式微博推荐客户端的重点

44、,从表面上来看与个人微博显示、好友微博显示没有什么区别,但是显示的内容取得的方式与这两者有天壤之别;个人微博信息和好友微博信息只要从服务器中下载 Json 格式的数据然后按需求获取就行了,而微博推荐不仅要下载微博信息,而且要根据微博信息的内容确定用户的兴趣并且为用户做出推荐。按照需求分析这个部分的设计也分为微博下载、分词、分类和做出推荐几个部分。在详细设计这几个部分之前先将数据库和基本类设计好。哈尔滨工业大学本科毕业设计(论文)- 16 -3.4.1 数据库设计根据前期的分析和系统需求,设计 Person_Weibo 表用于存储用户微博信息,Other_Weibo 表用于存储待推荐微博信息。用

45、户微博信息 Person_Weibo(微博 ID Weibo_id,用户头像地址 ProfileImageUrl,用户名 ScreenName,微博内容 Text,微博图片 PictureUrl,评论条数 RepostsCount,转载条数 ConmmentsCount)表 3-7 Person_Weibo 数据表Name Comment Default DataType P NULLWeibo_id 微博 ID nchar(50) ProfileImageUrl 用户头像地址 nchar(100)ScreenName 用户名 nchar(50)Type 这条微博是发表的还是转载的 IntTe

46、xt 微博内容 textPictureUrl 微博图片 “” nchar(200) RepostsCount 转载条数 intConmmentsCount 评论条数 int待推荐微博信息 Other_Weibo(微博发表人号 User_id,微博 ID Weibo_id,用户头像地址 ProfileImageUrl,用户名 ScreenName,微博内容 Text,微博图片 PictureUrl,评论条数 RepostsCount,转载条数 CommentsCount)表 3-8 Other_Weibo 数据表Name Comment Default DataType P NULLId 本条微

47、博在数据库中的 id intUser_id 微博用户 ID nchar(50)Weibo_id 微博 ID nchar(50) ProfileImageUrl 用户头像地址 nchar(100)ScreenName 用户名 nchar(50)Text 微博内容 textPictureUrl 微博图片 “” nchar(200) RepostsCount 转载条数 intCommentsCount 评论条数 int3.4.2 类设计微博推荐主要分为六个类,其类图如图 3-3 微博推荐类图所示。其中除了frmMain 类(客户端主页面)还包含发表微博、查看微博等功能模块其余的五个类都是为微博推荐服

48、务的。哈尔滨工业大学本科毕业设计(论文)- 17 -图 3-3 微博推荐类图ODBC 是与数据库连接交互的类,PersonWeibo 和 OtherWeibo 继承 Weibo类,这三个类是微博信息类。RecommendWeibo 是做出推荐功能的类。各个类的详细信息如下:Weibo 类是微博信息的基类,它包含本系统需要的所有微博信息,被PersonWeibo 和 OtherWeibo 类继承,其详细信息如表 3-9 Weibo 类详细介绍所示。 表 3-9 Weibo 类详细介绍类名 Weibo功能 微博信息类名称 类型 说明WeiboID String 微博在网络中的编号Text Stri

49、ng 微博文本内容PictureUrl String 微博的图片内容(可以为空)Reposts Count int 本条微博转发数Comments Count int 本条微博评论数属性Class int 本条微博信息内容所属类别,在分类结束后设置,默认为 0名称 入参 返回值 功能方法Weibo Json 构造函数,根据输入的 json格式参数初始化所有属性哈尔滨工业大学本科毕业设计(论文)- 18 -GetWeiboID String 获取微博 idGetText String 获取微博文本内容GetPictureUrl String 获取微博图片 URLGetReposts int 获取本条微博转发数GetComments int 获取本条微博转发数SetClass int 设置本条微博类型GetClass int 获取本条微博类型其他 是 PersonWeibo 类和 OtherWeibo 类的基类PersonWeibo 类是个人微博信息的实体类。它继承了 Weibo 类,包含了系统所需微博信息的所有内容,还包含了个人基本信息。定义了下载下来的 json微博信息中所需要的内容和格式,其数据内容如表 3-10 PersonWeibo 类详细介绍所示。表 3-10

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报