首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第四十六章:WSaiOS认知匹配引擎实现——基于对象、关系、知识库的PHP OOP匹配系统

WSaiOS EOM模拟人工认知工程理论

第四十六章:WSaiOS认知匹配引擎实现——基于对象、关系、知识库的PHP OOP匹配系统


46.1 为什么需要认知匹配引擎

前面章节完成:

WSaiOS基础结构:

用户输入

↓

Element

↓

Object

↓

Relationship

↓

Knowledge Base

↓

Memory

但是:

系统拥有:

对象。

知识。

记忆。

并不代表具有认知能力。


真正产生应用能力的是:

当前输入对象与已有知识对象之间的匹配过程。


例如:

用户输入:

electric toothbrush supplier Miami

系统需要理解:

不是简单搜索:

“有没有这个字符串”。


而是判断:

这个需求对象

是否匹配

知识库中的供应商对象?

因此:

WSaiOS设计:

Cognitive Matching Engine

(认知匹配引擎)


46.2 传统搜索与认知匹配区别

传统搜索:

关键词

↓

数据库查询

↓

返回结果

例如:

SQL:

SELECT *
FROM supplier
WHERE keyword LIKE '%toothbrush%';

只能发现:

文字相似。


WSaiOS:

输入对象

↓

对象属性匹配

↓

关系匹配

↓

知识匹配

↓

经验匹配

↓

综合评分

得到:

认知相关性。


46.3 Cognitive Matching模型

定义:

匹配对象:

Input Object

↓

Knowledge Object

评分:

Cognitive Score

=

Object Score

+

Relationship Score

+

Knowledge Score

+

Memory Score

例如:

供应商匹配:

项目 分数
产品匹配 40
角色匹配 20
地区匹配 20
经验匹配 20
总分 100

46.4 Matching Engine架构

目录:

engine/


matching/


├── MatchingEngine.php

├── ObjectMatcher.php

├── RelationshipMatcher.php

├── KnowledgeMatcher.php

├── MemoryMatcher.php

├── ScoreCalculator.php

结构:

MatchingEngine

        |

--------------------

ObjectMatcher

RelationshipMatcher

KnowledgeMatcher

MemoryMatcher

ScoreCalculator

46.5 MatchingEngine核心类

PHP:

class MatchingEngine
{


private $objectMatcher;

private $relationMatcher;

private $knowledgeMatcher;

private $memoryMatcher;



public function match($object)
{


$objectScore =
$this->objectMatcher
->match($object);



$relationScore =
$this->relationMatcher
->match($object);



$knowledgeScore =
$this->knowledgeMatcher
->match($object);



$memoryScore =
$this->memoryMatcher
->match($object);



return [

"object"=>$objectScore,

"relation"=>$relationScore,

"knowledge"=>$knowledgeScore,

"memory"=>$memoryScore

];


}


}

46.6 Object Matcher对象匹配

对象匹配:

判断:

两个对象是否属于同一认知类别。


例如:

输入:

Electric Toothbrush Supplier

知识库:

Oral Care Factory

判断:

属性:

产品:
Electric Toothbrush

角色:
Supplier

PHP:

class ObjectMatcher
{


public function match(
$input,
$target
)
{


$score=0;



if(
$input->product ==
$target->product
)
{

$score+=40;

}



if(
$input->role ==
$target->role
)
{

$score+=20;

}



return $score;


}


}

46.7 Relationship Matcher关系匹配

EOM认为:

关系决定理解。


例如:

对象:

Factory

关系:

produce

目标:

Electric Toothbrush

形成:

Factory

↓

Produce

↓

Product

代码:

class RelationshipMatcher
{


public function match($object)
{


$score=0;


foreach(
$object->relations
as $relation
)
{


if(
$relation->type=="supply"
)
{

$score+=30;

}


}



return $score;


}


}

46.8 Knowledge Matcher知识匹配

知识匹配:

查询知识库。


例如:

输入:

Miami Distributor

知识库:

Miami market

Electric toothbrush demand high

代码:

class KnowledgeMatcher
{


private $knowledgeModel;



public function match($object)
{


$knowledge=
$this->knowledgeModel
->find($object);



if($knowledge)
{

return 20;

}


return 0;


}


}

46.9 Memory Matcher经验匹配

经验:

影响判断。


例如:

历史记录:

Miami

Electric toothbrush

成功率85%

增加:

经验分。


PHP:

class MemoryMatcher
{


private $memoryModel;



public function match($object)
{


$memory=
$this->memoryModel
->recall($object);



return $memory['weight'];


}


}

46.10 Score Calculator评分计算

统一计算。


class ScoreCalculator
{


public function calculate(
$scores
)
{


return

$scores['object']

+

$scores['relation']

+

$scores['knowledge']

+

$scores['memory'];


}


}

输出:

90

46.11 Matching Service加入MVC

MVC流程:

Controller

↓

CognitiveService

↓

MatchingService

↓

MatchingEngine

↓

KnowledgeModel

MemoryModel

↓

Database

代码:

class MatchingService
{


private $engine;



public function analyze($object)
{


$result=

$this->engine
->match($object);



return $result;


}


}

46.12 GEO商业分析案例

用户输入:

electric toothbrush distributor Miami Florida

第一步:元素解析

得到:

Product:

Electric Toothbrush


Role:

Distributor


Location:

Miami Florida

第二步:对象形成

生成:

Demand Object

{

product

role

city

}

第三步:匹配知识库

查询:

Supplier Objects

Market Objects

Company Objects

第四步:关系判断

发现:

Factory

↓

Supply

↓

Electric Toothbrush

第五步:经验调用

读取:

Miami Market

Success Rate:

85%

第六步:评分

结果:

Object:

40


Relation:

30


Knowledge:

10


Memory:

10


Total:

90

46.13 匹配结果对象设计

匹配结果:

也是对象。


PHP:

class MatchResult
{


public $object;


public $score;


public $reason;


public $confidence;


}

保存:

matching_results

46.14 为什么匹配结果需要解释

传统系统:

输出:

90分

用户不知道:

为什么。


WSaiOS:

保存:

原因。


例如:

评分90


原因:

产品一致

角色一致

地区一致

历史成功率高

形成:

可解释匹配。


46.15 Matching Engine与人工认知对应

认知过程 工程实现
认识对象 ObjectMatcher
理解关系 RelationshipMatcher
调用知识 KnowledgeMatcher
参考经验 MemoryMatcher
形成判断 ScoreCalculator

46.16 本章总结

本章完成:

WSaiOS认知匹配工程实现。

核心流程:

输入信息

↓

认知对象

↓

对象匹配

↓

关系匹配

↓

知识匹配

↓

记忆匹配

↓

评分决策

WSaiOS中的“智能”:

不是来自复杂算法。

而来自:

对象结构

+

关系结构

+

知识库

+

经验记忆

+

匹配机制

下一章:

第四十七章:WSaiOS认知应用完整开发案例——GEO商业分析系统从PHP OOP到WordPress发布

重点研究:

  • 一个完整WSaiOS应用如何开发;
  • GEO对象模型设计;
  • MVC项目结构;
  • Smarty页面生成;
  • WordPress自动发布流程;
  • 从认知分析到商业应用。

Leave a Reply

Your email address will not be published. Required fields are marked *