兔纸张

It is the time you have wasted for your rose that makes your rose so important.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

【编者按】本文记录了人生中写第一个窗体程序过程中的点点滴滴,虽然程序非常稚嫩,但总归是第一次啊,还是要留下点纪念,以供将来老了无所事事时能有个回忆的东西。

上个学期选了何苯老师的社会计算(很nice的一个老师,而且我们一致认为其比较帅,从他的容貌中还依稀可以看到当年正太的影子),该课程要交大作业,看了一遍所有的题目,我也就对其中计算文本相似的题目有点想法,而且刚学完C#,正好可以拿来练练手,就决定选这个题目了。

题目:互动百科与百度百科的比较

要求:用户通过界面输入词条,程序需要

  • 从两个网站分别获取词条信息
  • 比较两个词条的相似度

老何说他之所以出这么一个题目,是因为互动百科状告百度百科的那场官司。至于互动为什么要打这场官司,相信大家都懂的:度娘,因为山寨而存在。

根据作业内容,我决定把要写的程序命名为“百科词条相似度计算系统”(恩,程序性能不重要,名字一定要长要霸气)。

我认为该系统主要需要实现以下几个功能:

  • 根据词条名称查找该词条网页的URL
  • 从网页中提取和词条有关的正文
  • 对提取到的文本进行分词
  • 计算文本之间的相似度

1. 确定URL

获取词条页面的URL时,我用的工具是httpwatch。安装后,它会集成到IE的工具栏上,界面很简洁,功能很犀利。

来,给功臣露个脸。

httpwatch

互动百科词条URL构造比较简单:

http://www.hudong.com/wiki/词条名称(其中词条名称用UTF8 编码)

如果互动百科中没有该词条,访问这个URL会跳转到另外一个页面,页面中有“您要访问的页面不存在”,“尚未收录词条”,“词条名字为空”之类的错误信息,可以据此判断互动百科中是否收录了该词条。

百度百科词条URL的格式如下:

http://baike.baidu.com/view/数字编号.htm

其中的数字编号可以从访问

http://baike.baidu.com/searchword/?word=词条名称(其中词条名称用GB2312 编码)

返回的内容中用正则表达式提取到,返回的内容大致如下:

<meta http-equiv='Pragma' content='no-cache'>
<meta http-equiv='Refresh' content='0;URL=/view/1604.htm'>

同样的,如果返回的数据中没有数字编号,则代表百度百科没有收录该词条。


-------------------------------------------
作者:兔纸张   来源:博客园 ( http://www.cnblogs.com/geiliCode )

posted on 2011-07-19 22:46  geiliCode  阅读(464)  评论(0编辑  收藏  举报