人工智能大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
家族人物关系推理系统
摘要:随着新世纪的到来全国各地的宗族在大陆的分布较分散,近年来为了研究宗族现在的状况对宗族的情况进行了相关项的调查。其中以具体的家族关系调查为起始。本次课设就是做实现家族查询的系统。主要根据数据结构的原理应用树的制作进行家族查询。完成编写之后将运行出来的程序分行显示,本程序处理起来相对复杂一些但却涉及到很多方面的知识,需要使用到的数据结构有树状结构和队列。查阅有关程序设计的案例资料,进一步理解程序设计模块化的思想,并利用此思想,根据对程序设计学习编写一个家族关系查询系统。通过本设计可以加深理解利用程序设计思想开发一个查询系统的整个流程,提高分析问题、解决问题和实际动手的能力。
关键词:推理;家族图谱
本组成员:
本人分工:部分代码实现
1 引言
家族关系查询系统 1.先初始化家族任务的各个基本信息:姓名,出生日期,性别,婚姻状况等属性2.通过这些信息进行推理,比如哥哥:相同的父母,年龄较大,性别男即可推理出这个称谓。
3.最后通过界面进行可视化的便捷操作,最终实现基本功能。
2 算法原理与系统设计
2.1家族人物关系推理系统的模型
分析各种提问方式,总结出问句的基本类型可分为两种:已知两个相关人物的名字,提问他们之间的称谓;已知一个人的名字,提问另外一个与其有家族关系的人名。为了解决上面两种常见的关于家族人物关系的问题,作者然后给出该模型下知构造了一个推理系统模型,称谓是一些表现家族人物关系的称呼,如爷爷、爸爸、妈妈等。本文把提问人物之间的称谓或相关的人名,称为提问目标。本系统包括分词,句子规范化处理,句型信息处理,知识提取,对提问目标判断,知识提取,知识存储,模板匹配,语义网络结果处理等部分。
2.2家族人物关系推理系统的模型图
3 系统实现
private void button4_Click(object sender, EventArgs e) {
if (textBox1.Text == "")
{
textBox1.Text = button4.Text;
Program.birth1 = 1705;
Program.century1 = 2;
Program.gender1 = "男";
Program.marriage1 = "";
1 = "贾敬";
Program.super1 = "贾代化";
}
else
{
textBox2.Text = button4.Text;
Program.century2 = 2;
Program.gender2 = "男";
Program.marriage2 = "";
2 = "贾敬";
Program.super2 = "贾代化";
}
}
private void button5_Click(object sender, EventArgs e) {
if (textBox1.Text == "")
{
textBox1.Text = button5.Text;
Program.birth1 = 1707;
Program.century1 = 2;
Program.gender1 = "男";
Program.marriage1 = "";
1 = "贾敷";
Program.super1 = "贾代化";
}
else
{
textBox2.Text = button5.Text;
Program.birth2 = 1707;
Program.century2 = 2;
Program.gender2 = "男";
Program.marriage2 = "";
2 = "贾敷";
Program.super2 = "贾代化";
}
}
private void button8_Click(object sender, EventArgs e) {
if (textBox1.Text == "")
{
textBox1.Text = button8.Text;
Program.birth1 = 1710;
Program.century1 = 3;
Program.gender1 = "女";
Program.marriage1 = "贾珍";
1 = "尤氏";
}
else
{
textBox2.Text = button8.Text;
Program.birth2 = 1710;
Program.century2 = 3;
Program.gender2 = "女";
Program.marriage2 = "贾珍";
2 = "尤氏";
Program.super2= "";
}
}
private void button28_Click(object sender, EventArgs e)
{
//判断父子关系
if ((Program.gender1.Equals("男")) &&
(Program.super1.Equals(2)) && Program.super1 != "" && Program.super2 != "") {
MessageBox.Show(textBox1.Text + "是" + textBox2.Text + "的儿子");
}
if ((Program.gender1.Equals("女")) &&
(Program.super1.Equals(2)) && Program.super1 != "" && Program.super2 != "") {
MessageBox.Show(textBox1.Text + "是" + textBox2.Text + "的女儿");
}
if ((Program.gender1.Equals("男")) &&
(Program.super2.Equals(1)) && Program.super1 != "" && Program.super2 != "") {
MessageBox.Show(textBox1.Text + "是" + textBox2.Text + "的爸爸");
}
if ((Program.gender1.Equals("女")) &&
(Program.super2.Equals(Program.marriage1)) && Program.super1 != "" && Program.super2 != "")
{
MessageBox.Show(textBox1.Text + "是" + textBox2.Text + "的妈妈");
}
//判断夫妻关系
if (Program.gender1.Equals("男") &&
(Program.marriage1.Equals(2)))
{
MessageBox.Show(textBox1.Text + "是" + textBox2.Text + "的丈夫");
}
if (Program.gender1.Equals("女") &&