美文网首页
如何用python 300行代码实现中医问诊AI

如何用python 300行代码实现中医问诊AI

作者: 91fa49d0d1db | 来源:发表于2020-02-16 12:27 被阅读0次

    首先声明我不是程序员,我顶多算一个硬件工程师,或者中医师。所以我写的这个程序肯定不是最优化的,优化优化我觉得100行不到都可以实现。

    希望大家共同来参与改进。我的微信158448000,都市熊。

    在新冠肺炎疫情期间,大家都待在家里。我儿子问我,老爸,计算机AI可以干什么?

    我说计算机人工智能可以干很多事情啊,比如给人看病啊,等等。我在几年前委托一位程序员帮忙做了一个小儿感冒诊断系统。帮助了不少妈妈。

    后来程序员把这程序搞丢了,这项目没再继续。被我儿子笑话了好久,这也行。

    然后他问我,计算机AI最适合的语言是什么?我说是Python(他学过C++,C#)。

    他说Python难吗?我说不难,去年我花功夫学了一小段时间,当时想做一个计算机自学伤寒的程序来着。

    他问那做出来了没有?我告诉他没有,思路都有了,程序也写了一点,输入输出太麻烦了,放弃了。

    输出个网页有什么难的?很难啊,又要框架,又要前端后端,这个花了很多功夫都搞不定,直接放弃了。又被他笑话了一通。

    中午我就想,现在疫情当前,我能不能写个程序?从中医的角度去诊断,去辩证论治。也算是为疫情贡献点自己的力量。还有就是为孩子做个榜样,不要被他小看了。

    然后开干,一开始碰到的还是输入输出的问题,后来找到了streamlit,www.streamlit.io。这问题一下子就解决了。所以嘛,有痛点就有人去开发相应的技术。

    结果我就用了两个晚上,将中医AI做出来了。实际上大部分时间都用于安装环境上了,特别是远程服务器的安装。真正写程序的时间也就几小时了(菜鸟水平,大家不要笑)。

    朋友们可以点这里访问。

    这是按照今年肺炎的最主要症状,低烧,干咳,鼻塞,无力,咽痛,腹泻进行输入,计算机自动诊断和开方如上。这个方子中规中矩,和临床一线医生的思路也类似,当然输入条件更精准,开出来的方也会更精准。是不是很棒?(为自己赞一个)

    和大家讲讲设计思路,我们可能认为AI很难做,因为程序员不懂中医,懂中医的不懂编程。所以做出来东西要么就不实用,要么就根本不符合中医,没法用。有很多所谓的中医产品,其实是个不中不西的“怪物”。

    而我刚好两个都懂一点,所以我就尝试做一个吧。再次声明我不是程序员,我也对开发程序没有太多兴趣。

    中医AI的难点在于患者的症状各种各样,诊断描述比较含糊,用药也是各种各样。有些程序员就认为输入条件很多,输出条件很多,这东西就很难做,甚至没法做。

    而中医师很难用精确的语言去描述中医诊断和开方用药。所以你会看到同一个患者,不同的医生开的药方是不一样的,虽然可能都有效。

    这就是多个模糊输入对应着多个模糊输出,这增加了中医AI的难度。同时这也是中医被人诟病的原因之一。

    正是这种差异性造成了程序开发的难度。换句话来说,程序员没有中医思维,中医师没有程序思维。

    我这人比较擅长化繁为简,其实我思考这个问题特别简单。现在是新冠疫情,主要是上呼吸道感染。上呼吸道感染有哪些症状呢?我将症状列表列了出来。

    那从中医的角度上去,怎么诊断开方用药呢?《伤寒论》是张仲景论述外感对人体影响的中医学专著。其实也是论述传染病进入人体之后的人体经络反应。

    我将中医称的外感,西医称的新型冠状病毒感染,或者呼吸道感染。所能引起人体经络的变化,按《伤寒论》的区分法,分为伤寒太阳证用a表示,伤寒少阳证用b表示,伤寒阳明证用c表示。

    将所有的症状输入简化为三条输出,一下子是不是变得很简单了。但实际上单单这三个诊断是不足够的,我将之称为三个主证。

    然后再从身体的湿气d,身体的头e,肺f,胸g,上腹h,下腹i,膀胱j等部位分别辅助诊断。

    然后我给每一个输入症状分配个权重0.1-0.9的权重。比如高烧,太阳证的权重就是0.8,阳明证的权重0.6。又比如低烧,太阳证的权重是0.7,少阳证是0.8。

    这样子很容易就将不同症状导出到三个主证上。再辅助身体的湿,以及身体不同部位的诊断,就很容易开出药方。

    其实作为中医师也是这么思维的,先抓主证,看以什么证,什么方为主。然后再细化到各个部位,再加减一些药。

    花了两个晚上做出来个很粗燥的模型,开个头,抛砖引玉,希望更多的朋友能深入研究。

    严格意义上来说,这不是计算机学习后掌握的技能,这是中医师的经验总结,用计算机来实现,这效果我认为是可以的,至少我是满意的。

    其实还可以让计算机学习《伤寒论》,我不知道学习效果如何,这是去年我想做的,也许我们可以一起来试试。

    下面是我的程序开源地址,工作环境Python3.7,streamlit。一个主文件,总共320行简单代码。

    这里看原代码。

    谢谢大家!

    相关文章

      网友评论

          本文标题:如何用python 300行代码实现中医问诊AI

          本文链接:https://www.haomeiwen.com/subject/swlufhtx.html