上次我写了如何用300行代码实现中医问诊AI。这是我首次尝试使用计算机人工智能来解决中医问诊的问题。
但这充其量也只是将我个人的经验放到了计算机里面,每位中医有自己的诊疗经验,能否大家都能将自己的诊疗经验放到网上,供大家参考和检验呢?
这个升级程序就是为了解决这个问题的。
为了实现这功能,首先我们要理解什么是中医思维。
我们先来看看《伤寒论》的条文:
《伤寒论》第12条:太阳中风,阳浮而阴弱,阳浮者,热自发;阴弱者,汗自出。啬啬恶寒,淅淅恶风,翕翕发热,鼻鸣干呕者,桂枝汤主之。
《伤寒论》第13条:太阳病,头痛、发热、汗出、恶风,桂枝汤主之。
将条文分为症状和用药,症状就是:头痛,发热,汗出,恶风,恶寒,鼻鸣,干呕
用药就是:桂枝汤
又比如小柴胡汤条文:
《伤寒论》96条“伤寒五六日中风,往来寒热,胸胁苦满,嘿嘿不欲饮食,心烦喜呕,或胸中烦而不呕,或渴,或腹中痛,或胁下痞硬,或心下悸、小便不利,或不渴、身有微热,或咳者,小柴胡汤主之。”指出了小柴胡汤证的四大主症,七个或然症。
《伤寒论》97条“血弱气尽,腠理开,邪气因入。与正气相搏,结于胁下。正邪分争,往来寒热,休作有时,默默不欲饮食。脏腑相连,其痛必下,邪高痛下,故使呕也。小柴胡汤主之。服柴胡汤已,渴者,属阳明,以法治之。
症状:往来寒热,胸胁苦满,默默不欲饮食,心烦喜呕,腹中痛,胁下痞硬,心下悸,小便不利
用药就是:小柴胡汤
我们可以将症状和用药情况写入一个表格,类似下面这样:

这就是中医思维,有什么症,怎么诊断,用什么方。任何一个中医师都可以根据自己的经验构建一个类似的表格。
我们现在需要让计算机来理解这个表格,并且根据患者选择的症状做出判断。怎么做呢,首先读入表格中的症状,让患者选择。

然后让患者选择相应的症状,患者选择的症状会很多,交错复杂,那怎么去符合这每一个的诊断呢。这是一个多输入对应多输出的问题。
比如患者既有头痛,发热,又有腹中痛,那如何选择输出?中医师是这么考虑的,从患者的描述中找出主症,比如患者头痛,发热,恶寒,恶风,这是主症以桂枝汤为主。但同时考虑患者的其他症状,比如有腹中痛,默默不欲饮食,那兼顾考虑小柴胡汤。
我们让计算机学会这种思维,将患者选出的症状,和条文的症状对比,形成每一个条文都有一个0-1的比例值,将所有的条文都对比一遍,选出最大的一个做为主症,将次一级大的两个做为兼症考虑。

这就是程序的处理过程。另外我们再定义一个权重比例,只有高于权重值的才认为是有意义的诊断输出,这就是完整的思路。

共83行代码,程序运行地址请点这里。界面截图:

代码开源地址点这里,欢迎更多的朋友共同参与开发。
网友评论