Advertisement

构建生物医学知识图谱from zero to hero (3):生物医学命名实体识别和链接

阅读量:

生物医学实体链接

我们现在正处在一个非常激动人心的阶段。对于刚开始学习自然语言处理(NLP)、命名实体识别(NER)以及知识图谱构建的新手们来说,请耐心跟我一起来探索这些领域的基础知识吧。在本节中我们会介绍什么是命名实体识别技术以及它如何工作。该技术的核心在于通过分析文本数据来识别出其中的相关实体或概念,并能帮助提取关键信息。举个例子,在生物医学领域里,该技术可以帮助我们从大量临床文献中提取出基因名称、药物名称、疾病名称等关键信息。

在这里插入图片描述

生物医学概念提取

在本例中,在这个例子中

  • MESH
  • CHEBI
  • OMIM
  • ENSEMBL
  • and others

为什么我们要将医疗实体与目标知识库联系起来?主要原因在于它有助于我们实现有效的实体消歧工作。具体而言,在我们的系统中避免在同一图中分别用单独的实体表示抗坏血酸和维生素C这两种其实属于同一类别的化合物(因为领域专家能够确认这些概念实际上是同一事物的不同名称或表达形式)。此外,在这种情况下建立概念与目标知识库之间的对应关系还有另一个重要优势:通过将概念与目标知识库建立对应关系,并获取关于这些概念之间映射关系的信息来丰富图形模型的知识基础。例如,在面对抗坏血酸这一实例时:如果我们已知该物质对应的CHEBI ID编号(即CHEBI ID),那么就可以方便从CHEBI数据库中查询该物质的具体化学属性、分子结构等详细信息。

在这里插入图片描述

Enrichment data available about ascorbic acid on CHEBI website.

复制代码
    import hashlib
    
    def query_raw(text, url="http://bern2.korea.ac.kr/plain"):
      """Biomedical entity linking API"""
      return requests.post(url, json={'text': text}).json()
    
    entity_list = []
    # The last sentence is invalid
    for s in sentences[:-1]:
      entity_list.append(query_raw(s))
    
    parsed_entities = []
    for entities in entity_list:
      e = []
      # If there are not entities in the text
      if not entities.get('annotations'):
    parsed_entities.append({'text':entities['text'], 'text_sha256': hashlib.sha256(entities['text'].encode('utf-8')).hexdigest()})
    continue
      for entity in entities['annotations']:
    other_ids = [id for id in entity['id'] if not id.startswith("BERN")]
    entity_type = entity['obj']
    entity_name = entities['text'][entity['span']['begin']:entity['span']['end']]
    try:
      entity_id = [id for id in entity['id'] if id.startswith("BERN")][0]
    except IndexError:
      entity_id = entity_name
    e.append({'entity_id': entity_id, 'other_ids': other_ids, 'entity_type': entity_type, 'entity': entity_name})
      parsed_entities.append({'entities':e, 'text':entities['text'], 'text_sha256': hashlib.sha256(entities['text'].encode('utf-8')).hexdigest()})
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI助手

全部评论 (0)

还没有任何评论哟~