Tôi đã chứng minh cách tạo một biểu đồ tri thức từ một trang Wikipedia. Tuy nhiên, vì bài đăng đã thu hút nhiều sự chú ý, tôi đã quyết định khám phá các lĩnh vực khác mà việc sử dụng các kỹ thuật NLP để xây dựng một biểu đồ tri thức có ý nghĩa. Theo tôi, lĩnh vực y sinh là một ví dụ điển hình khi biểu diễn dữ liệu dưới dạng biểu đồ có ý nghĩa khi bạn thường phân tích các tương tác và mối quan hệ giữa các gen, bệnh tật, thuốc, protein, v.v.
Trong hình dung ở trên, chúng ta có axit ascorbic, còn được gọi là vitamin C, và một số mối quan hệ của nó với các khái niệm khác. Ví dụ, nó cho thấy rằng vitamin C có thể được sử dụng để điều trị viêm dạ dày mãn tính.
Giờ đây, bạn có thể nhờ một nhóm chuyên gia miền vẽ bản đồ tất cả các mối liên hệ giữa thuốc, bệnh tật và các khái niệm y sinh khác cho bạn. Nhưng, thật không may, không nhiều người trong chúng ta có đủ khả năng để thuê một đội ngũ y bác sĩ làm công việc cho mình. Trong trường hợp đó, chúng ta có thể sử dụng các kỹ thuật NLP để trích xuất các mối quan hệ đó một cách tự động. Phần tốt là chúng ta có thể sử dụng đường dẫn NLP để đọc tất cả các tài liệu nghiên cứu ở đó, và phần xấu là không phải tất cả các kết quả thu được đều sẽ hoàn hảo. Tuy nhiên, do tôi không có một nhóm các nhà khoa học sẵn sàng ở bên cạnh để trích xuất các mối quan hệ theo cách thủ công, tôi sẽ sử dụng các kỹ thuật NLP để xây dựng một biểu đồ kiến thức y sinh của riêng tôi.
Tôi sẽ sử dụng một bài nghiên cứu duy nhất trong bài đăng blog này để hướng dẫn bạn qua tất cả các bước cần thiết để xây dựng biểu đồ kiến thức y sinh - Kỹ thuật mô tái tạo da và mọc tóc.
Bài báo được viết bởi Mohammadreza Ahmadi. Phiên bản PDF của bài viết có sẵn theo giấy phép CC0 1.0. Chúng ta sẽ thực hiện các bước sau để xây dựng một biểu đồ tri thức:
- Đọc tài liệu PDF với OCR
- Xử lý trước văn bản
- Nhận dạng và liên kết khái niệm y sinh
- Trích xuất quan hệ
- Làm giàu cơ sở dữ liệu bên ngoài
Đến cuối bài viết này, bạn sẽ xây dựng một biểu đồ với lược đồ sau.
Chúng tôi sẽ sử dụng Neo4j, một cơ sở dữ liệu đồ thị có mô hình đồ thị thuộc tính được gắn nhãn, để lưu trữ đồ thị của chúng tôi. Mỗi bài báo có thể có một hoặc nhiều tác giả. Chúng tôi sẽ tách nội dung bài viết thành các câu và sử dụng NLP để trích xuất cả các thực thể y tế và mối quan hệ của chúng. Có thể hơi phản trực quan rằng chúng ta sẽ lưu trữ các mối quan hệ giữa các thực thể dưới dạng các nút trung gian thay vì các mối quan hệ. Yếu tố quan trọng đằng sau quyết định này là chúng tôi muốn có một dấu vết kiểm tra của văn bản nguồn mà từ đó mối quan hệ được trích xuất. Với mô hình đồ thị thuộc tính được gắn nhãn, bạn không thể có một mối quan hệ trỏ đến một mối quan hệ khác. Vì lý do này, chúng tôi cấu trúc lại kết nối giữa các khái niệm y tế thành một nút trung gian. Điều này cũng sẽ cho phép một chuyên gia miền đánh giá xem một mối quan hệ có được trích xuất chính xác hay không.
Đồng thời, tôi cũng sẽ trình bày các ứng dụng của việc sử dụng biểu đồ đã xây dựng để tìm kiếm và phân tích thông tin được lưu trữ.
Hãy đi sâu vào nó!
Nếu nội dung giáo dục chuyên sâu này hữu ích cho bạn, đăng ký vào danh sách gửi thư nghiên cứu AI của chúng tôi để được cảnh báo khi chúng tôi phát hành tài liệu mới.
Đọc tài liệu PDF với OCR
Như đã đề cập, phiên bản PDF của bài nghiên cứu có thể truy cập công khai theo giấy phép CC0 1.0, có nghĩa là chúng ta có thể dễ dàng tải xuống bằng Python. Chúng tôi sẽ sử dụng pytesseract thư viện để trích xuất văn bản từ PDF. Theo những gì tôi biết, thư viện pytesseract là một trong những thư viện phổ biến hơn cho OCR. Nếu bạn muốn làm theo các ví dụ mã, tôi đã chuẩn bị Sổ ghi chép Google Colab, vì vậy bạn không cần phải tự sao chép và dán mã.
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)Xử lý trước văn bản
Bây giờ chúng ta đã có sẵn nội dung bài viết, chúng ta sẽ tiếp tục xóa tiêu đề phần và mô tả hình khỏi văn bản. Tiếp theo, chúng ta sẽ tách văn bản thành các câu.
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)Liên kết thực thể có tên y sinh
Bây giờ đến phần thú vị. Đối với những người mới sử dụng NLP và nhận dạng và liên kết thực thể được đặt tên, hãy bắt đầu với một số điều cơ bản. Các kỹ thuật nhận dạng thực thể được đặt tên được sử dụng để phát hiện các thực thể hoặc khái niệm có liên quan trong văn bản. Ví dụ, trong lĩnh vực y sinh, chúng tôi muốn xác định nhiều loại gen, thuốc, bệnh tật và các khái niệm khác trong văn bản.
Trong ví dụ này, mô hình NLP đã xác định các gen, bệnh, thuốc, loài, đột biến và con đường trong văn bản. Như đã đề cập, quá trình này được gọi là nhận dạng thực thể được đặt tên. Nâng cấp đối với nhận dạng thực thể được đặt tên là cái gọi là liên kết thực thể được đặt tên. Kỹ thuật liên kết thực thể được đặt tên phát hiện các khái niệm có liên quan trong văn bản và cố gắng ánh xạ chúng tới cơ sở tri thức đích. Trong lĩnh vực y sinh, một số cơ sở kiến thức mục tiêu là:
Tại sao chúng ta muốn liên kết các thực thể y tế với một cơ sở tri thức mục tiêu? Lý do chính là nó giúp chúng ta đối phó với việc phân định thực thể. Ví dụ: chúng tôi không muốn các thực thể riêng biệt trong biểu đồ đại diện cho axit ascorbic và vitamin C vì các chuyên gia trong lĩnh vực có thể cho bạn biết đó là những thứ giống nhau. Lý do thứ hai là bằng cách ánh xạ các khái niệm với cơ sở tri thức mục tiêu, chúng ta có thể làm phong phú mô hình đồ thị của mình bằng cách tìm nạp thông tin về các khái niệm được ánh xạ từ cơ sở tri thức đích. Nếu chúng tôi sử dụng lại ví dụ về axit ascorbic, chúng tôi có thể dễ dàng tìm nạp thêm thông tin từ cơ sở dữ liệu CHEBI nếu chúng tôi đã biết Id CHEBI.
Tôi đã tìm kiếm một liên kết thực thể có tên y sinh học được đào tạo trước mã nguồn mở phù hợp trong một thời gian. Rất nhiều mô hình NLP chỉ tập trung vào việc trích xuất một tập hợp con cụ thể của các khái niệm y tế như gen hoặc bệnh tật. Thậm chí còn hiếm hơn khi tìm thấy một mô hình phát hiện hầu hết các khái niệm y tế và liên kết chúng với một cơ sở tri thức đích. May mắn thay, tôi đã tình cờ gặp BERN[1], công cụ nhận dạng thực thể y sinh thần kinh và công cụ chuẩn hóa nhiều loại. Nếu tôi hiểu chính xác, đó là một mô hình BioBert đã được tinh chỉnh với các mô hình liên kết thực thể được đặt tên khác nhau được tích hợp để ánh xạ các khái niệm với cơ sở tri thức mục tiêu y sinh. Không chỉ vậy, chúng còn cung cấp một điểm cuối REST miễn phí, vì vậy chúng tôi không phải đối mặt với vấn đề đau đầu để làm cho các phụ thuộc và mô hình hoạt động. Hình ảnh nhận dạng thực thể có tên y sinh học mà tôi đã sử dụng ở trên được tạo bằng mô hình BERN, vì vậy chúng tôi biết nó phát hiện gen, bệnh, thuốc, loài, đột biến và đường dẫn trong văn bản.
Thật không may, mô hình BERN không chỉ định id cơ sở tri thức đích cho tất cả các khái niệm. Vì vậy, tôi đã chuẩn bị một tập lệnh để xem xét liệu một id riêng biệt có được cấp cho một khái niệm hay không, và nếu không, nó sẽ sử dụng tên thực thể làm id. Chúng tôi cũng sẽ tính toán sha256 của văn bản các câu để xác định các câu cụ thể dễ dàng hơn sau khi chúng tôi thực hiện trích xuất quan hệ.
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()})Tôi đã kiểm tra kết quả của liên kết thực thể được đặt tên và như mong đợi, nó không hoàn hảo. Ví dụ, nó không xác định tế bào gốc như một khái niệm y tế. Mặt khác, nó phát hiện một thực thể duy nhất có tên là “tim, não, dây thần kinh và thận”. Tuy nhiên, BERN vẫn là mô hình y sinh mã nguồn mở tốt nhất mà tôi có thể tìm thấy trong quá trình điều tra của mình.
Xây dựng biểu đồ tri thức
Trước khi xem xét các kỹ thuật trích xuất quan hệ, chúng ta sẽ xây dựng một biểu đồ tri thức y sinh chỉ sử dụng các thực thể và kiểm tra các ứng dụng có thể có. Như đã đề cập, tôi đã chuẩn bị Sổ ghi chép Google Colab mà bạn có thể sử dụng để làm theo các ví dụ mã trong bài đăng này. Để lưu trữ đồ thị của chúng tôi, chúng tôi sẽ sử dụng Neo4j. Bạn không cần phải chuẩn bị một môi trường Neo4j cục bộ. Thay vào đó, bạn có thể sử dụng phiên bản Neo4j Sandbox miễn phí.
Bắt đầu Dự án trống trong hộp cát và sao chép chi tiết kết nối vào sổ ghi chép Colab.
Bây giờ bạn có thể tiếp tục và chuẩn bị kết nối Neo4j trong sổ ghi chép.
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())Chúng tôi sẽ bắt đầu bằng cách nhập tác giả và bài báo vào biểu đồ. Nút bài viết sẽ chỉ chứa tiêu đề.
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})Nếu bạn mở Trình duyệt Neo4j, bạn sẽ thấy biểu đồ sau.
Bạn có thể nhập các câu và các thực thể được đề cập bằng cách thực hiện truy vấn Cypher sau:
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})Bạn có thể thực hiện truy vấn Cypher sau để kiểm tra biểu đồ đã xây dựng:
MATCH p=(a:Article)-[:HAS_SENTENCE]->()-[:MENTIONS]->(e:Entity) RETURN p LIMIT 25
Nếu bạn đã nhập chính xác dữ liệu, bạn sẽ thấy một hình ảnh tương tự.
Ứng dụng sơ đồ tri thức
Ngay cả khi không có luồng trích xuất quan hệ, đã có một vài trường hợp sử dụng cho biểu đồ của chúng tôi.
Máy tìm kiếm
Chúng tôi có thể sử dụng biểu đồ của mình như một công cụ tìm kiếm. Ví dụ: bạn có thể sử dụng truy vấn Cypher sau đây để tìm các câu hoặc bài báo đề cập đến một thực thể y tế cụ thể.
MATCH (e:Entity)<-[:MENTIONS]-(s:Sentence) WHERE e.name = "autoimmune diseases" RETURN s.text as result
Kết quả
Phân tích đồng xuất hiện
Tùy chọn thứ hai là phân tích đồng xuất hiện. Bạn có thể xác định đồng xuất hiện giữa các thực thể y tế nếu chúng xuất hiện trong cùng một câu hoặc bài viết. Tôi đã tìm thấy một bài báo [2] sử dụng mạng đồng xuất hiện y tế để dự đoán các kết nối mới có thể có giữa các thực thể y tế.
Dự đoán liên kết trong mạng đồng xuất hiện MeSH: kết quả sơ bộ - PubMed
Bạn có thể sử dụng truy vấn Cypher sau để tìm các thực thể thường cùng xuất hiện trong cùng một câu.
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
Kết quả
thực thể1 thực thể2 sự thống nhất bệnh ngoài da loét tiểu đường 2 vết thương mãn tính loét tiểu đường 2 bệnh ngoài da vết thương mãn tính 2 Rõ ràng, kết quả sẽ tốt hơn nếu chúng ta phân tích hàng nghìn bài báo trở lên.
Kiểm tra chuyên môn của tác giả
Bạn cũng có thể sử dụng biểu đồ này để tìm kiến thức chuyên môn của tác giả bằng cách kiểm tra các đơn vị y tế mà họ thường viết về. Với thông tin này, bạn cũng có thể đề xuất các hợp tác trong tương lai.
Thực hiện truy vấn Cypher sau đây để kiểm tra các thực thể y tế nào mà tác giả của chúng tôi đã đề cập trong bài báo nghiên cứu.
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
Kết quả
tác giả thực thể tính Mohammadreza Ahmadi collagen 9 Mohammadreza Ahmadi bỏng 4 Mohammadreza Ahmadi bệnh ngoài da 4 Mohammadreza Ahmadi enzym collagenase 2 Mohammadreza Ahmadi bệnh ly thượng bì bọng nước 2 Trích xuất quan hệ
Bây giờ chúng ta sẽ cố gắng trích xuất mối quan hệ giữa các khái niệm y tế. Theo kinh nghiệm của tôi, việc trích xuất mối quan hệ ít nhất là một cấp độ khó hơn so với việc trích xuất thực thể được đặt tên. Nếu bạn không nên mong đợi kết quả hoàn hảo với liên kết thực thể được đặt tên, thì bạn chắc chắn có thể mắc phải một số sai lầm với kỹ thuật trích xuất quan hệ.
Tôi đã tìm kiếm các mô hình trích xuất quan hệ y sinh có sẵn nhưng không tìm thấy gì hoạt động hiệu quả hoặc không yêu cầu tinh chỉnh. Có vẻ như lĩnh vực khai thác quan hệ đang ở mức vượt trội, và hy vọng, chúng ta sẽ thấy nhiều sự chú ý hơn về nó trong tương lai. Thật không may, tôi không phải là một chuyên gia NLP, vì vậy tôi đã tránh điều chỉnh mô hình của riêng mình. Thay vào đó, chúng tôi sẽ sử dụng công cụ trích xuất quan hệ zero-shot dựa trên giấy Khám phá giới hạn không bắn được của ÍtRel[3]. Mặc dù tôi không khuyên bạn nên đưa mô hình này vào sản xuất, nhưng nó đủ tốt cho một cuộc trình diễn đơn giản. Mô hình có sẵn trên ÔmKhuôn Mặt, vì vậy chúng tôi không phải đào tạo hoặc thiết lập mô hình.
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)Với công cụ trích xuất quan hệ zero-shot, bạn có thể xác định quan hệ nào bạn muốn phát hiện. Trong ví dụ này, tôi đã sử dụng liên kết và tương tác các mối quan hệ. Tôi cũng đã thử các kiểu quan hệ cụ thể hơn như đối xử, nguyên nhân và những loại khác, nhưng kết quả không tuyệt vời.
Với mô hình này, bạn phải xác định giữa các cặp thực thể nào bạn muốn phát hiện các mối quan hệ. Chúng tôi sẽ sử dụng kết quả của liên kết thực thể được đặt tên làm đầu vào cho quá trình trích xuất quan hệ. Đầu tiên, chúng tôi tìm tất cả các câu trong đó hai hoặc nhiều thực thể được đề cập và sau đó chạy chúng thông qua mô hình trích xuất quan hệ để trích xuất bất kỳ kết nối nào. Tôi cũng đã xác định giá trị ngưỡng là 0.85, có nghĩa là nếu một mô hình dự đoán mối liên kết giữa các thực thể có xác suất thấp hơn 0.85, chúng tôi sẽ bỏ qua dự đoán.
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']) > 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] > 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]->(r:Relation {type: row.type})-[:REL]->(target) MERGE (text)-[:MENTIONS]->(r) """, {'data': predicted_rels})Chúng tôi lưu trữ các mối quan hệ cũng như văn bản nguồn được sử dụng để trích xuất mối quan hệ đó trong biểu đồ.
Bạn có thể kiểm tra các mối quan hệ được trích xuất giữa các thực thể và văn bản nguồn bằng truy vấn Cypher sau:
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
Kết quả
Như đã đề cập, mô hình NLP mà tôi đã sử dụng để trích xuất các mối quan hệ không hoàn hảo, và vì tôi không phải là bác sĩ y khoa, nên tôi không biết nó đã bỏ lỡ bao nhiêu kết nối. Tuy nhiên, những cái mà nó phát hiện có vẻ hợp lý.
Làm giàu cơ sở dữ liệu bên ngoài
Như tôi đã đề cập trước đây, chúng ta vẫn có thể sử dụng cơ sở dữ liệu bên ngoài như CHEBI hoặc MESH để làm phong phú biểu đồ của mình. Ví dụ: biểu đồ của chúng tôi chứa một thực thể y tế bệnh ly thượng bì bọng nước và chúng tôi cũng biết id MeSH của nó.
Bạn có thể truy xuất id MeSH của Epidermolysis bullosa bằng truy vấn sau:
MATCH (e:Entity) WHERE e.name = "Epidermolysis bullosa" RETURN e.name as entity, e.other_ids as other_ids
Bạn có thể tiếp tục và kiểm tra MeSH để tìm thông tin có sẵn:
Đây là ảnh chụp màn hình của thông tin có sẵn trên trang web MeSH cho Epidermolysis bullosa. Như đã đề cập, tôi không phải là bác sĩ y khoa, vì vậy tôi không biết chính xác đâu sẽ là cách tốt nhất để lập mô hình thông tin này thành biểu đồ. Tuy nhiên, tôi sẽ chỉ cho bạn cách truy xuất thông tin này trong Neo4j bằng cách sử dụng thủ tục apoc.load.json để tìm nạp thông tin từ điểm cuối MeSH REST. Và sau đó, bạn có thể yêu cầu một chuyên gia tên miền giúp bạn lập mô hình thông tin này.
Truy vấn Cypher để tìm nạp thông tin từ điểm cuối MeSH REST là:
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
Biểu đồ tri thức dưới dạng đầu vào dữ liệu học máy
Cuối cùng, tôi sẽ nhanh chóng hướng dẫn bạn cách bạn có thể sử dụng biểu đồ kiến thức y sinh làm đầu vào cho quy trình học máy. Trong những năm gần đây, đã có rất nhiều nghiên cứu và tiến bộ trong lĩnh vực nhúng nút. Mô hình nhúng nút chuyển cấu trúc liên kết mạng thành không gian nhúng.
Giả sử bạn đã xây dựng một biểu đồ kiến thức y sinh có chứa các thực thể và khái niệm y tế, mối quan hệ của chúng và sự phong phú hóa từ các cơ sở dữ liệu y tế khác nhau. Bạn có thể sử dụng kỹ thuật nhúng nút để tìm hiểu các biểu diễn nút, là các vectơ có độ dài cố định và nhập chúng vào quy trình học máy của bạn. Các ứng dụng khác nhau đang sử dụng cách tiếp cận này, từ định vị lại thuốc cho đến dự đoán tác dụng phụ hoặc tác dụng phụ của thuốc. Tôi đã tìm thấy một bài báo nghiên cứu sử dụng dự đoán liên kết cho các phương pháp điều trị tiềm năng của các bệnh mới[4.
Kết luận
Lĩnh vực y sinh là một ví dụ điển hình trong đó các biểu đồ tri thức có thể áp dụng được. Có rất nhiều ứng dụng khác nhau, từ các công cụ tìm kiếm đơn giản đến các quy trình công việc học máy phức tạp hơn. Hy vọng rằng khi đọc bài đăng trên blog này, bạn đã nghĩ ra một số ý tưởng về cách bạn có thể sử dụng đồ thị kiến thức y sinh để hỗ trợ các ứng dụng của mình. Bạn có thể bắt đầu một Hộp cát Neo4j miễn phí và bắt đầu khám phá ngay hôm nay.
Như mọi khi, mã có sẵn trên GitHub.
dự án
[1] D.Kim et al., “Công cụ nhận dạng thực thể có tên thần kinh và chuẩn hóa đa loại để khai thác văn bản y sinh”, trong Quyền truy cập IEEE, quyển sách. 7, trang 73729–73740, 2019, doi: 10.1109 / ACCESS.2019.2920708.
[2] Kastrin A, Rindflesch TC, Hristovski D. Dự đoán liên kết trong mạng đồng xuất hiện MeSH: kết quả sơ bộ. Stud Health Technol Thông báo. 2014; 205: 579–83. PMID: 25160252.
[3] Cetoli, A. (2020). Khám phá giới hạn số lần bắn XNUMX của ÍtRel. Trong Kỷ yếu Hội nghị Quốc tế về Ngôn ngữ học Tính toán lần thứ 28 (trang 1447–1451). Ủy ban quốc tế về ngôn ngữ học tính toán.
[4] Zhang, R., Hristovski, D., Schutte, D., Kastrin, A., Fiszman, M., & Kilicoglu, H. (2021). Thay thế thuốc cho COVID-19 thông qua việc hoàn thành sơ đồ kiến thức. Tạp chí Tin học Y sinh, 115, 103696.
Bài viết này ban đầu được xuất bản vào Hướng tới khoa học dữ liệu và được xuất bản lại lên TOPBOTS với sự cho phép của tác giả.
Thích bài viết này? Đăng ký để nhận thêm các bản cập nhật AI.
Chúng tôi sẽ cho bạn biết khi chúng tôi phát hành giáo dục kỹ thuật nhiều hơn.
Các bài viết Xây dựng một sơ đồ tri thức y sinh với NLP xuất hiện đầu tiên trên HÀNG ĐẦU.
- '
- "
- &
- 10
- 11
- 2019
- 2020
- 2021
- 7
- 9
- a
- Giới thiệu
- có thể truy cập
- thêm vào
- quản lý
- bất lợi
- trước
- AI
- ai nghiên cứu
- Tất cả
- Đã
- luôn luôn
- amp
- phân tích
- phân tích
- phân tích
- Một
- áp dụng
- các ứng dụng
- áp dụng
- Nộp đơn
- phương pháp tiếp cận
- bài viết
- bài viết
- liên kết
- sự chú ý
- kiểm toán
- tác giả
- tự động
- có sẵn
- Khái niệm cơ bản
- trước
- phía dưới
- BEST
- giữa
- lớn nhất
- Một chút
- Blog
- Bolt
- Hộp
- trình duyệt
- kinh doanh
- cuộc gọi
- ứng cử viên
- ứng cử viên
- trường hợp
- trường hợp
- nguyên nhân
- thách thức
- mã
- kết hợp
- kết hợp
- Tính
- khái niệm
- Hội nghị
- liên quan
- Kết nối
- chứa
- nội dung
- tiếp tục
- có thể
- Couple
- Covid-19
- tạo
- tạo ra
- quan trọng
- khách hàng
- Hỗ trợ khách hàng
- dữ liệu
- Cơ sở dữ liệu
- cơ sở dữ liệu
- nhiều
- quyết định
- quyết định
- chứng minh
- chứng minh
- mô tả
- chi tiết
- phát hiện
- bệnh
- Bác sĩ
- Các bác sĩ
- Không
- miền
- lĩnh vực
- tải về
- trình điều khiển
- thuốc
- Thuốc
- suốt trong
- mỗi
- dễ dàng
- Cạnh
- Đào tạo
- Tư vấn Giáo dục
- hiệu lực
- Điểm cuối
- Động cơ
- Kỹ Sư
- làm giàu
- thực thể
- thực thể
- Môi trường
- đánh giá
- Sự kiện
- chính xác
- ví dụ
- ví dụ
- Trừ
- thú vị
- mong đợi
- dự kiến
- kinh nghiệm
- chuyên gia
- chuyên môn
- các chuyên gia
- khám phá
- Tính năng
- Hình
- tài chính
- Tên
- dòng chảy
- Tập trung
- theo
- tiếp theo
- tìm thấy
- Miễn phí
- từ
- tương lai
- nhận được
- tốt
- tuyệt vời
- Nhóm
- Tóc
- cái đầu
- cho sức khoẻ
- giúp đỡ
- giúp
- Thuê
- Độ đáng tin của
- Hướng dẫn
- Tuy nhiên
- hr
- HTTPS
- ý tưởng
- xác định
- hình ảnh
- nhập khẩu
- thông tin
- đầu vào
- ví dụ
- tích hợp
- Quốc Tế
- điều tra
- IT
- tạp chí
- Biết
- kiến thức
- nổi tiếng
- korea
- LEARN
- học tập
- Hợp pháp
- Thư viện
- Giấy phép
- LIMIT
- LINK
- liên kết
- liên kết
- tải
- địa phương
- tìm kiếm
- máy
- học máy
- LÀM CHO
- thủ công
- bản đồ
- lập bản đồ
- Marketing
- Trận đấu
- vật liệu
- có nghĩa là
- có nghĩa
- y khoa
- y học
- trung bình
- đề cập
- đề cập đến
- Might
- Khai thác mỏ
- sai lầm
- MIT
- kiểu mẫu
- mô hình
- chi tiết
- hầu hết
- quốc dân
- mạng
- NIH
- các nút
- máy tính xách tay
- thu được
- mở
- Hoạt động
- Ý kiến
- Tùy chọn
- gọi món
- Nền tảng khác
- riêng
- Giấy
- một phần
- Mật khẩu
- hoàn hảo
- xin vui lòng
- Phổ biến
- có thể
- tiềm năng
- dự đoán
- dự đoán
- Dự đoán
- Chuẩn bị
- trình bày
- chính
- quá trình
- Sản phẩm
- Sản lượng
- dự án
- tài sản
- cho
- công khai
- Mau
- khác nhau,
- Reading
- hợp lý
- gần đây
- giới thiệu
- quan hệ
- mối quan hệ
- Mối quan hệ
- phát hành
- có liên quan
- đại diện
- yêu cầu
- yêu cầu
- cần phải
- nghiên cứu
- Resort
- REST của
- Kết quả
- trở lại
- chạy
- bán hàng
- tương tự
- sandbox
- các nhà khoa học
- Tìm kiếm
- công cụ tìm kiếm
- Công cụ tìm kiếm
- trung học
- ý nghĩa
- định
- thiết lập
- đăng ký
- tương tự
- Đơn giản
- kể từ khi
- duy nhất
- 6
- Da
- Snap
- So
- một số
- Không gian
- riêng
- chia
- Bắt đầu
- thân cây
- Vẫn còn
- hàng
- hỗ trợ
- Mục tiêu
- nhóm
- Kỹ thuật
- kỹ thuật
- Sản phẩm
- Nguồn
- điều
- hàng ngàn
- ngưỡng
- Thông qua
- thời gian
- Yêu sách
- bây giờ
- công cụ
- Hội thảo
- điều trị
- loại
- chúng tôi
- Dưới
- hiểu
- Cập nhật
- us
- sử dụng
- trường hợp sử dụng
- giá trị
- khác nhau
- phiên bản
- hình dung
- Website
- Điều gì
- trong khi
- Wikipedia
- không có
- Công việc
- Luồng công việc
- công trinh
- sẽ
- X
- năm
- Năng suất
- trên màn hình