日期:2014-05-18  浏览次数:20568 次

Analysis Services 数据采矿应用的疑问

小弟目前想设计一个智能回复系统  

之前设计的思路是利用 <你说什么> 对应 <我回什么> 然后加入大量的语句数据 在加上全文索引模糊搜索

的回复系统 但这个设计上 真正能做到对应任何<你说什么>

我都能回出一句不是鸡同鸭讲的句子 感觉能力有限。  

但是最近不停的花时间在数据库的数据采矿上 发现其实SQL SERVER (我用的是SQL SERVER2008R2)

可以藉由着数据采矿 去做一些智能的应用

这全都要归功于SQL SERVER内建强大的算法在数据采矿上

之前花了不少时间去一一研究了这些算法的精神及内涵

其中有两个算法是在这个智能回复系统上

在开发这个案子有很大的帮助 一个是判定树的算法 一个则是类神经网络算法 但在此之前得先搞清楚

Analysis Services 的主要功能分别是 1.分类 2.推估 3.预测 4.关联分组 5.同质分组做分类

当我边思考着这两个算法的内涵及精神时 我同时思考着如何把这两个算法套用到这个CASE

但有几个基本的问题得先了解清楚 第一 首先判定树的算法着重于显性分类 而类神经网络算法则是

能做隐性分类 这是两个算法很大的不同之处。  

所以如果我使用判定树算法 用于这个CASE上 我该思考的方向是 如何做话题的分类或是依照句子结构等等的

但很快的我就理解到 我们人类使用句子在做沟通交流上 做分类的工作其实是很复杂的似乎很难把分类的工作

做的很完美无瑕 所以我觉得使用判定树似乎有点难度 相较于类神经网络的算法 它的做法是属与隐性分类 

也就是说利用观察模型的输入及输出来决定分类的类别 这项工作是由算法它的后台在处理的 我完全不需要顾虑

该如何分类的工作 只要关注于 分类这项工作是对还是不对 所以很快的我就意识到了 我真正想要做到的事 得经由

神经网络这个算法去完成。

所以我目前设计上偏向使用神经网络的算法去完成这项工作 目前我还没有Analysis Services实务上操作的经验

我是先以它们设计上的精神来考虑  

所以我在设计上先想建立三个数据列 <你说什么> <我回什么> <分类对/错> 

储存大量的<你说什么> 跟 <我回什么> 句子数据 <分类对/错>是这个神经网络的决策因子

是否可以利用<你说什么>

对应 <我回什么> 随机的去对应句子 然后用<分类对/错>来下这个对应句子正确还是错误

这样当丢入的数据够庞大时 我决策的数据数量也够多了 它的神经网络也够扎实了

就能自动的为 句子智能回复系统出做一个兼具智能的回复系统



所以我再重新整理一下设计的思路和理念。

我设计的思路是我建立了大量对答回复的数据在SQL中。

重点是不可能对答回复的方式完全是依照我存在SQL的数据。

虽然我可以使用全文索引搜索技术让SQL在搜索对答回复时变得更灵活。

就是当我一句话有几个关键词存在时,我可以根据这几个关键词提供适当的回复。 

但这不是个最佳的解决办法在这个应用上。

我得教导PC能对回复内容做一个适当的分类来辅和回复上的逻辑。
所以我想SSAS是一个最佳的解决办法。

利用神经元网络算法。

所以分析的数据就是我提供给SQL的对答回复数据。

分析对答回复数据的好坏来当作神经元网络算法的特征值。

用以建立一个良好的神经元网络。

希望大家能给我良好的建议,谢谢。


------解决方案--------------------
可行的话,能否加个类似匹配度的tinyint列,为零表示不匹配
当然,你仍然可以加一个计算列作为分类对/错