优点:绝对精确,不会有歧义;缺点:太死板,没法处理模糊知识。比如“大部分年轻人喜欢奶茶”,“大部分”没法用严格的逻辑公式表示,电脑就处理不了。
2. 产生式表示法:“如果…就…”的规则库,像做饭的菜谱
这种方法是把知识写成一堆“如果A,就做B”的规则,就像菜谱里的“如果水开了,就下饺子”,特别符合人类解决问题的思路。它是AI里用得最久的方法之一,尤其适合做“专家系统”。
举个例子:医疗诊断系统里的知识表示。
- 规则1:如果患者发烧、咳嗽、喉咙痛,就判断可能是感冒;
- 规则2:如果患者发烧超过3天、咳嗽带痰、胸闷,就判断可能是肺炎;
- 规则3:如果是感冒,就推荐吃感冒药、多喝水。
这些规则会存在电脑里,当输入患者症状时,电脑就一条条匹配规则,最后给出结论。
实际用处:除了医疗诊断,还有智能客服的自动回复。比如你问“快递没收到怎么办”,电脑会匹配规则“如果用户问快递未收到→回复‘请提供订单号,帮你查询物流’”。
优点:简单易懂,符合人类思维;缺点:规则太多时会“乱套”。比如同时满足感冒和肺炎的部分症状,电脑可能不知道优先匹配哪条规则。
3. 语义网络表示法:用“节点+线”画知识图,像大脑的联想网络
这种方法是用“节点”代表概念(比如“鸟”“飞机”),用“带标签的线”代表关系(比如“会飞”“有羽毛”),画出来像一张蜘蛛网,特别适合表示“概念之间的联系”。
举个例子:用语义网络表示“鸟”的知识。
- 画一个节点写“鸟”;
- 用线连一个节点“有羽毛”,线上标“属性”;
- 再用线连一个节点“会飞”,线上标“能力”;
- 再用线连一个节点“麻雀”,线上标“属于”(麻雀属于鸟);
- 还能连一个节点“飞机”,线上标“相似点”(都能飞)。
画出来就是一张“鸟的知识网络图”,电脑能顺着线找到各个概念的关系。
实际用处:比如百度、谷歌的“知识图谱”就是用这种方法。你搜“李白”,页面右侧会出现“朝代:唐朝”“作品:《静夜思》”“好友:杜甫”,这些就是语义网络里的节点和关系,电脑顺着网络把相关知识都调出来。
优点:直观,能体现知识的关联性;缺点:关系太复杂时,网络会变得混乱,电脑找起来变慢。
4. 框架表示法:给知识建“模板”,像填简历表
这种方法是给一类事物建一个“框架模板”,就像简历里的“基本信息、教育经历、工作经历”模板,然后把具体事物的信息填进去。适合表示“有固定结构的知识”,比如人物、物品、事件。
举个例子:给“电影”建一个框架模板,再填《流浪地球2》的信息。
plaintext
框架名:电影
槽名1:名称 → 槽值:《流浪地球2》
槽名2:类型 → 槽值:科幻片
槽名3:导演 → 槽值:郭帆
槽名4:核心剧情 → 槽值:人类建行星发动机逃离太阳系
槽名5:上映时间 → 槽值:2023年1月22日
槽名6:评分 → 槽值:9.0(豆瓣)
“框架名”是大类,“槽名”是这类事物的共同属性,“槽值”是具体事物的信息。如果再填《满江红》的信息,就用同一个框架,只改槽值就行。
实际用处:比如视频网站的电影分类系统,用框架表示法存储每部电影的信息,用户搜“2023年上映的科幻片”,电脑就去匹配“类型=科幻片”“上映时间=2023年”的框架,把符合条件的电影列出来。
优点:结构清晰,方便批量处理同类知识;缺点:模板固定,没法表示不符合模板的“特殊知识”。比如遇到一部“既是科幻又是喜剧,还没有导演署名”的电影,框架里没有对应的槽名,就没法填。
5. 面向对象表示法:给知识“打包成对象”,像给物品装礼盒
这种方法是把知识“封装”成“对象”,就像把一个苹果的“颜色、味道、能不能吃”这些信息都装进一个礼盒里,礼盒上还写着“能做什么”(比如“可以削皮吃”“可以做沙拉”)。它把“属性”(是什么)和“方法”(能做什么)打包在一起,是现在编程里最常用的方法之一。
举个例子:用面向对象表示法表示“手机”。
- 对象名:手机
- 属性(是什么):品牌=华为、颜色=黑色、屏幕尺寸=6.7英寸、电量=100%
- 方法(能做什么):打电话(输入号码→拨出)、拍照(点击快门→保存照片)、上网(连接WiFi→打开浏览器)
本小章还未完,请点击下一页继续阅读后面精彩内容!