基于Python实现的搜索和推荐系统

一、引言

伴随着科技的不断进步,互联网,万维网的不断发展。我们越来越热爱万维网,也欣赏他的发展方式。20世纪90年代初,万维网还只是一个将文档联系起来的简单网络。如今,他已经成为了全球信息的框架。显然,如何表达万维网上的数据是下一步需要解决的问题。但这个问题并不简单。

关联数据是万维网上表示和连接结构化数据的一系列技术。通过关联数据将万维网转换为一个全球性的数据空,我们称之为数据网(Web of Data)。通过关联数据SPARQL查询语言同时查询多个信息源的关联数据,并动态合并并查询结果,这样的方法是传统数据管理技术很难实现的或根本无法做到的。

籍由关联数据技术,我们更容易和他人共享数据。理论上说,可以采用关联数据描述任何内容。万维网上的关联数据可以被发现,共享并与其他用户的数据进行合并。与传统的数据管理系统不同,关联数据将信息从专有容器中(proprietary container)中释放出来,任何人都可以使用这些信息。与其他数据一样,关联数据的质量和效用由数据使用者来负责评估。人们只信任可靠的数据。

我们正是基于这样一个数据可靠、安全、数据之间可关联的关联数据技术,来实现我们对于搜索服务和基于语义的推荐服务。

二、准备

2.1 软件工程语言选择

世界上有非常多的软件编译语言,主流的有C、C++、JAVA、PYTHON、C#等等。每一种编译语言都有他们自己的特点,每一种编译语言都有他们自己的库和相关的编译工具。用什么样的语言来实现我们搜索和推荐服务是首先要考虑的。

搜索和推荐服务是一个对互联网信息资源进行搜索整理、分类,并储存在网络数据库中供用户查询的系统,包括信息收集,信息分类,和目标查询三个部分组成。

从使用者的角度看,搜索和推荐服务提供一个包含搜索输入框的页面,在搜索框中输入词汇,通过浏览器提交给搜索后台服务引擎后,搜索后台服务引擎就会返回跟用户输入的内容相关的信息列表。其实这样的搜索后台服务引擎涉及到很多领域的理论和技术:数字图书馆,数据库,信息检索,信息提取,人工智能,机器学习,自然语言处理,计算机语言学,统计数据分析,数据挖掘,计算机网络,分布式处理等等,具有综合性和挑战性。

在世界范围内,百度,GOOGLE,搜狗就是非常好的搜索引擎。通过学习这些搜索服务,我们发现他们都是通过Web来进行搜索服务的。

因此我们确定我们的搜索和推荐服务也应当是通过TCP方式,HTTP协议,以Web的方式进行搜索和推荐服务,通过Web来实现搜索和推荐的交互功能。

在实现Web这样的B/S架构时,我们发现两种语言适用于开发这样的服务程序。一个是Java语言,一个是Python语言。

在Java语言中有Tomcat服务来实现网页与后台的相互传参,运算;在Python语言中有Callimachus和Django来实现网页与后台逻辑的通讯。

通过对比Java和Python开发我们发现:

Java开发所需要的JDK版本一旦安装完成,在同一台PC机上是需要通过卸载重新安装来实现;在Python中对于Python2.7和Python3,我们通过virtualenv和anaconda等虚拟容易来盛放不同的python版本只需要通过cmd(windows下)命令就可以实现

Java中的库主要都是对于类型转换,和网页servlet方式的库;在python中不仅包含于网页的相关库,他更强大的是有很多算法库,由于python属于脚本语言,所有他所支持和库所涉及的功能范围比java库要更加多

在Java中进行相关的SPARQL查询,需要安装jena,并将安装好的jena文件进行相应的环境变量配置;但是在python中对于sparqlwrapper,只需要通过cmd命令(pip install xxx)就可以静待电脑自动安装相应文件,而不需要配置相应的环境变量

因此基于以上分析,我们最终选用python来作为我们的软件开发语言。

2.2 服务器的选取

一个好的关联数据开发平台有助于提高开发效率。Callimachus和Django都是这样的一种平台。

2.2.1 Callimachus

尽管Callimachus的开发者们将其定义为关联数据管理系统,但是将其视为关联数据的应用服务器更加合适。Callichus主要具备以下特征:

模板系统能自动为OWL类(OWL class)的所有成员生成网页。严格来说,OWL类与RDF schema类本身或其子类并无二致(取决于所用的OWL配置文件)。简单起见,我们认为OWL类与RDF Schema类是等价的

在运行时检索数据,并将其转换为RDF格式

将SPARQL查询与URL关联起来,对查询进行参数化,并使用带有图标库(charting library)的查询结果

PURL(持久化URL)实现

基于DocBook的结构化书写系统(structured writing system)包括可视化编辑环境。

简而言之,Callimachus支持使用关联数据进行导航,可视化,构建应用程序等操作。数据既可以保存在本地,也可以从万维网上采集,甚至可以在载入Callimachus时被转换为RDF。

点击此处下载源码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容