NLP ile Biyomedikal Bilgi Grafiği Oluşturun

Kaynak Düğüm: 1401511

zaten nasıl yapıldığını gösterdim Wikipedia sayfasından bir bilgi grafiği oluşturun. Bununla birlikte, gönderi çok dikkat çektiğinden, bir bilgi grafiği oluşturmak için NLP tekniklerini kullanmanın mantıklı olduğu diğer alanları keşfetmeye karar verdim. Benim düşünceme göre, biyomedikal alanı, genler, hastalıklar, ilaçlar, proteinler ve daha fazlası arasındaki etkileşimleri ve ilişkileri sıklıkla analiz ettiğiniz için verileri bir grafik olarak göstermenin anlamlı olduğu en iyi örnektir.

Diğer biyomedikal kavramlarla askorbik asit ilişkilerini gösteren örnek alt grafik. Yazarın resmi.

Yukarıdaki görselleştirmede, C vitamini olarak da bilinen askorbik asit ve bunun diğer kavramlarla olan bazı ilişkileri var. Örneğin, C vitamininin kronik gastriti tedavi etmek için kullanılabileceğini gösteriyor.

Artık, ilaçlar, hastalıklar ve diğer biyomedikal kavramlar arasındaki tüm bu bağlantıları sizin için haritalayan bir alan uzmanlarından oluşan bir ekibiniz olabilir. Ancak ne yazık ki, çoğumuz bu işi bizim yerimize yapması için bir tıp doktorları ekibi tutmayı göze alamayız. Bu durumda, bu ilişkileri otomatik olarak çıkarmak için NLP tekniklerine başvurabiliriz. İyi yanı, oradaki tüm araştırma makalelerini okumak için bir NLP ardışık düzenini kullanabilmemiz ve kötü yanı, elde edilen tüm sonuçların mükemmel olmayacağıdır. Ancak, ilişkileri manuel olarak çıkarmak için yanımda hazır bir bilim adamları ekibim olmadığı için, kendi biyomedikal bilgi grafiğimi oluşturmak için NLP tekniklerini kullanmaya başvuracağım.

Biyomedikal bilgi grafiği oluşturmak için gereken tüm adımlarda size yol göstermek için bu blog yazısında tek bir araştırma makalesi kullanacağım – Cilt Yenilenmesi ve Saç Büyümesinin Doku Mühendisliği.

Kağıt tarafından yazılmıştır Muhammed Rıza Ahmedi. Makalenin PDF versiyonu CC0 1.0 lisansı altında mevcuttur. Bir bilgi grafiği oluşturmak için aşağıdaki adımlardan geçeceğiz:

  • OCR ile bir PDF belgesi okuma
  • Metin önişleme
  • Biyomedikal kavram tanıma ve bağlama
  • ilişki çıkarma
  • Harici veritabanı zenginleştirme

Bu yazının sonunda, aşağıdaki şema ile bir grafik oluşturacaksınız.

Biyomedikal grafik şeması. Yazarın resmi.

Grafiğimizi depolamak için etiketli özellik grafiği modelini içeren bir grafik veritabanı olan Neo4j'yi kullanacağız. Her makalenin bir veya daha fazla yazarı olabilir. Makale içeriğini cümlelere ayıracağız ve hem tıbbi varlıkları hem de bunların ilişkilerini çıkarmak için NLP kullanacağız. Varlıklar arasındaki ilişkileri ilişkiler yerine ara düğümler olarak saklamamız biraz mantığa aykırı olabilir. Bu kararın arkasındaki kritik faktör, ilişkinin çıkarıldığı kaynak metnin bir denetim izine sahip olmak istememizdir. Etiketli özellik grafiği modeliyle, başka bir ilişkiyi işaret eden bir ilişkiniz olamaz. Bu nedenle, tıbbi kavramlar arasındaki bağlantıyı bir ara düğümde yeniden değerlendiriyoruz. Bu aynı zamanda bir etki alanı uzmanının bir ilişkinin doğru şekilde çıkarılıp çıkarılmadığını değerlendirmesine de olanak tanır.

Bu arada, saklanan bilgileri aramak ve analiz etmek için oluşturulmuş grafiği kullanma uygulamalarını da göstereceğim.

Hemen içine dalalım!

Bu kapsamlı eğitim içeriği sizin için yararlıysa, AI araştırma e-posta listemize abone olun yeni materyal çıkardığımızda uyarılmak.

OCR ile bir PDF belgesi okuma

Belirtildiği gibi, araştırma belgesinin PDF versiyonuna CC0 1.0 lisansı altında halka erişilebilir, yani Python ile kolayca indirebiliriz. kullanacağız Pytesseract PDF'den metin çıkarmak için kitaplık. Bildiğim kadarıyla, pytesseract kitaplığı, OCR için en popüler kitaplıklardan biridir. Örnek kodlar ile devam etmek isterseniz bir tane hazırladım. Google Colab not defteri, böylece kodu kendiniz kopyalayıp yapıştırmanız gerekmez.

import requests
import pdf2image
import pytesseract pdf = requests.get('https://arxiv.org/pdf/2110.03526.pdf')
doc = pdf2image.convert_from_bytes(pdf.content) # Get the article text
article = []
for page_number, page_data in enumerate(doc): txt = pytesseract.image_to_string(page_data).encode("utf-8") # Sixth page are only references if page_number < 6: article.append(txt.decode("utf-8"))
article_txt = " ".join(article)

Metin önişleme

Artık makale içeriğine sahip olduğumuza göre, devam edip metinden bölüm başlıklarını ve şekil açıklamalarını kaldıracağız. Ardından, metni cümlelere ayıracağız.

import nltk
nltk.download('punkt') def clean_text(text): """Remove section titles and figure descriptions from text""" clean = "n".join([row for row in text.split("n") if (len(row.split(" "))) > 3 and not (row.startswith("(a)")) and not row.startswith("Figure")]) return clean text = article_txt.split("INTRODUCTION")[1]
ctext = clean_text(text)
sentences = nltk.tokenize.sent_tokenize(ctext)

Biyomedikal adlı varlık bağlama

Şimdi heyecan verici kısım geliyor. NLP'de yeni olanlar ve adlandırılmış varlık tanıma ve bağlama için bazı temel bilgilerle başlayalım. Adlandırılmış varlık tanıma teknikleri, metindeki ilgili varlıkları veya kavramları tespit etmek için kullanılır. Örneğin, biyomedikal alanında metindeki çeşitli genleri, ilaçları, hastalıkları ve diğer kavramları tanımlamak istiyoruz.

Biyomedikal kavramların çıkarılması. Yazarın resmi.

Bu örnekte, NLP modeli metindeki genleri, hastalıkları, ilaçları, türleri, mutasyonları ve yolları tanımlamıştır. Belirtildiği gibi, bu işleme adlandırılmış varlık tanıma denir. Adlandırılmış varlık tanımaya yükseltme, adlandırılmış varlık bağlama olarak adlandırılır. Adlandırılmış varlık bağlama tekniği, metindeki ilgili kavramları tespit eder ve bunları hedef bilgi tabanıyla eşleştirmeye çalışır. Biyomedikal alanda, hedef bilgi tabanlarından bazıları şunlardır:

Neden tıbbi varlıkları bir hedef bilgi tabanına bağlamak isteyelim ki? Birincil neden, varlık belirsizliği ile başa çıkmamıza yardımcı olmasıdır. Örneğin, alan uzmanları size bunların aynı şey olduğunu söyleyebileceğinden, grafikte askorbik asit ve C vitaminini temsil eden ayrı varlıklar istemiyoruz. İkincil neden, kavramları bir hedef bilgi tabanına eşleyerek, hedef bilgi tabanından eşlenen kavramlar hakkında bilgi getirerek grafik modelimizi zenginleştirebilmemizdir. Askorbik asit örneğini tekrar kullanırsak, zaten biliyorsak CHEBI veri tabanından kolayca ek bilgi alabiliriz. CHEBI kimliği.

CHEBI web sitesinde askorbik asit hakkında zenginleştirme verileri mevcuttur. Web sitesindeki tüm içerik altında mevcuttur. CC BY 4.0 lisansı. Yazarın resmi.

Bir süredir bağlantı kuran iyi bir açık kaynaklı, önceden eğitilmiş biyomedikal adlı varlık arıyordum. Pek çok NLP modeli, genler veya hastalıklar gibi tıbbi kavramların yalnızca belirli bir alt kümesini çıkarmaya odaklanır. Çoğu tıbbi kavramı algılayan ve bunları hedef bilgi tabanına bağlayan bir model bulmak daha da nadirdir. Şans eseri denk geldim BERN[1], bir sinirsel biyomedikal varlık tanıma ve çok tipli normalleştirme aracı. Doğru anlarsam, kavramları biyomedikal hedef bilgi tabanlarına eşlemek için entegre edilmiş çeşitli adlandırılmış varlık bağlama modellerine sahip ince ayarlı bir BioBert modelidir. Sadece bu değil, aynı zamanda ücretsiz bir REST uç noktası da sağlıyorlar, bu yüzden bağımlılıkları ve modeli çalıştırmanın baş ağrısıyla uğraşmak zorunda değiliz. Yukarıda kullandığım biyomedikal adlı varlık tanıma görselleştirmesi BERN modeli kullanılarak oluşturuldu, bu nedenle metindeki genleri, hastalıkları, ilaçları, türleri, mutasyonları ve yolları tespit ettiğini biliyoruz.

Ne yazık ki, BERN modeli tüm kavramlara hedef bilgi tabanı kimlikleri atamamaktadır. Bu yüzden, ilk önce bir kavram için ayrı bir kimlik verilip verilmediğine bakan bir komut dosyası hazırladım ve değilse, kimlik olarak varlık adını kullanacak. Daha sonra ilişki çıkarımı yaparken belirli cümleleri daha kolay tanımlamak için cümle metninin sha256'sını da hesaplayacağız.

import hashlib def query_raw(text, url="https://bern.korea.ac.kr/plain"): """Biomedical entity linking API""" return requests.post(url, data={'sample_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('denotations'): parsed_entities.append({'text':entities['text'], 'text_sha256': hashlib.sha256(entities['text'].encode('utf-8')).hexdigest()}) continue for entity in entities['denotations']: 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()})

Adlandırılmış varlık bağlantısının sonuçlarını inceledim ve beklendiği gibi mükemmel değil. Örneğin kök hücreleri tıbbi bir kavram olarak tanımlamaz. Öte yandan “kalp, beyin, sinirler ve böbrek” adında tek bir varlık tespit etti. Ancak BERN, araştırmam sırasında bulabildiğim en iyi açık kaynaklı biyomedikal modeldir.

Bir bilgi grafiği oluşturun

İlişki çıkarma tekniklerine bakmadan önce, sadece varlıkları kullanarak bir biyomedikal bilgi grafiği oluşturacağız ve olası uygulamaları inceleyeceğiz. Bahsettiğim gibi, bir tane hazırladım. Google Colab not defteri bu gönderideki kod örneklerini takip etmek için kullanabilirsiniz. Grafiğimizi saklamak için Neo4j kullanacağız. Yerel bir Neo4j ortamı hazırlamakla uğraşmanıza gerek yok. Bunun yerine ücretsiz bir Neo4j Sandbox örneği kullanabilirsiniz.

Neo4j Korumalı Alanı

Başlat Korumalı alanda boş proje ve bağlantı ayrıntılarını Colab not defterine kopyalayın.

Neo4j Sandbox bağlantı ayrıntıları. Yazarın resmi.

Şimdi devam edebilir ve Neo4j bağlantısını dizüstü bilgisayarda hazırlayabilirsiniz.

from neo4j import GraphDatabase
import pandas as pd host = 'bolt://3.236.182.55:7687'
user = 'neo4j'
password = 'hydrometer-ditches-windings'
driver = GraphDatabase.driver(host,auth=(user, password)) def neo4j_query(query, params=None): with driver.session() as session: result = session.run(query, params) return pd.DataFrame([r.values() for r in result], columns=result.keys())

Yazarı ve makaleyi grafiğe aktararak başlayacağız. Makale düğümü yalnızca başlığı içerecektir.

author = article_txt.split("n")[0]
title = " ".join(article_txt.split("n")[2:4]) neo4j_query("""
MERGE (a:Author{name:$author})
MERGE (b:Article{title:$title})
MERGE (a)-[:WROTE]->(b)
""", {'title':title, 'author':author})

Neo4j Browser'ı açarsanız aşağıdaki grafiği görmelisiniz.

Yazarın resmi.

Aşağıdaki Cypher sorgusunu yürüterek cümleleri ve belirtilen varlıkları içe aktarabilirsiniz:

neo4j_query("""
MATCH (a:Article)
UNWIND $data as row
MERGE (s:Sentence{id:row.text_sha256})
SET s.text = row.text
MERGE (a)-[:HAS_SENTENCE]->(s)
WITH s, row.entities as entities
UNWIND entities as entity
MERGE (e:Entity{id:entity.entity_id})
ON CREATE SET e.other_ids = entity.other_ids, e.name = entity.entity, e.type = entity.entity_type
MERGE (s)-[m:MENTIONS]->(e)
ON CREATE SET m.count = 1
ON MATCH SET m.count = m.count + 1
""", {'data': parsed_entities})

Oluşturulan grafiği incelemek için aşağıdaki Cypher sorgusunu yürütebilirsiniz:

MATCH p=(a:Article)-[:HAS_SENTENCE]->()-[:MENTIONS]->(e:Entity)
RETURN p LIMIT 25

Verileri doğru bir şekilde içe aktardıysanız, benzer bir görselleştirme görmeniz gerekir.

Bir grafik olarak depolanan varlık çıkarma. Yazarın resmi.

Bilgi grafiği uygulamaları

İlişki çıkarma akışı olmasa bile, grafiğimiz için zaten birkaç kullanım durumu var.

Arama motoru

Grafiğimizi bir arama motoru olarak kullanabiliriz. Örneğin, belirli bir tıbbi varlıktan bahseden cümleler veya makaleler bulmak için aşağıdaki Cypher sorgusunu kullanabilirsiniz.

MATCH (e:Entity)<-[:MENTIONS]-(s:Sentence)
WHERE e.name = "autoimmune diseases"
RETURN s.text as result

Sonuçlar

Yazarın resmi.

Birlikte oluşum analizi

İkinci seçenek, birlikte oluşum analizidir. Aynı cümlede veya makalede geçiyorlarsa, tıbbi varlıklar arasındaki birlikte oluşumu tanımlayabilirsiniz. Tıbbi varlıklar arasındaki olası yeni bağlantıları tahmin etmek için tıbbi birlikte oluşum ağını kullanan bir makale[2] buldum.

MeSH ortak oluşum ağında bağlantı tahmini: ön sonuçlar – PubMed

Aynı cümlede sıklıkla birlikte geçen varlıkları bulmak için aşağıdaki Cypher sorgusunu kullanabilirsiniz.

MATCH (e1:Entity)<-[:MENTIONS]-()-[:MENTIONS]->(e2:Entity)
MATCH (e1:Entity)<-[:MENTIONS]-()-[:MENTIONS]->(e2:Entity)
WHERE id(e1) < id(e2)
RETURN e1.name as entity1, e2.name as entity2, count(*) as cooccurrence
ORDER BY cooccurrence
DESC LIMIT 3

Sonuçlar

varlık1 varlık2 birliktelik
cilt hastalıkları diyabetik ülserler 2
kronik yaralar diyabetik ülserler 2
cilt hastalıkları kronik yaralar 2

Açıkçası, binlerce veya daha fazla makaleyi analiz edersek sonuçlar daha iyi olurdu.

Yazar uzmanlığını inceleyin

Bu grafiği, en sık yazdıkları tıbbi varlıkları inceleyerek yazarın uzmanlığını bulmak için de kullanabilirsiniz. Bu bilgilerle, gelecekteki işbirliklerini de önerebilirsiniz.

Tek yazarımızın araştırma makalesinde bahsettiği tıbbi varlıkları incelemek için aşağıdaki Cypher sorgusunu yürütün.

MATCH (a:Author)-[:WROTE]->()-[:HAS_SENTENCE]->()-[:MENTIONS]->(e:Entity)
RETURN a.name as author, e.name as entity,
MATCH (a:Author)-[:WROTE]->()-[:HAS_SENTENCE]->()-[:MENTIONS]->(e:Entity)
RETURN a.name as author, e.name as entity, count(*) as count
ORDER BY count DESC
LIMIT 5

Sonuçlar

yazar varlık saymak
Muhammed Rıza Ahmedi kollajen 9
Muhammed Rıza Ahmedi yanıklar 4
Muhammed Rıza Ahmedi cilt hastalıkları 4
Muhammed Rıza Ahmedi kollajenaz enzimleri 2
Muhammed Rıza Ahmedi epidermolizis bülloza 2

ilişki çıkarma

Şimdi tıbbi kavramlar arasındaki ilişkileri çıkarmaya çalışacağız. Tecrübelerime göre, ilişki çıkarımı, en azından adlandırılmış varlık çıkarımından daha zor bir büyüklük sırasıdır. Adlandırılmış varlık bağlama ile mükemmel sonuçlar beklememeniz gerekiyorsa, ilişki çıkarma tekniğinde kesinlikle bazı hatalar bekleyebilirsiniz.

Mevcut biyomedikal ilişki çıkarma modellerini arıyordum ama kutunun dışında işe yarayan veya ince ayar gerektirmeyen hiçbir şey bulamadım. Görünüşe göre ilişki çıkarma alanı en son teknolojide ve umarım gelecekte buna daha fazla dikkat çekeceğiz. Ne yazık ki, ben bir NLP uzmanı değilim, bu yüzden kendi modelimde ince ayar yapmaktan kaçındım. Bunun yerine, kağıda dayalı sıfır atış ilişki çıkarıcısını kullanacağız. FewRel'in sıfır atış sınırını keşfetme[3]. Bu modeli üretime sokmayı tavsiye etmesem de, basit bir tanıtım için yeterince iyi. Model şu adreste mevcuttur: SarılmaYüz, bu yüzden eğitim veya model kurma ile uğraşmamıza gerek yok.

from transformers import AutoTokenizer
from zero_shot_re import RelTaggerModel, RelationExtractor model = RelTaggerModel.from_pretrained("fractalego/fewrel-zero-shot")
tokenizer = AutoTokenizer.from_pretrained("bert-large-uncased-whole-word-masking-finetuned-squad")
relations = ['associated', 'interacts']
extractor = RelationExtractor(model, tokenizer, relations)

Zero-shot ilişki çıkarıcı ile hangi ilişkileri tespit etmek istediğinizi tanımlayabilirsiniz. Bu örnekte, kullandım ilişkili ve etkileşime ilişkiler. Ayrıca tedaviler, nedenler ve diğerleri gibi daha spesifik ilişki türlerini denedim, ancak sonuçlar harika değildi.

Bu modelle, hangi varlık çiftleri arasında ilişkileri saptamak istediğinizi tanımlamanız gerekir. Adlandırılmış varlık bağlantısının sonuçlarını ilişki çıkarma işlemine girdi olarak kullanacağız. İlk olarak, iki veya daha fazla varlığın bahsedildiği tüm cümleleri buluruz ve ardından herhangi bir bağlantıyı çıkarmak için ilişki çıkarma modelinde çalıştırırız. Ayrıca 0.85'lik bir eşik değeri tanımladım, yani bir model 0.85'ten daha düşük bir olasılığa sahip varlıklar arasında bir bağlantı öngörüyorsa, tahmini yok sayacağız.

import itertools
# Candidate sentence where there is more than a single entity present
candidates = [s for s in parsed_entities if (s.get('entities')) and (len(s['entities']) &gt; 1)]
predicted_rels = []
for c in candidates: combinations = itertools.combinations([{'name':x['entity'], 'id':x['entity_id']} for x in c['entities']], 2) for combination in list(combinations): try: ranked_rels = extractor.rank(text=c['text'].replace(",", " "), head=combination[0]['name'], tail=combination[1]['name']) # Define threshold for the most probable relation if ranked_rels[0][1] &gt; 0.85: predicted_rels.append({'head': combination[0]['id'], 'tail': combination[1]['id'], 'type':ranked_rels[0][0], 'source': c['text_sha256']}) except: pass # Store relations to Neo4j
neo4j_query("""
UNWIND $data as row
MATCH (source:Entity {id: row.head})
MATCH (target:Entity {id: row.tail})
MATCH (text:Sentence {id: row.source})
MERGE (source)-[:REL]-&gt;(r:Relation {type: row.type})-[:REL]-&gt;(target)
MERGE (text)-[:MENTIONS]-&gt;(r)
""", {'data': predicted_rels})

Bu ilişkiyi grafikte çıkarmak için kullanılan kaynak metnin yanı sıra ilişkileri de saklarız.

Bir grafikte saklanan ayıklanmış ilişkiler. Yazarın resmi.

Varlıklar ve kaynak metin arasındaki ayıklanan ilişkileri aşağıdaki Cypher sorgusu ile inceleyebilirsiniz:

MATCH (s:Entity)-[:REL]->(r:Relation)-[:REL]->(t:Entity), (r)<-[:MENTIONS]-(st:Sentence)
RETURN s.name as source_entity, t.name as target_entity, r.type as type, st.text as source_text

Sonuçlar

Yazarın resmi.

Bahsettiğim gibi, ilişkileri çıkarmak için kullandığım NLP modeli mükemmel değil ve tıp doktoru olmadığım için kaç bağlantıyı kaçırdığını bilmiyorum. Ancak tespit ettikleri makul görünüyor.

Harici veritabanı zenginleştirme

Daha önce de belirttiğim gibi, grafiğimizi zenginleştirmek için CHEBI veya MESH gibi harici veritabanlarını hala kullanabiliriz. Örneğin, grafiğimiz tıbbi bir varlık içeriyor epidermolizis bülloza ve ayrıca MeSH kimliğini de biliyoruz.

Epidermolysis bullosa'nın MeSH kimliğini aşağıdaki sorgu ile alabilirsiniz:

MATCH (e:Entity)
WHERE e.name = "Epidermolysis bullosa"
RETURN e.name as entity, e.other_ids as other_ids

Mevcut bilgileri bulmak için devam edebilir ve MeSH'yi inceleyebilirsiniz:

MeSH Bağlantılı Veriler

Yazarın ekran görüntüsü. Veriler ABD Ulusal Tıp Kütüphanesi'nin izniyle verilmiştir.

İşte Epidermolysis bullosa için MeSH web sitesinde mevcut bilgilerin bir ekran görüntüsü. Belirtildiği gibi, ben bir tıp doktoru değilim, bu yüzden bu bilgiyi bir grafikte modellemenin en iyi yolunun ne olacağını tam olarak bilmiyorum. Ancak, bilgileri MeSH REST uç noktasından almak için apoc.load.json prosedürünü kullanarak Neo4j'de bu bilgiyi nasıl alacağınızı göstereceğim. Ardından, bir etki alanı uzmanından bu bilgileri modellemenize yardımcı olmasını isteyebilirsiniz.

MeSH REST uç noktasından bilgi almak için Cypher sorgusu:

MATCH (e:Entity)
WHERE e.name = "Epidermolysis bullosa"
WITH e, [id in e.other_ids WHERE id contains "MESH" | split(id,":")[1]][0] as meshId
CALL apoc.load.json("https://id.nlm.nih.gov/mesh/lookup/details?descriptor=" + meshId) YIELD value
RETURN value

Makine öğrenimi veri girişi olarak bilgi grafiği

Son bir düşünce olarak, biyomedikal bilgi grafiğini bir makine öğrenimi iş akışına girdi olarak nasıl kullanabileceğinizi size hızlıca anlatacağım. Son yıllarda, düğüm gömme alanında çok sayıda araştırma ve ilerleme olmuştur. Düğüm gömme modelleri, ağ topolojisini gömme alanına çevirir.

Telif Hakkı © 2017 Manan Shah, SNAP Grubu. MIT lisansı altında mevcut resim https://github.com/snap-stanford/cs224w-notes.

Tıbbi varlıkları ve kavramları, bunların ilişkilerini ve çeşitli tıbbi veri tabanlarından elde edilen zenginleştirmeleri içeren bir biyomedikal bilgi grafiği oluşturduğunuzu varsayalım. Sabit uzunluklu vektörler olan düğüm temsillerini öğrenmek ve bunları makine öğrenimi iş akışınıza girmek için düğüm yerleştirme tekniklerini kullanabilirsiniz. Bu yaklaşımı, ilacın yeniden kullanılmasından ilaç yan veya yan etki tahminlerine kadar çeşitli uygulamalar kullanıyor. kullanan bir araştırma makalesi buldum. yeni hastalıkların potansiyel tedavileri için bağlantı tahmini[4].

Sonuç

Biyomedikal alan, bilgi grafiklerinin uygulanabilir olduğu en önemli örnektir. Basit arama motorlarından daha karmaşık makine öğrenimi iş akışlarına kadar birçok uygulama var. Umarım, bu blog gönderisini okuyarak, uygulamalarınızı desteklemek için biyomedikal bilgi grafiklerini nasıl kullanabileceğiniz konusunda bazı fikirler edinmişsinizdir. bir ücretsiz Neo4j Sandbox ve bugün keşfetmeye başlayın.

Her zaman olduğu gibi, kod şu adreste mevcuttur: GitHub.

Referanslar

[1] D.Kim ve diğerleri., “Biyomedikal Metin Madenciliği için Sinir Adlandırılmış Varlık Tanıma ve Çok Tipli Normalleştirme Aracı”, içinde IEEE Erişimi, cilt 7, s. 73729-73740, 2019, doi: 10.1109/ACCESS.2019.2920708.

[2] Kastrin A, Rindflesch TC, Hristoski D. MeSH ortak oluşum ağında bağlantı tahmini: ön sonuçlar. Damızlık Sağlık Teknolojisi Bilgilendir. 2014;205:579–83. PMID: 25160252.

[3] Cetoli, A. (2020). FewRel'in sıfır atış sınırını keşfetmek. İçinde 28. Uluslararası Hesaplamalı Dilbilim Konferansı Tutanakları (s. 1447-1451). Hesaplamalı Dilbilim Uluslararası Komitesi.

[4] Zhang, R., Hristoski, D., Schutte, D., Kastrin, A., Fiszman, M., & Kılıçoğlu, H. (2021). Bilgi grafiği tamamlama yoluyla COVID-19 için ilaç yeniden kullanım. Biyomedikal Bilişim Dergisi, 115, 103696.

Bu yazı orijinalinde Veri Bilimine Doğru ve yazarın izniyle TOPBOTS'a yeniden yayınlandı.

Bu makaleyi beğendin mi? Daha fazla AI güncellemesi için kaydolun.

Daha fazla teknik eğitim verdiğimizde size haber vereceğiz.

Sonrası NLP ile Biyomedikal Bilgi Grafiği Oluşturun İlk çıktı TOPBOTLAR.

Zaman Damgası:

Den fazla TOPBOTLAR