zoukankan      html  css  js  c++  java
  • intelligent diagnosis的难点

    需求:

    一个人描述自己的症状,根据这段话给出他可能得的的疾病。

    思路:

    把语音转化为文字,分词提取出关于症状的描述。

    1、字符匹配:

    找一个疾病数据库(有症状的描述),用lucene建立索引,把描述的症状和疾病库的症状字段匹配。

    2、关联匹配:

    找一个药物表,如果药物表的描述中既出现了某个疾病,也出现了某个症状,则把这个疾病和症状关联上。

    3、结果排序:

    要根据关联度排序,lucene内部使用tf*idf的变形进行排序。

    光这样是不够的。疾病的发病率是不同的,所以要根据先验知识来排序。

    posterior = prior * likelihood

    这儿likelihood用lucene的匹配来模拟,而prior没法获得。

    难点:

    1、结果排序:

    prior现在知识没法获取,即得不到发病率。光想从文本中直接得到靠谱的排序是不现实的。

    解决方案:

    用其他数据去模拟prior,比如有些网站上提供病的关注度、收藏数、是否常见等信息。

    2、同义词描述问题

    疾病数据库的描述是很正式的,而人的描述是很口语化的,这需要一个关联过程。

    解决方案:

    建立一个同义词库

    1)可以找到一些疾病相关的同义词库

    2)统计疾病库中的词频,找出频率高的疾病相关的词,人工添加同义词

    3、身体部位问题

    比如“手疼”,“眼睛痒”,结果应该是跟“手”、“眼睛”部位十分相关的,而lucene搜索的结果不能保证。

    另一个问题,比如“头痛”,疾病不一定是在头部的,可能是身体上的。

    解决方案:

    构建一个人体的本体库,比如一个(人--头--脸--眼睛)的继承关系,部位越近的疾病越有可能。

    细节:

    浏览数据库,看看每个部位大概与哪些东西关联,比如

    胸部:肺、(气管)、心、(胰腺)、乳

    还要添加上语义上相关的,比如

    头:脑、中风,精神、失眠

    注意:

    个人觉得,也不需要太精细,因为如果描述症状的时候已经很具体到某个部位,搜索出来的时候已经比较准确。

    4、流行病问题

    整个系统主要呈现为静态,很难根据疾病的发生情况而改变。流行病在一段时间内可能发病率很高,之后可能几乎没了。

    应用本身难以感知到最近的流行病,特别是用的人少的时候。

    解决方案:

    很难解决,不予实现,采用另外的方式实现,比如采用推送技术,把盛行的流行病放到应用的首页。

    5、季节病,家族病等个体特征疾病,病史,患一次的疾病,并发症疾病,病与病之间的关联

    季节病,在排序的时候可以根据季节赋予不同权重,很难获取这些先验信息。

    家族病,有很强的相关性,用户很少会在已知家族病的情况下去搜索这个病。

    病史,得过的病很可能会再得,很难获取信息,也不容易标识用户。

    患一次的病,有些病一生只会犯一次,非常少会再患,这个信息很难提取。

    病与病之间的关联,如果有了这些信息,可以用贝叶斯网

    6、先验信息提取

    很多信息要提取,比如模拟先验发病率的信息,同义词库,本体库,流行病信息,病之间的关联,这些信息很多要从文本中提取或人工做。

    解决方案:

    NLP,表示很难

    =================================

    ER7

  • 相关阅读:
    烂泥:jira7.2安装、中文及破解
    烂泥:VMWare Workation双网卡配置IP地址
    烂泥:centos6 yum方式升级内核
    烂泥:python2.7和python3.5源码安装
    烂泥:zabbix3.0安装与配置
    烂泥:利用awstats分析nginx日志
    烂泥:切割nginx日志
    JavaScript之函数
    Django之根据已经存在数据库中的表自动生成模型
    Django之操作数据库
  • 原文地址:https://www.cnblogs.com/549294286/p/3085441.html
Copyright © 2011-2022 走看看