已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 基于后台数据库的个性化基于后台数据库的个性化 Web 页面实现页面实现 摘摘 要要 20 世纪末 随着计算机科学的发展 数据库技术在 Internet 中的 应用越来越广泛 为广大网络用户提供了更加周到和人性化的服务 个性化已逐渐成为当今 Web 应用的潮流 本文研究了一种基于数据关 联规则采集技术的用户个性化页面动态生成方案 此方案与现今网上 已采用的一些方案相比 具有用户使用更简单 反映用户兴趣爱好更 明显细致等优点 本文中所做的主要工作如下 1 介绍了个性化页面的背景及 WinNT IIS ASP 系统的一般原理 2 阐述整个个性化页面生成系统的系统结构及工作原理 分析了 系统实现中的特殊性 难点和重点 3 设计实现用户注册 登陆 用户数据采集 个性化页面动态生成 回显等程序模块 实现 ASP 和 HTML 页面 45 个 4 分析并解决实现中的若干技术问题 如 5 建立完整的实验网站 进行测试并分析结果 关键字关键字 个性化 动态 ASP 点击 关联规则 2 AbstractAbstract At the end of 20th century With the development of computer science Database technology is widely used in Internet applications This makes network users can enjoy more convenient and individual services Personalization is the trend of today s Web applications In this work we study the technique to organize the personalized page based on association rule mining Compared to some currently existent method on the Internet our method has several advantages such as giving more convenience to users and reflecting users interesting more clearly and precisely The main work of this paper are 1 Introduces the background of the personal Web page and the general principle of the platform WinNT IIS ASP 2 Investigates the system structure and working principle of the generating system for personal Web page 3 Designs and implements the modules of personal page generating system such as register module login module user data collecting module page organizing and displaying module 4 Analyses and resolves the technical problems in implementation such as 5 Establishes a test Web site and analyses the result after testing on it Key Words Individuation dynamic ASP click association rule 3 1 背景 4 2 特殊技术困难 7 3 ASP 技术综述 8 3 1 ASP 的产生 8 3 2 ASP 与 IIS 9 3 2 1 IIS 简介 9 3 2 2 IIS 与 ASP 的结合 10 3 3 ASP 的内部特点 11 3 3 1 ASP 内部 6 大对象 11 3 3 2 Global 文件 12 3 4 利用 ADO 访问数据库 13 3 5 ASP 与 CGI 的比较 15 4 个性化页面生成器系统的实现 16 4 1 与数据库的链接 17 4 2 用户注册 登陆系统 18 4 3 记录用户点击序列 21 4 4 页面的生成 23 4 4 1 关联规则表 23 4 4 2 页面生成 24 5 实验网站的建立及测试 27 5 1 DB KE SITE站点的建立 27 5 2 性能测试 29 6 结束语 32 致 谢 32 参考文献 33 4 1 1 背景背景 Internet 是目前世界上最大的计算机互联网络 它遍布全球 将世 界各地各种规模的网络连接成一个整体 作为 Internet 上一种先进的 易于被人们所接受的信息检索手段 World Wide Web 简称 WWW 发 展十分迅速 成为目前世界上最大的信息资源宝库 据估计 目前 Internet 上已有上百万个 Web 站点 其内容范围跨越了教育科研 文化 事业 金融 商业 新闻出版 娱乐 体育等各个领域 其用户群十 分庞大 因此 建设一个好的 Web 站点对于一个机构的发展十分重要 近年来 随着网络用户要求的不断提高及计算机科学的迅速发展 特 别是数据库技术在 Internet 中的广泛应用 Web 站点向用户提供的服务 将越来越丰富 越来越人性化 我们发现这样一个事实 一个用户在访问一个网站时一般来讲只 对该网站的部分内容感性趣 而且这种兴趣会持续一段时间 这点启 发了我们 如果能根据用户的喜好为不同的用户显示其个性化的页面 即着重显示该用户感兴趣的内容 将为用户节约大量的检索时间 而 且这样的网页显然是更具有吸引力的 一些站点已经在这方面作出了 一定的尝试 通常采用的方法是 在用户登陆时为其提供一系列的选 项 使用户能够对站点进行一些自主的设置 这样做能够使站点呈现 一定程度的个性化 但是对用户来讲 还是比较烦琐 而且在用户了 解一个站点前让其对站点进行设置 其结果未免有些粗糙 于是我们 构想了这样一种方案 对用户登陆后的动作进行跟踪 分析 发掘用 户点击的规律 即用户先后点击的关联规则 这样 在用户点击一个 主题 链接 之后 系统能够自动生成一页面 其中包含了该主题下 用户经常关注的内容 若干链接 这样便在无须用户作出任何额外工 作的情况下实现了为用户量身订做的个性化页面 如图 1 1 所示 5 图 1 1 个性化 Web 页面示意 要实现这样的功能 离不开后台数据库的支持 用户验证信息 收集到的用户点击信息 主题层次信息 分析得出的关联规则表等大 量的数据都由数据库管理系统管理 本文中数据库服务器端采用了 Microsoft Access 数据库作为 ODBC Open DataBase Connectivity 数据 源 并以先进的 ADO ActiveX Data Objects 技术进行数据库存取等 操作 使 Web 与数据库紧密联系起来 整个个性化页面生成系统主要由使用 Visual C 6 0 开发的关联 规则采掘系统和利用 IIS ASP 技术实现的个性化 Web 页面生成器两部 分组成 关联规则采掘系统对数据库中的历史记录进行分析 产生用 户关联规则表 页面生成器则负责记录用户行为和根据关联规则表动 态生成用户个性化 Web 页面 二者通过数据库服务器和 Web 服务器 6 连接 整个系统结构如图 1 2 所示 图 1 2 系统结构图 本文作者主要完成 Web 服务器端的用户注册 登陆系统 用户点 击序列记录 各种用户信息表的动态生成 规则表的解析及个性化页 面回显等功能模块的设计 实现与完善以及整个实验网站的组织建立 和测试工作 整个服务器端 Web 页面数为 45 其中包括 6 个 ASP 功 能页面 ASP 处理程序经优化精简后约为 500 行 Database 服务器 数据准备 关联规则采掘 页面生成器 用户 页面生成记录点击 Web 服务器 7 2 2 特殊技术困难特殊技术困难 我们已经提到 用户个性化页面是在用户登陆后浏览网页的过程 中由服务器即时生成再返回给用户浏览器的 它事先并不存在于服务 器 显然单纯的 HTML 无法提供这种页面 必须使用具有运算功能的 Web 技术来实现 在比较了现今几种动态页面开发技术后 我们选择 了比较成熟和先进的 WinNT IIS ASP 技术 它提供了强大的 Web Computing 功能和数据库操作功能 这将在第 3 部分详细介绍 在设计实现过程当中 还遇到一些特殊的技术困难 如何处理它 们直接影响到生成页面的质量和服务器端的效率 现将主要的技术困 难及其解决思路介绍如下 1 采集用户信息 用户访问的信息 即用户在站上的点击行为 是我们生成用户个 性化页面的根据 如何在不影响用户浏览的情况下记录下用户的每一 点击呢 这里 我们使生成页面上的每一链点都链接到一个名为 Record asp 的功能页面 并将该链点名称 亦即主题名 Topicname 作为参数传递 Record asp 只对该 Topicname 进行记录而不返回给用户 浏览器任何内容 随即指向生成页面的程序 并同时传递 Topicname 第 4 部分将对此过程进行详细的叙述 2 链接数据库 各功能模块中需要频繁的进行数据库操作 如果每遇到要使用数 据库便建立一次链接将在一定程度上增大系统开销 我们这里有效利 用了 ASP 的 Global asa 文件 使服务器事先建立数据库链接对象 所 有的数据操作都使用该链接 从而提高了服务器效率 具体做法请参 阅第 3 部分内容 3 可变的 SQL 语句 一个访问数据库的程序段 对于不同的用户以及一个用户的不同 8 行为 要其执行的 SQL 语句是不同的 其不同主要表现在查询 插入 或更新时的参数不同 于是我们将 SQL 语句定义为含变量的字符串 通过赋予变量不同的值便产生出适合的 SQL 语句串 再通过数据对象 的相应方法来执行它 完成所需的数据操作 这一方法的运用详见第 4 部分 3 对关联规则表进行解析 前面已提到 个性化页面的生成是基于用户关联规则表的 而该 表的关联规则字段长度不一 项目个数也不定 必须找到一种有效的 算法对其进行解析 分离出相关的 Topicname 这里 我们对关联规则 的形式进行分析 组合使用脚本语言中各种字串处理函数 设计出高 效的分解算法 具体算法见第 4 部分 4 寻求合理的支持度阀值和置信度阀值 关联规则表的生成受支持度阀值 minSup 和置信度阈值 minConf 的控制 它们的取值是否合理将直接影响到生成页面的理想程度 第 5 部分中对此进行了讨论 由于在对大多数技术困难的解决中频繁用到了 ASP 技术的许多独 特的性质和处理方法 这里有必要对 ASP 及相关技术的一些重要部分 进行介绍 以便于对全文的理解 3 3 ASPASP 技术综述技术综述 3 1 ASP 的产生的产生 近年来随着 Internet 技术的飞速发展及用户需求的不断升级 Web 页面技术也不断的推陈出新 使得 Web 站点的功能越来越强大 能够提供的服务种类越来越繁多 从 HTML Client Script 到 CGI 从 9 JAVA 的诞生到 ActiveX Web 页面设计人员不断受到冲击 微软公司 在总结了以往技术 重新思考 Web 页面设计的真正需要后 推出了 Active Server Pages ASP 一种用以取代 CGI Common Gateway Interface 通用网关接口 的技术 简单讲 ASP 是位于服务器端的脚本运行环境 通过这种环境 用户可以创建和运行动态的交互式 Web 服务器应用程序 如交互式 的动态网页 包括使用 HTML 表单收集和处理信息 上传与下载等 等 更重要的是 ASP 使用的 ActiveX 技术基于开放设计环境 用户 可以自己定义和制作组件加入其中 使自己的动态网页几乎具有无限 的扩充能力 这是传统的 Web 编写工具所远远不及的地方 使用 ASP 还有个好处 就在于 ASP 可利用 ADO Active Data Object 微软的一种 新的数据访问模型 方便快捷地访问数据库 从而使得开发基于 WWW 的应用系统成为可能 这也是本文选择 ASP 作为开发工具最重要的原 因之一 3 2 ASP 与与 IIS 3 2 13 2 1 IISIIS 简介简介 Wsb 服务器是 Web 应用程序的心脏 IIS Internet Information Server 是微软推出的 Windows NT Option Pack 的主要成员 作为 WindowsNT 的扩展 自推出以来已经有了很大发展 其体系结构是当 今市场上最受关注的 Web 服务器之一 新推出的 IIS4 0 版本增强了系 统安全性 具有服务器端脚本开发调试 内容管理和站点分析 崩溃 10 防护 内置 JAVA 虚拟机及全面支持 ASP 等强大功能 3 2 23 2 2 IISIIS 与与 ASPASP 的结合的结合 在过去 客户机 服务器结构的设计与 Web 的相关技术几乎处于 平行线上 两者相互独立并无法作出集成性的设计 现在我们利用 IIS ASP 构成三层式 Web 结构 如图 2 1 所示 的中间一层 将客户 机 服务器结构与 Web 密切结合 完成前后端两者的集成输出功能 使 得 Web 站点的开发更方便 实现的功能更强大 利用 IIS ASP 技术来集成 Web 前后端所带来的强大效益可归结 为以下几个方面 1 减少构建和维护成本 2 加快联机过程 3 应用软件集中在服务器端开发管理 4 前端可使用任何浏览器 IE Netscape 5 后端可存取任何数据库 SQL Access 6 可使用任何脚本语言开发 VBScript JavaScript PERL 后端数据库 ActiveX Server 元件 程序和计算 逻辑 数据库服务器 Microsoft IIS ASP 11 ActiveX Server 元件 前端浏览器 图 2 1 三层式 Web 结构示意图 3 3 ASP 的内部特点的内部特点 3 3 13 3 1 ASPASP 内部内部 6 6 大对象大对象 ASP 提供了 6 个功能强大的内部对象 每个对象具有各自的属性 Property 方法 Method 有的还拥有数据集合 Collection 与事 件 Event 它们共同完成 Web 中的一些重要工作 这 6 个对象及其 功能描述如表 2 1 所示 对象名称功能描述 Request从客户端取得信息 Response将信息送给客户端 Server提供一些 Web 服务器工具 Session储存在一个 Session 内的用户信息 该信息仅可被该用户访问 Application在一个 ASP Application 中让不同的客户端共享信息 ObjectContext配合 Microsoft Transaction 服务器进行分布式事务处理 浏览器 12 表 2 1 ASP 内部 6 大对象及其功能 合理地运用这些对象可以使原本复杂 烦琐的工作变得简捷而条 理清晰 我们可以用以下的语法直接使用这些对象 对象 属性 方法 数据集合 3 3 23 3 2 GlobalGlobal 文件文件 每一个以 Active Server Pages 为基础的应用程序都拥有一个 Global asa 文件 ASA 后缀名其实是 Active Server Application 的缩写 它位于每一个应用程序的基点目录之下 当 Active Server Pages 做下面 两个动作时 Server 便会去读 Global asa 文件 1 Web Server 启动之后 一个应用程序目录中任一个 ASP 文件 被提出第一个 HTTP 请求 Request 时 2 不具有任何 Session 的客户端向 Server 请求一个 ASP 文件时 前面已经提到 Application 和 Session 这两个 ASP 的内部对象 Application 对象内的信息供所有正在执行该应用程序的用户分享 它 创建于 Web Server 启动后一个应用程序中任一 ASP 文件被提出第一个 HTTP 请求时 结束于 Server 端停止运行 而 Session 对象仅属于一位 用户 维持一个用户端的信息 其他用户无法访问 它创建于一个不 具有 Session 的用户向 Server 请求一个 ASP 文件时 结束于该 Session 到期 即用户端超过某时间段没有向 Server 提出要求或刷新 Web 页面 或 Abandon 语句的调用 可见 Global asa 文件的调用与 Application 13 与 Session 这两个对象密切相关 事实上我们通常在 Global asa 文件 中写入以下内容 1 Application 或 Session 的开始事件 Start event 2 Application 或 Session 的结束事件 End event 这样 在一个 Application 或 Session 对象被创建或结束时 系统 会自动完成 Global asa 文件中写入的相应事件 值得注意的是 如果一 个 Application 与一个 Session 同时开始 Active Server Pages 会先处理 Application 的开始事件 而如果一个 Application 与一个 Session 同时结 束 Active Server Pages 则会先处理 Session 的结束事件 3 4 利用利用 ADO 访问数据库访问数据库 ADO ActiveX Data Objects 是一种操作 Microsoft 所支持的数据 库的新技术 在 ASP 中 ADO 可以看作是一个服务器组件 Server Component 更简单点说 是一系列的对象 应用这些功能强大的对 象 即可轻松完成对数据库复杂的操作 本文中个性化页面的实现便 大量地用到了 ADO 技术 具体的操作步骤可以归纳为以下几步 1 创建数据库源名 DSN 2 创建数据库链接 Connection 3 创建数据对象 4 操作数据库 5 关闭数据对象和链接 每一步的作法如下 一 创建数据源名一 创建数据源名 DSN Date Source Name 即数据源名称 我们知道 ODBC 是一种 访问数据库的方法 只要系统中有相应的 ODBC 驱动程序 任何程序 14 就可以通过 ODBC 操纵驱动程序的数据库 比如我们系统中有 Access 的 ODBC 驱动程序 那么即使我们没有 Access 软件 也可以在我们的 程序中对一个 Access 的 MDB 数据库加 删 改记录 而且我们根本 不用知道这个数据库是放在哪里的 我们只要写出 SQL 语句 ODBC 驱动程序就会帮我们做一切事情 我们在给 ODBC 驱动程序传 SQL 指 令时 即是用 DSN 来告诉它到底操作的是哪一个数据库 如果数据库 的平台变了 比如我们改用了 SQL Server 的数据库 只要其中表的结 构没变 我们就不用改写我们的程序 只要重新在系统中配置 DSN 就 行了 由此可见 DSN 是应用程序和数据库之间的桥梁 二 创建数据库链接二 创建数据库链接 Connection 链接用以保持一些关于正在访问的数据的一些状态信息 以及链 接者信息 ASP 文件中如果要访问数据 必须首先创建与数据库的链 接 其语法如下 set mConn Server createObject ADOBD CONNECTION 这条语句创建了链接对象 mConn 接下来 mConn Open dsn1 vsername password 这条语句打开链接 用到了 DSN 本例为 dsn1 其后的两个 参数分别是访问数据库的用户名和口令 为可选参数 以上两个步骤缺一不可 因为链接对象的创建与打开是两回事 只有打开了才真正可以使用 三 创建数据对象三 创建数据对象 Record Set ADO 中的数据对象通常保存的是查询结果 Record Set 是 ADO 中最复杂的对象 有许多属性和方法 Record Set 保存的是一行行的记 录 并标有一个当前记录 以下是创建方法 Set Record Set mConn Execute sqtStr 这条语句创建并打开了对象 Record Set 其中 mCon 是先前创建 的链接对象 sqtStr 是一个字串 代表一条标准的 SQL 语句 例如 sqlStr SELECT FROM tab1 15 Set Record Set mConn Execute sqlStr 这条语句执行后 对象 Record Set 中就保存了表 tab1 中的所有记 录 四 操作数据库四 操作数据库 我们通过调用链接对象的 Execute 方法来将查询结果返回给一个 数据对象或进行插入 删除等操作 例如 sqlStr INSERT INTO tab1 VALUES 1 2 mConn Execute sqlStr 执行插入操作 五 关闭数据对象和链接对象五 关闭数据对象和链接对象 在使用了 ADO 对象之后要关闭它 因为它使用了一定的服务器 资源 通过调用方法 close 实现关闭 然后再释放它 Record Set close Set Record Set Nothing 关闭创建的数据对象 mConn close Set mConn Nothing 关闭创建的链接对象 3 5 ASP 与与 CGI 的比较的比较 CGI Common Gateway Interface 通用网关接口 也是 Internet 上一 种功能强大的 Web 页面技术 其工作方式有别于 ASP 我们现对二者 进行比较 Active Server Pages 开发开发 Web 应用程序的特点 应用程序的特点 1 完全嵌入 HTML 与 HTML Script 语言完美结合 2 无须手动编译和链接程序 3 面向对象 并可扩展 ActiveX Server 组件功能 16 4 使用脚本语言 JavaScript VBScript 或 PERL 编写 5 存取数据库轻松容易 使用 ADO 组件 6 可使用任何语言编写自己的 ActiveX Server 组件 7 无浏览器兼容问题 8 程序代码隐藏 客户端仅能看到 ASP 输出的 HTML 文件 9 缩短 Web 开发时间 相比之下 使用相比之下 使用 CGI 开发开发 Web 应用程序具有以下缺点 应用程序具有以下缺点 1 不易与 HTML 文件集成 2 须使用其他较复杂的语言来开发 CGI 程序 3 程序开发时间较长 4 存取数据库不容易 5 每个 CGI 程序被不同用户执行时都得重新执行一次 并占去 Server 的一个端口 Port 降低 Server 效率 可见 ASP 在数据库访问 与 HTML 的集成 提高服务器的效率 等诸多方面都优于 CGI 更适应 Web 应用程序开发的需要 因此本文 选择了 ASP 作为个性化页面生成器的开发工具 4 4 个性化页面生成器系统的实现个性化页面生成器系统的实现 作者在 PC 机上 WindowsNT 环境下 利用 IIS ASP 技术实现了 个性化页面系统的 Web 服务器端各功能模块 具体 ASP 开发工具为 Microsoft Visual InterDev 6 0 数据库采用 Microsoft Access 数据库 该 服务器端生成器系统主要包括 1 用户注册 登陆 17 2 用户点击序列记录 3 根据用户规则表动态生成个性化页面 以下介绍了各功能模块的实现方法及一些特殊技术问题的解决 4 1 与数据库的链接与数据库的链接 由于各模块频繁地与数据库打交道 如何与数据库链接就显得十 分重要 前面我们已经提到 ASP 采用 ADO 技术访问数据库 ADO 允许多个访问共享一个链接 即仅需要一个 Connection 对象与数据库 链接 就可重复不断地利用它访问一个数据库 本文仅用到一个数据 库 名为 WebsiteDB 而且在第一个用户登陆时就要进行数据库操作 因此我们希望服务器开始便和数据库链接 所有对数据库的访问都使 用这一链接 这样有利于提高服务器的效率 我们采用如下方法 首 先在 WinNT 的控制面板的 ODBC 数据源选项中将 WebsiteDB 库设置 为系统 ODBC 数据源 再在本应用程序的 Global asa 文件中建立与 WebsiteDB 库的链接 即加入以下语句 Sub Application OnStart Application g dbConnection server CreateObject ADODB conne ction Application g dbConnection open WebsiteDB End sub Sub Application OnEnd Application g dbConnection close End sub 其中 Application OnStart 表示 Application 的开始事件 18 Application OnEnd 表示 Application 的结束事件 这样 在服务器被提 出第一个 ASP 请求而建立 Application 对象时 就会去执行 Global asa 从而建立链接对象 Application g dbConnection 并打开 与 WebsiteDB 库的链接 以后对 WebsiteDB 库的所有操作都是基于此 链接 该链接关闭于服务器停止运行 由 Application OnEnd 程序段 决定 4 2 用户注册用户注册 登陆系统登陆系统 要实现用户页面的个性化 首先要做的显然是弄清登陆的用户是 谁 作者原先的构想是根据用户计算机的 Cookie 信息判断用户身份 这样 只要用户打开该站点首页 无须填入身份验证信息 服务器便 能得知其身份 但是 现在有的用户并不是在固定的计算机上上网 而且有的用户经常删除 Cookie 信息 这样 利用 Cookie 信息来识别 用户的可靠性并不高 所以我们还是采用注册 登陆的方式来识别用户 新用户注册时需要填入的是 UserName 用户名 Password 密码 ConfirmPassword 效验密码 三个信息 当用户点击 OK 按钮或按回 车后 服务器将判断用户填入信息是否完整 该 UserName 是否有人 使用以及 Password 与 ConfirmPassword 是否相同 若输入无误则将新 用户资料加入 UserInfo 表 生成该用户的 Behavior 表和 LevelTree 表 整个处理注册的过程由名为 Register asp 的 ASP 程序实现 UserInfo 表是系统事先生成的用于保存各用户资料的表 它的格 式如下所示 UserNameUserIDPassword Zhang1123 Lee2asdf 19 表 3 1 UserInfo 表 其中 UserID 字段设置为系统自动生成的递增的整数 用于标识 一个用户 因为以后将频繁地用到它 所以将 UserID 保存在用户的 Session 中 命名为 session g UserID 用户的 Behavior 表用于记录一个用户的点击序列 其名称形式为 UserID Behavior 例如 1 Behavior 表格式如下所示 BehaviorIDClickIDTopicName 11News 12Papers 13Publications 21Papers 22Papers of 1999 表 3 2 1 Behavior 表 其中 BehaviorID 表示用户第几次上站 ClickID 表示用户一次上 站过程中第几次点击 TopicName 为点击的主题 当然 用户注册时 生成的是空表 生成用户 Behavior 表的语句为 sql create table UserID Behavior BehaviorID int not null sql sql ClickID smallint not null sql sql TopicName varchar 50 not null application g dbConnection execute sql 其中 先定义 SQL 语句字符串 sql 再通过数据库链接对象 application g dbConnection 的 execute 方法执行该 SQL 语句 本文中 20 均采用此方法进行数据库操作 用户的 LevelTree 表用于存放以后生成的用户主题层次树 其名 称形式为 UserID LevelTree 如 1 LevelTree 等 格式如下所示 LevelNameLevelIDTopicName 索引0Topics 系1News 表 3 3 1 LevelTree 表 生成该表的过程与生成用户 Behavior 表过程相似 已经注册的用户登陆时只须输入 UserName 和 Password 系统根 据 UserName 查找 UserInfo 数据库 将查找到的 Password 与用户输入 Password 比较 若相同则做相关初始化操作 允许用户进入网站 否 则给出提示信息 这些过程由 ASP 程序 Login asp 实现 初始化操作包括查找用户的 UserID 和设置此次行为的 BehaviorID 值 其中 设置 BehaviorID 的过程如下 sql select BehaviorID from UserID sql sql Behavior order by BehaviorID DESC set rsBehaviorID application g dbConnection execute sql if rsBehaviorID EOF then session BehaviorID 1 else session g BehaviorID rsBehaviorID BehaviorID 1 end if 其含义为 在用户的 Behavior 表中查找所有 BehaviorID 并以降 序排列 存放到数据记录集对象 rsBehaviorID 中 如果 rsBehaviorID 为空 则表示用户第一次上站 设 BehaviorID 为 1 否则将当前数据 21 游标所指的 BehaviorID 初始时游标总指向首行 加 1 作为本次行为 的 BehaviorID 并保存到用户 Session 中 这样便能保证 BehaviorID 随 着用户上站次数而递增 其中 EOF 属性标识记录行的结尾 为一布 尔型量 其值为真表示当前游标所指已是结尾 最后一行记录之后 我们经常使用它来判断记录集是否为空 注册和登陆过程中所进行的数据库操作都利用了 Application g dbConnection 链接对象 通过型如 Set RSet Application g dbConnection Execute sql 的语句建立数据记录集对象 其中 RSet 为数据对象名称 存放 sql 查询的结果数据集 供程序使用 数据操作结束后 使用型如 RecordSet close 的语句关闭数据对象 4 3 记录用户点击序列记录用户点击序列 我们采用记录用户上站后的点击序列来跟踪用户的访问情况 怎 样才能让服务器得知用户点击了哪一个链接呢 普通的链接只能直接 引导用户浏览器至另一 Web 页面 不能对用户点击的链接进行记录 本文采用的方法是给每一个链接起一个不重复的名称 TopicName 所有链接都指向一个名为 Record asp 的 ASP 程序 并传递参数 TopicName 由 Record asp 对 TopicName 进行记录 用于存放用户所点击 Topic 的 Behavior 表已在用户注册时生成 如表 3 2 所示 Record asp 中记录点击的算法描述如下 1 TopicName Request QueryString TopicName 2 UserID session g UserID 3 BehaviorID session g BehaviorID 4 ClickID session g ClickID 22 5 BehaviorID trim BehaviorID 6 ClickID trim ClickID 7 session g ClickID session g ClickID 1 8 定义记录 TopicName 到数据库的 sql 语句字符串 9 application g dbConnection execute sql 10 URL GenPage asp TopicName TopicName 11 Response Redirect URL 其含义为 首先 从链接传递的参数中取回 TopicName 从 Session 中取回 UserID BehaviorID 和 ClickID 其中 UserID BehaviorID 在登陆时得到并存入 Session ClickID 在用户登陆 时自动设置为 1 由 Global asa 中的以下语句实现 Sub Session OnStart session g ClickID 1 End Sub 将 BehaviorID 和 ClickID 转换为字符串 利用 trim 函数 将 Session 中的 session g ClickID 值加 1 供下个记录使用 定义插入点击记录 的 SQL 语句串 然后利用链接对象 application g dbConnection 执 行 SQL 语句 将用户点击信息写入数据库 记录完成 指向生成个性 化页面的 GenPage asp 程序 并传递参数 TopicName 其中一个需要解决的问题是 对于不同用户 要插入的表不同 被插入的内容也不同 这样 实现插入操作的 SQL 语句必须是可变的 显然需要在其中加入变量 这里采用以下语句 sql insert into 23 sql sql UserID Behavior sql sql values sql sql BehaviorID sql sql ClickID sql sql TopicName 这样 就可以根据不同的用户产生不同的 SQL 插入语句 对用户点击的记录完成后 紧接着便生成用户的个性化页面 4 4 页面的生成页面的生成 个性化页面的动态生成是整个系统中最复杂的部分 其原理是 查找事先生成的用户关联规则表 若有关于当前 TopicName 的可用规 则 则分离处理这些规则 得到需要显示的相关链接 利用它们组织 生成一新的页面 该页面上的链接同样要具有记录用户点击并触发生 成新的个性化页面的功能 这是一个类似递归的过程 如果关联规则 表中没有当前可用信息 则返回事先存储于服务器上的缺省页面 以下将对关联规则表和具体页面生成过程进行介绍 4 4 14 4 1 关联规则表关联规则表 关联规则表是对用户的 Behavior 表进行分析后 得出的有关用户 点击的链接之间关联规则的列表 该表的生成与用户的访问是异步的 即无论用户访问频率怎样 由系统管理人员定期地利用关联规则生成 程序对所有用户的关联规则表进行更新 用户关联规则表命名方法为 UserID Rules 例如 1 Rules 格式如下表所示 RuleSupportConfidence People Faculty 0 340 77 24 Topics Publications 0 550 55 People Topics Faculty 0 310 4 Papers Topics News Publications 0 30 6 表 3 4 1 Rules 表 这里 规则 Rule 是形如 X Y 的表达式 其中 X 和 Y 都是 TopicName 的集合且 X Y 例如 People Faculty Papers Topics News Publications 关联规则 X Y 由置信度 c confidence 和支持度 s support 来约束 此处置信度 c 定义为 对所有 动作集 用户一次上站的点击集 含有 X 中的项目的动作集中有 c 个也含有 Y 支持度 s 定义为 包含 X Y 的动作集数占所有动作集总 数的 s 置信度表示关联规则的强度 支持度表示该规则出现的频度 具有高置信度和高支持度的关联规则称为强关联规则 否则称为弱关 联规则 我们用支持度阈值 minSup 和置信度阈值 minConf 来控制关联 规则的有效性 即 confidence 大于 minConf support 大于 minSup 的规 则被认为有效 否则为无效 本文所用的关联规则表中的规则都是有效的 换句话说 那些不 满足支持度阈值和置信度阈值限制的规则已经在生成该表时被筛选掉 了 所以我们这里不考虑置信度和支持度的大小问题 要用到的信息 只是关联规则表达式 我们已经看到 关联规则表达式长短不一 所含 TopicName 数目 也不定 格式很不规整 如何从关联规则表达式中分离出各 TopicName 供程序使用便成了一个关键问题 我们将在网页的生成部 分详细介绍 25 4 4 24 4 2 页面生成页面生成 当用户点击的主题被 Record asp 记录下来以后 随即进入页面生 成程序 GenPage asp 同时传递被点击主题 TopicName 页面生成程序从 用户 Session 中取回 UserID 确定用户身份 然后根据该用户关联规则 表 并结合主题层次树表决定需要显示的主题 链接 接下来组织生 成页面 其中要处理的几个主要问题是 1 如何正确分解关联规则表达式 2 如何确定哪些主题需要被显示 3 如何组织页面 关联规则表达式的形状很不规整 但是我们发现其中有几个标志 性的符号 如 和 它们可以看作各部分间的分 隔符 这里采用了多个 VBScript 的字串处理函数对其进行分解 首先从关联规则表中找出所有 左边含有当前被点击 TopicName 的表达式 然后逐一分离出 右边的相关主题 由于 并不是每一个与当前 TopicName 关联的主题都要被显示 我们只希望 显示那些处于当前 TopicName 所处层次以后层次的相关主题 我们分 离出一个马上判断其是否应该被显示 这要借助于用户的主题层次树 表即用户 LevelTree 表 如表 3 3 所示 它记录了用户访问过的主题 的层次结构信息 从 右边分离出的主题有可能重复 比如当前 TopicName 为 A 且存在关联规则表达式 A B D 和 A G D E 则 D 会被 分离出两次 若分离出立即显示则有可能将 D 显示两次 同一页面上 出现两个相同的主题 链接 是我们不希望看到的 因此 这里将需 要被显示的主题保存到一个用户临时表 Temp 中待处理 用户 Temp 表 的命名规则为 UserID Temp 如 1 Temp 该表只含一个属性 即 TopicName 页面生成后 Temp 表将被删除 26 分解关联规则表达式 生成待显示主题集的算法描述如下 0 从用户 LevelTree 表查找当前 TopicName 所在层次数 存于变 量 level1 1 从用户 Rules 表取回 左端集合中含有当前 TopicName 的关联规则表达式并存于数据集对象 rsrule 中 2 while not rsrule EOF 处理 rsrule 中所有关联规则 3 start 1 4 b mid rsrule Rule start 1 5 while b 定位到 右端 6 start start 1 7 b mid rsrule Rule start 1 8 end while 9 start start 2 指向 右端第一个主题 10 while b 处理 右端所有主题 11 c start 12 b mid rsrule Rule c 1 13 length 0 14 while b and b 确定主题长度 15 length length 1 16 c c 1 17 b mid rsrule Rule c 1 18 end while 19 Target mid rsrule Rule start length 取出一个相关主题 20 从用户 LevelTree 表查找当前相关主题 Target 所在层次数 存于变量 level2 21 if level2 level1 then 22 将 Target 存入用户 Temp 表中 27 23 end if 24 start c 1 调整参数 25 end while 26 rsrule movenext 指向下一关联规则表达式 27 end while 接下来要做的是根据用户 Temp 表内容组织页面 这里采用如下 方法取回待显示主题 sql select distinct TopicName from sql sql UserID sql sql temp set rsList Application g dbConnection execute sql 由于使用了 distinct 参数 取到数据对象 rsList 中的主题不存在重 复 再利用 html 语言将 rsList 中的主题按每行一个的格式显示 每个 显示主题的链接由语句 href record asp TopicName 确定 其中的值为该链接的 TopicName 字 符串 这样 生成的个性化页面便也具有了记录用户点击和触发生成 下一页面的功能 使 记录 动态生成页面 这一过程能够循环反复地 进行 到此 我们已生成了具有用户个性化的页面 但是我们不应该剥 夺用户访问缺省页面的权利 于是 在页面中加入了指向该页大标题 即用户之前点击的 TopicName 下的缺省页面的链接 做法是 从 主题信息表 TopicInfo 中查找到该页大标题的缺省页面地址 URL 在先前生成的页面中添加 All contents 项 其链接由 28 href 决定 其中的值即是该缺 省页面地址 5 5 实验网站的建立及测试实验网站的建立及测试 5 1 DB KE Site 站点的建立站点的建立 在实现了整个个性化页面生成器系统之后 需要根据该原理建立 一个网站对其性能进行测试 这里以数据库与知识工程研究所的主页 内容为参考 在 Microsoft InterDev 环境下建立了一个测试站点 命名 为 DB KE Site 该站点总体上为树型结构 如下图所示 Welcome EnglishiChinese Research ResultsPublicatio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年太湖创意职业技术学院单招职业技能考试题库附答案解析
- 2026年呼和浩特职业学院单招职业倾向性考试必刷测试卷及答案解析(名师系列)
- 2026年广西工商职业技术学院单招职业适应性考试必刷测试卷附答案解析
- 2026年山东旅游职业学院单招职业适应性测试题库及答案解析(夺冠系列)
- 2026年共青科技职业学院单招职业技能测试必刷测试卷附答案解析
- 2026年广东省深圳市单招职业倾向性考试必刷测试卷及答案解析(名师系列)
- 2026年内江职业技术学院单招职业技能测试必刷测试卷附答案解析
- 2026年山东圣翰财贸职业学院单招综合素质考试必刷测试卷及答案解析(名师系列)
- 2026年安徽省池州市单招职业适应性测试题库附答案解析
- 2026年山西省长治市单招职业倾向性测试题库及答案解析(夺冠系列)
- DZ/T 0132-1994钻孔压水试验规程
- 2025-2030印度尼西亚卡车行业市场现状供需分析及投资评估规划分析研究报告
- JJG(交通) 133-2023 落锤式弯沉仪
- 新时代中国健康与卫生事业历史成就
- 软装家装设计全案解析
- 烟草证免责协议书
- 安宁疗护国内外发展现状及改进策略
- 学校补课收费协议书
- 《斯大林格勒战役》课件
- 生态环境标准应用 课件 地下水质量标准3
- 设备采购安装方案投标文件(技术方案)
评论
0/150
提交评论