现在已经大体开发出来个框架,可以存储简单的是字句信息,回答是字句.实现过程大致如下:
我是张山.
句型: 代词 是词 专有名词;
信息提取: 添加是链(代词,专有名词,空); //参数分别是 主语,宾语,和定语,这里定语为空
张三是李四的朋友;
信息提取:添加是链(专有名词,专有名词,抽象名词)
这样能存下是的信息,还有有什么的信息在有链里边保存.
名词分专有名词和抽象名词,专有名词就是有具体对象的名词,其他都是抽象名词,象地名是专有名词,"语文书"名是抽象名词,但是"这本语文书"就是专有名词了.
复杂的句子可分解为好多简单的句子,对简单的句子分别编程存储或提取信息.
以上是最基本的一个思路.其他一些复杂的也有具体思路,就是编程量太大,现在一个人写好慢.
至于说用vc010一个是它支持宽字符编程,也就是变量和函数名都可以是中文,一个就是它使用简单.性能什么不在考虑之中.
回复 4楼2011-08-19 16:35举报 |
werkss
兴趣爱好2
if( (词性数组[0]->获取词性().Right(1)==_代词 || 词性数组[0]->获取词性()==_专有名词) && 词性数组[1]->获取词()==_是字 && 词性数组[2]->获取词性()== _基数词 && 词性数组[3]->获取词性()==_名量词
&& 词性数组[4]->获取词性()==_抽象名词 && 词性数组[5]->获取词性()==_抽象名词&& 词性数组[6]->获取词()==_句号)
{
句列表指针->获取句型指针()->处理方程=_T("添加是链,1,6,5, ;添加有链,5,0,0,0,4,0");
句列表指针->获取句型指针()->回应句型=_T("000;");
break;
}
回复 5楼2011-08-19 16:41举报 |
人工智能先驱
动手实践6
你这种方法还是三十年前的符号系统思维。用的开发方式也还是手工作坊的原始作业方式。
做研究的基本方法,找到感兴趣的领域的主要论文20-100篇扫盲。
然后,找一个成熟的、比较接近的开源软件,在此基础上进行修改,快速形成原形。即使做的是开创性的,也可以省去很多人家做过的事情。
在实现人工智能的道路上,你需要验证几百种可能的模型,这种方式太慢了。