计算机检索课程设计-自动标引

    一直觉得情报学/图书馆学没什么意思,但实际上还是之前没有深入了解过,甚为惭愧。信息检索技术乃是现在搜索引擎技术的基石;著名的Elsevier ScienceDirect,Springerlink,EBSCO Academic/Business Source Premier都是网络环境下的期刊文献论文检索利器;还有Amazon等电子商务中的热门推荐,豆瓣网中的图书,电影推荐,背后都是数据挖掘的发挥核心作用,比如协同过滤算法等等;还有知识发现,垃圾邮件过滤等等,不一而足。

    花了四天时间,完成了这个课程作业(源代码),要求很简单:

1、合并使用停用词表和关键词表作为分词词表,应用逆向最长匹配法对所有篇名分词,给出每条篇名对应的分词结果。在屏幕上显示篇名序号、篇名、分词结果。
2、去除停用词(显示在屏幕上)。
3、利用TF-IDF词频加权公式,计算各词的权重,在屏幕上显示每条篇名中各词的权重。
4、根据输入的阈值,确定标引词,并在屏幕上显示标引词。
5、根据输入的标引深度,确定标引词,并在屏幕上显示标引词。

    实现起来也能简单,毕竟数据量不是很大,所以用ADO把数据存入了map容器,其中关键词表以关键字为键,值为包含该关键字的篇名数。然后用逆向最大匹配法配合停用词表进行分词,再利用TF-IDF词频加权公式加权,最后通过设置标引阈值,标引深度显示出选出的标引词。效果图如下:

计算机检索课程设计-自动标引_第1张图片

    整个程序类图如下(呃,有点扭曲…):

计算机检索课程设计-自动标引_第2张图片

    完成这个作业,加上看了这一期《程序员》“透过产品看算法”的专题文章,确实体会到了算法是程序核心的这个观点,而那些让我们生活变得简单的一个个应用,背后也正是优秀的算法在支持。然而令人遗憾的是,国内很多高校只开设了数据结构课程,相对更重要的算法课程去没有开设,孰不知空懂得数据结构还不足以完成某项应用。中文分词中,简单有效的是词典法,进行最大正向/逆向匹配,加权的话主要是逆文献(IDF)加权,香农信息论。若是没有这些前人的算法,这个程序很难短时间完成。回到开头那段,那些应用,特别是与情报学/图书馆学相关的算法,才是这个专业真正存在的意义吧。

    算法?算法!

你可能感兴趣的:(计算机检索课程设计-自动标引)