目录介绍:
- 1、要做一个mfc问答软件,在数据库方面要用什么技术?odbc,dao,还是ado?
- 2、什么是智能问答系统
- 3、为什么知识图谱可以应用于问答系统
- 4、什么是基于JAVA技术?
- 5、基于什么技术的什么系统的设计与实现
- 6、基于什么技术的什么程序的实设计与实现
要做一个mfc问答软件,在数据库方面要用什么技术?odbc,dao,还是ado?
ADO
来自ITwiki,开放的中文IT百科
Jump to: navigation, jumptoSearch
微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的命令对象来执行。
ADO被设计来继承微软早期的数据访问对象层,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。ADO在1996年冬被发布。
ADO包含一些顶层的对象:
连接,代表到数据库的连接
记录集,代表数据库记录的一个集合
命令,代表一个SQL命令
记录,代表数据的一个集合
流,代表数据的顺序集合
错误,代表数据库访问中产生的意外
字段,代表一个数据库字段
参数,代表一个SQL参数
属性,保存对象的信息
ADO组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。
在新的编程框架.NET Framework中, 微软也提供了一个面向Internet的版本的ADO,称为ADO.NET。其对象模型和传统ADO差别很大。
DAO
DAO(Database Access Object)使用Microsoft Jet数据库引擎来访问数据库。Microsoft Jet为象Access和Visual Basic这样的产品提供了数据引擎。
与ODBC一样,DAO提供了一组API供编程使用。MFC也提供了一组DAO类,封装了底层的API,从而大大简化了程序的开发。利用MFC的DAO类,用户可以编写独立于DBMS的应用程序。
DAO是从Visual C++4.0版开始引入的。一般地讲,DAO类提供了比ODBC类更广泛的支持。一方面,只要有ODBC驱动程序,使用Microsoft Jet的DAO就可以访问ODBC数据源。另一方面,由于DAO是基于Microsoft Jet引擎的,因而在访问Access数据库(即*.MDB文件)时具有很好的性能。
DAO和ODBC的相似之处
DAO类与ODBC类相比具有很多相似之处,这主要有下面几点:
二者都支持对各种ODBC数据源的访问。虽然二者使用的数据引擎不同,但都可以满足用户编写独立于DBMS的应用程序的要求。
DAO提供了与ODBC功能相似的MFC类。例如,DAO的CDaoDatabase类对应ODBC的CDatabase类,CDaoRecordset对应CRecordset,CDaoRecordView对应CRecordView,CDaoException对应CDBException。这些对应的类功能相似,它们的大部分成员函数都是相同的。
AppWizard和ClassWizard对使用DAO和ODBC对象的应用程序提供了类似的支持。
由于DAO和ODBC类的许多方面都比较相似,因此只要用户掌握了ODBC,就很容易学会使用DAO。实际上,用户可以很轻松地把数据库应用程序从ODBC移植到DAO。
Visual C++随盘提供了一个名为DaoEnrol的例子,该例实际上是Enroll的一个DAO版本。读者可以打开DaoEnrol工程看一看,它的源代码与Enroll的极为相似。读者可以按照建立Enroll的步骤来建立DaoEnrol,其中只有若干个地方有差别,这主要有以下几点:
选取的数据源不同。在用AppWizard创建DaoEnrol时,以及在用ClassWizard创建CDaoRecordset类的派生类时,在Database Options对话框中应该选择DAO而不是ODBC。而且DAO的数据源是通过选择一个.MDB文件来指定的,即点击“...”按钮后在文件对话框中选择要访问的.MDB文件。
记录集的缺省类型不同。ODBC记录集的缺省类型是快照(Snapshot),而DAO则是动态集(Dynaset)。
参数化的方式不同。DAO记录集的m_strFilter和m_strSort中的参数不是“?”号,而是一个有意义的参数名。例如,在下面的过滤器中有一个名为CourseIDParam的参数。
m_pSet-m_strFilter ="CourseID = CourseIDParam";
在DoFieldExchange函数中,有下面两行:
pFX-SetFieldType(CDaoFieldExchange::param);
DFX_Text(pFX, _T("CourseIDParam"), m_strCourseIDParam);
DFX函数的第二个参数也是CourseIDParam。
处理异常的方式不同。例如,在删除记录时,对异常的处理如下所示:
try
{
m_pSet-Delete();
}
catch(CDaoException* e)
{
AfxMessageBox(e-
m_pErrorInfo-m_strDescription);
e-Delete();
}
除了上述差别外,AppWizard和ClassWizard也隐藏了一些细微的不同之处,例如,DAO记录集是使用是DFX数据交换机制(DAO record field exchange)而不是RFX,在DAO记录集的DoFieldExchange中使用的是DFX函数而不是RFX函数。
10.8.3 DAO的特色
DAO可以通过ODBC驱动程序访问ODBC数据源。但DAO是基于Microsoft Jet引擎的,通过该引擎,DAO可以直接访问Access、FoxPro、dBASE、Paradox、Excel和Lotus WK等数据库。CDaoDatabase类可以直接与这些数据库进行连接,而不必在ODBC管理器中注册DSN。例如,下面的代码用来打开一个FoxPro数据库:
CDaoDatabase daoDb;
daoDb.Open( “”,FALSE,FALSE,"FoxPro 2.5;DATABASE=c:\\zyf");
CDaoDatabase::Open函数用来连接某个数据库,该函数的声明为:
virtual void Open( LPCTSTR lpszName, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = _T("") );
throw( CDaoException, CMemoryException );
什么是智能问答系统
智能科普问答系统通过对数据的深度加工和组织管理、以更自然的交互方式满足用户更精确的信息需求。智能科普问答系统借助互联网,突破时间和空间的限制,让公众可以随时随地获取自己想要的科学信息。
智能科普问答系统以一问一答形式,精确地定位网站用户所需要的提问知识,并给网站用户提供交互服务。可以实现的功能有:
1、相关问答推送。当网站用户提出问题时,系统不仅将问题答案推送出来,而且会将与这个问题相关的知识也都推送出来供用户查询,这样就做到了一次提问全面掌握所有信息。
2、提问智能提示。用户在提问的过程中, 系统将已经输入的内容自动分析给予优化的补全或相关提示。
3、焦点问题自动排行。对在一定的时间内,用户对知识提问的热度,系统自动聚焦,并按照访问频度将热点知识集中在系统页面上热点词聚焦 系统对用户提交的业务关键词进行统计,并按照访问的频度进行聚焦,将与关键词相关的业务列表自动链接,形成业务热点关键词。
4、显在线客服问答。模拟在线客服人员,以网站智能客服形式完成客服作用。
5、引导式交互客服服务。将常见问题整理成若干流程诊断型的知识,通过引导交互式地服务,尽量从Web端解决客户常见问题。
6、客服座席协助。完成专家坐席功能,在普通坐席人员无法回答问题时提供标准化的知识协助,帮助普通客服人员快速,准确回答。
为什么知识图谱可以应用于问答系统
知识图谱与问答系统
摘要: 领域知识图谱,是下一代搜索引擎、问答系统等智能应用的基础设施,目前出现的产品有:百度“知心”、搜狗“知立方”等。本篇将介绍知识图谱基础知识,及其在自然语言处理方面(主要是问答系统)的应用。
1. 前言
知识图谱(knowledge graph),是下一代搜索引擎、问答系统等智能应用的基础设施,目前出现的产品有:百度“知心”、搜狗“知立方”等。本篇将介绍知识图谱基础知识,及其在自然语言处理方面(主要是问答系统)的应用。
2. 知识图谱概念
知识图谱,是一种基于有向图(directed graph)的数据结构,由节点(points)及有向边(directed edges)组成,图中的每个节点称为实体(Entity),边代表实体间的逻辑关系(Relation)。
举一个例子,这是一个简单地描述旅游景点的知识图谱:
现在来解释为什么“知识图谱是下一代搜索引擎、问答系统等智能应用的基础设施”,如果把智能系统看成一个大脑,那么知识图谱就是大脑中的一个知识库,它使得机器能够从“关系”的角度去分析、思考问题。以上图为例,从知识图谱中可以获取“泰山的海拔高度为1545米”、“衡山和恒山发音相同”等简单知识。
3. 知识图谱的表示
知识图谱可以使用三元组(entity-1,relation,entity-2)来表示,每一条记录描述一个事实,例如:(五岳,五岳之一,泰山)表示“泰山是五岳之一”这样一个事实。需要注意的是,如果relation 是确定的,那么entity-1与entity-2 的位置不能够颠倒的,因为一个三元组描述一条有向边(事实);实体不一定得是现实生活中的一个具体事物,也可以是事物的一个属性值,此时关系就是该属性。
我们用三元组来存储知识图谱,这时还需要考虑一个问题,那就是实体识别(Entity Recognition)与实体消歧(Entity Disambiguation)。例如,实体“苹果”有可能是指水果苹果,也可能是指iphone。这时,我们对知识图谱需要做一些处理,修改一下搜索策略。
在建立知识图谱过程中,若发现歧义,则再增添对应上级节点,在筛选“苹果”一词时使用上级节点来消歧。这里再次强调知识图谱仅是基础设施 。后面会通过几个例子说明知识图谱的应用价值;再介绍知识推理(Knowledge Reasoning)技术,即怎样通过与用户互动教会智能系统完善知识图谱。
4. 知识图谱的应用
传统搜索引擎只是简单地根据用户输入的关键词去筛选目标网页,然后给出一堆网页链接。知识图谱的应用,除了给出相应的网页链接外,还会尝试提供一些更加智能化的答案。例如,用户在必应搜索输入“taj mahal”将得到如下结果:
这里提供泰姬陵的近义词、旅游信息、地理位置、古代世界七大奇迹等,从而更好地发掘用户意图, 而不像传统搜索引擎那样死板,需要用户自己一条一条去筛选信息, 这样知识图谱技术就具有很大的商业价值了。
又例如,我直接在百度搜索输入“乒乓球”, 得到以下结果(其实我只是想搜索一下“张继科”,但是一时间忘了他的名字):
同时,知识图谱的应用能够使得搜索引擎获得一定的推理能力。举一个例子,在百度搜索输入“梁启超的儿子的妻子”,传统搜索引擎只是简单地匹配网页,很难真正地理解用户意图,更别说回答这个问题了。然而知识图谱却可以令问题变得简单起来,我们先从知识库中获取梁启超的儿子是梁思成,然后再获取梁思成的妻子是林微因。
这样就能增强搜索引擎与用户间的互动,逐步变成一个智能问答系统。
5. 知识推理技术
这里再次强调知识图谱仅是基础设施,因为它真的很简单,也没有什么高大上的技术,我们仅仅只是想将知识用这样一个形式存起来,以便由简单的知识学习出更高深的知识。举一个例子,知识图谱中仅存有如下信息:
那么智能问答系统是无法回答类如“康熙与乾隆之间是什么关系?”知识推理类的问题的,这时可以用过简单地加入人工规则:“父亲+父亲→祖父”来更新知识图谱,或者直接从用户互动中学习规则,当然用户互动时就需要上统计知识了,不能说有网友回答“国籍相同关系”那么所有的祖父与孙子都是“国籍相同关系”。
接下来我们来看一个更复杂的例子,在百度搜索引擎中输入“孕妇可以吃荔枝吗?”得到如下结果:
这时智能问答系统可以返回“59%的网友认为能吃,28%的网友认为不能吃,13%的网友认为不能吃”。若用户继续问“不能吃的理由是什么?”,那就返回“不能吃”的网友回答。下面通过这个例子来思考统计机器学习技术在知识推理中的应用。
我们分析一下,这些“网友回答”有些来自“宝宝树”,有些来自“有问必答网”,有些来自“育儿网”,我们可以利用爬虫去爬这些网站的问题及其回答,然后对问题做聚类,先构建如下知识图谱:
具体问题与回答之间的逻辑关系边一开始留空,我们再对语义边上分类技术,把空余的边填补完整,当然也可能误分类,例如百度例子中的第一个回答,“慎吃”被归为“能吃”。最后再对这些边做统计,就可以回答类似问题,利用语料库做知识推理,学习知识库里没有的知识,完善知识图谱。
Reference
知识图谱——机器大脑中的知识库
知识图谱的应用
知识图谱,为移动搜索而生
什么是基于JAVA技术?
1.基于JAVA技术就是在java虚拟机里运行的各种系统,使用java的类库
2.JAVA技术有什么特点
a. JAVA技术最大的特点是平台无关性,所以不会局限于某 种操作系统(window),不会受制于人
b. 另外一个特点是技术开源性,开发人员可以清楚地看到技术的实现并可以根据自己的需要修改,这是许多大的公司首要考虑的
c.免费的
d.安全的 windows 病毒多阿
基于什么技术的什么系统的设计与实现
基于JSP技术的试题库系统的设计与实现;
基于模板技术的网站内容管理系统的设计与实现;
基于Java技术的图书管理系统的设计与实现;
基于WiFi技术的定位系统的设计与实现;
基于构件技术的报表系统的设计与实现。
基于什么技术的什么程序的实设计与实现
题主是准备走一个基于xxx技术的xxx系统设计与实现的毕业设计吗?
如果你是学计算机的话, 推荐用javaweb来实现一个xxx管理系统网站, 毕竟javaweb是目前技术最成熟, 比如各种学生管理系统, 寝室管理系统, 人力资源管理系统等等
如果对自己要求高的话可以试试做一个在线商城这样的复杂项目, 项目技术一般都是Eclipse, springmvc, mybatis, hibernate, shiro, mysql这类 希望能够采纳
网友评论
最新评论
数据源的COM组件。它提供了编程语言和统一数据访问方式OLE DB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问数据库的时候,关于SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO中的
可以通过ADO中的命令对象来执行。 ADO被设计来继承微软早期的数据访问对象层,包括RDO (Remote Data Objects) 和DAO(Data Access Objects)。ADO在1996年冬被发布。 ADO包含一些顶层的对象: 连接,代表