从文本中提取流行病学信息的注释器。
EpiTator的Python项目详细描述
从文本中提取流行病学信息的注释器。
安装
pip install epitator python -m spacy download en_core_web_md
注释器
地理名称注释器
geoname注释器使用geonames.org数据集来解析提到的geonames。 分类器用于消除地名的歧义并排除误报。
要使用geoname注释器,请运行以下命令导入geonames.org 数据进入外延器的嵌入式sqlite3数据库:
在使用此数据之前,您应该查看geonames许可证。
python -m epitator.importers.import_geonames
使用量
fromepitator.annotatorimportAnnoDocfromepitator.geoname_annotatorimportGeonameAnnotatordoc=AnnoDoc("Where is Chiang Mai?")doc.add_tiers(GeonameAnnotator())annotations=doc.tiers["geonames"].spansgeoname=annotations[0].geonamegeoname['name']# = 'Chiang Mai'geoname['geonameid']# = '1153671'geoname['latitude']# = 18.79038geoname['longitude']# = 98.98468
解析关键字注释器
已解析关键字注释器使用实体的sqlite数据库来解析 一个实体对一个id有多个同义词。 该项目包括将传染病和动物物种导入 那个数据库。可以使用以下命令调用它们:
脚本从Disease Ontology导入数据, Wikidata 以及ITIS。 在使用这些数据之前,您应该检查他们的许可证和使用条款。 目前,疾病本体属于公共领域,需要引用。
python -m epitator.importers.import_species
# By default entities under the disease by infectious agent class will be
# imported from the disease ontology, but this can be altered by supplying
# a --root-uri parameter.
python -m epitator.importers.import_disease_ontology
python -m epitator.importers.import_wikidata
使用量
fromepitator.annotatorimportAnnoDocfromepitator.resolved_keyword_annotatorimportResolvedKeywordAnnotatordoc=AnnoDoc("5 cases of smallpox")doc.add_tiers(ResolvedKeywordAnnotator())annotations=doc.tiers["resolved_keywords"].spansannotations[0].metadata["resolutions"]# = [{'entity': <sqlite3.Row>, 'entity_id': u'http://purl.obolibrary.org/obo/DOID_8736', 'weight': 3}]
计数注释器
count注释器标识计数,特别是case计数。 计数的值被提取和解析。属性,例如 是指案件或死亡,或是否是近似值也被提取。
使用量
fromepitator.annotatorimportAnnoDocfromepitator.count_annotatorimportCountAnnotatordoc=AnnoDoc("5 cases of smallpox")doc.add_tiers(CountAnnotator())annotations=doc.tiers["counts"].spansannotations[0].metadata# = {'count': 5, 'text': '5 cases', 'attributes': ['case']}
日期注释器
日期注释器标识并分析日期和日期范围。 所有日期都被解析为日期时间范围。例如,像“11-6-87”这样的日期 会被解析为从一天开始到第二天开始的范围, 而像“2011年12月”这样的月份从一开始就被解读为一个区间 从12月1日到下个月初。
使用量
fromepitator.annotatorimportAnnoDocfromepitator.date_annotatorimportDateAnnotatordoc=AnnoDoc("From March 5 until April 7 1988")doc.add_tiers(DateAnnotator())annotations=doc.tiers["dates"].spansannotations[0].metadata["datetime_range"]# = [datetime.datetime(1988, 3, 5, 0, 0), datetime.datetime(1988, 4, 7, 0, 0)]
结构化数据注释器
结构化数据注释器识别并解析嵌入的表。
使用量
fromepitator.annotatorimportAnnoDocfromepitator.structured_data_annotatorimportStructuredDataAnnotatordoc=AnnoDoc(""" species | cases | deaths Cattle | 0 | 0 Dogs | 2 | 1 """)doc.add_tiers(StructuredDataAnnotator())annotations=doc.tiers["structured_data"].spansannotations[0].metadata# = {'data': [# [AnnoSpan(1-8, species), AnnoSpan(11-16, cases), AnnoSpan(19-25, deaths)],# [AnnoSpan(26-32, Cattle), AnnoSpan(36-37, 0), AnnoSpan(44-45, 0)],# [AnnoSpan(46-50, Dogs), AnnoSpan(56-57, 2), AnnoSpan(64-65, 1)]],# 'delimiter': '|',# 'type': 'table'}
结构化事件注释器
结构化事件注释器识别并解析 描述与位置、日期、疾病和物种元数据配对的病例数。 元数据也从表周围的文本中提取。
使用量
fromepitator.annotatorimportAnnoDocfromepitator.structured_incident_annotatorimportStructuredIncidentAnnotatordoc=AnnoDoc(""" Fictional October 2015 rabies cases in Svalbard species | cases | deaths Cattle | 0 | 0 Dogs | 4 | 1 """)doc.add_tiers(StructuredIncidentAnnotator())annotations=doc.tiers["structured_incidents"].spansannotations[-1].metadata# = {'location': {'name': u'Svalbard', ...},# 'species': {'label': u'Canidae', ...},# 'attributes': [],# 'dateRange': [datetime.datetime(2015, 10, 1, 0, 0), datetime.datetime(2015, 11, 1, 0, 0)],# 'type': 'deathCount',# 'value': 1,# 'resolvedDisease': {'label': u'rabies', ...}}
架构
外延器提供了以下用于组织注释的类。
annodoc-正在注释的文档。annodoc链接到应用于它的注释层。
注释者-一群注释者。每个注释器创建一个或多个注释层。
annospan-应用了注释的一段文本。
许可证
2016生态健康联盟版权所有
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。