Review:AD本体构建研究
本文章是该论文的简单Review
概念明确
AD:即阿尔茨海默症
什么是本体?
本体是概念化的明确的规范说明。
本体的概念包括四个主要方面:
- 概念模化
- 明确化
- 形式化
- 共享化
我对本体的理解是:
一系列结构化的数据。这些数据能个从各个方面反映一个概念的基本要素。
本体的构建方法
本体构建的方法众多,本篇论文采用较为成熟的七步法来构建Ad本体。
七步法:1.确定本体的专业领域和范畴;2考察并复用本体;3.列出重要术语;4.定义类(概念)和类的层次;5.定义类的属性;6.定义属性的约束;7.添加实例;
本论文中AD本体的构建过程
- 数据获取 - 已有的结构化数据 - 已经构建好的AD本体库
- 非结构化数据(本论文使用ROST软件爬取) - 期刊文献
- QQ群
- 相关网站
- 百度知道
- 数据处理(结构化) 1. 分词
- 统计词频
- 主题词筛选
- 确定概念(主题词)之间的关系(本论文使用protege软件)
- 使用protege导出AD本体数据
本论文的亮点
数据来源比较多
本论文从多个方向收集相关资源,来完成对AD本体构建。
这些数据包括可以直接使用的的结构化数据,也包括从网络上或者论文中获取的非结构化数据。
并且本论文也给出了非结构化数据处理的方法:
即通过分词寻找出现频率较高的词确定为主题词。
使用中文医学主题词表(CMeSH)来对主题词进行处理
CMeSH是中国研究机构编写并出版的医学词表。
可以对主题词进行中英文的对照、查询相关主题树等操作。
本论文构建AD本体存在的问题
数据的量过少
本论文P20,作者只使用了约一个月的聊天记录作为数据源。
本论文P25,作者只使用了4万多字的英文文献来分词获取词频率。
从统计的角度来看,这些数据的数量过少,不能够充分的反映出AD本体的一些特征。
解决方法
本作者使用的数据爬取软件也不能够应对大规模的数据爬取。针对此问题,我的解决方法是:
使用Python的Scrapy框架完成大规模、分布式的数据爬取任务。
Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
例如,我之前使用Scrapy爬取学校网站主页的通知信息,仅仅使用2分钟的时间就爬取了近5000个网页,接近26M的文本数据,并存入了mysql数据库中。我的服务器配置并不高,如果使用Scrapy的分布式模块,相应的爬取速率应该会更快。
随着数据的增多,可以考虑使用Spark等大数据平台完成对数据的处理。但是,我想,针对某一单一疾病,单主机性能应该够用,不至于动用Spark。
处理的流程不够自动化
本论文在使用protege的过程中,需要人工对每一个提取出的主题词进行划分,确定从属关系。对于构建AD本体库来说,这种方式是可取的,但是在构建大量疾病的本体库时,人工的方式显得并不高效。
解决方法
这个问题涉及到自然语义理解。我对此方面并没有了解,有待进一步的研究。
分词软件过于落后
本论文使用的ROST软件由于分词性能并不好,不能很好的对文本进行划分。例如,在P24,作者提到,分词将老年痴呆症这一个完整的词,分割成为老年/痴呆/症。
解决方法
随着技术的发展,分词技术也有了突破。
使用Python的Jieba分词库,可以看到,老年痴呆症被完整的分割了出来。分词的准确度和速度都有了较大的提升。在我的服务器上,针对一篇50k字的文章,分词也只用了1.23秒。