Xlera8

NLP로 임상 텍스트에서 의료 정보 추출

개요

인공지능(AI)은 다양한 산업 분야에서 큰 발전을 이루고 있으며, 헬스케어도 예외는 아닙니다. 의료 분야 AI의 가장 유망한 영역 중 하나는 자연어 처리(NLP)로, 보다 효율적이고 정확한 데이터 분석 및 의사소통을 촉진하여 환자 치료에 혁명을 일으킬 수 있는 잠재력을 가지고 있습니다.

NLP는 의료 분야의 판도를 바꾸는 것으로 입증되었습니다. NLP는 의료 서비스 제공자가 환자 치료를 제공하는 방식을 변화시키고 있습니다. 인구 건강 관리에서 질병 탐지에 이르기까지 NLP는 의료 전문가가 정보에 근거한 결정을 내리고 더 나은 치료 결과를 제공하도록 돕습니다.

학습 목표

  1. 의료 분야에서 NLP 및 AI 활용 이해 및 분석
  2. NLP의 기본 이해하기
  3. 의료 분야에서 일반적으로 사용되는 NLP 라이브러리에 대해 알아보기
  4. 의료 분야에서 NLP 사용 사례에 대해 학습

이 기사는 데이터 과학 Blogathon.

차례

  1. 의료 분야에서 AI 및 NLP를 사용하려는 동기
  2. 자연어 처리 란 무엇입니까?
  3. NLP에 사용되는 다양한 기술
    3.1 규칙 기반 기술
    3.2 머신러닝 모델을 활용한 통계 기법
    3.3 전이학습
  4. 다양한 NLP 라이브러리 및 해당 프레임워크
  5. LLM(대형 언어 모델)이란 무엇입니까?
  6. 임상 텍스트의 NLP – 다른 접근 방식의 필요성
  7. 의료 산업에서 사용되는 일부 NLP 라이브러리
  8. 임상 데이터 세트 이해
  9. 다양한 유형의 임상 데이터란 무엇입니까?
  10. 의료 산업에서 NLP의 사용 사례 및 적용
  11. 임상 텍스트로 NLP 파이프라인을 구축하는 방법은 무엇입니까?
    11.1 솔루션 설계
    11.2 단계별 코드
  12. 결론

의료 분야에서 AI 및 NLP를 사용하려는 동기

사용 동기 AI 의료 분야의 NLP는 의료 비용을 줄이면서 환자 관리 및 치료 결과를 개선하는 데 뿌리를 두고 있습니다. 의료 산업은 EMR, 임상 노트, 건강 관련 소셜 미디어 게시물 등 환자의 건강과 치료 결과에 대한 귀중한 통찰력을 제공할 수 있는 방대한 양의 데이터를 생성합니다. 그러나 이 데이터의 대부분은 구조화되지 않았으며 수동으로 분석하기 어렵습니다.

또한 의료 산업은 인구 노령화, 만성 질환 발병률 증가, 의료 전문가 부족 등 여러 가지 과제에 직면해 있습니다.

이러한 과제로 인해 보다 효율적이고 효과적인 의료 서비스 제공에 대한 필요성이 커지고 있습니다.

NLP는 구조화되지 않은 의료 데이터에서 귀중한 통찰력을 제공함으로써 환자 치료 및 치료 결과를 개선하고 의료 전문가가 보다 정보에 입각한 임상 결정을 내릴 수 있도록 지원합니다.

자연어 처리 란 무엇입니까?

자연어 처리(NLP)는 컴퓨터와 인간 언어 간의 상호 작용을 다루는 인공 지능(AI)의 하위 분야입니다. 컴퓨터 기술을 사용하여 인간 언어를 분석, 이해 및 생성합니다. NLP는 음성 인식, 기계 번역, 감정 분석, 텍스트 요약 등 다양한 애플리케이션에 사용됩니다.

이제 다양한 NLP 기술, 라이브러리 및 프레임워크를 살펴보겠습니다.

NLP에 사용되는 다양한 기술

NLP 업계에서는 일반적으로 사용되는 두 가지 기술이 있습니다.

1. 규칙 기반 기술: 미리 정의된 문법 규칙 및 사전에 의존

2. 통계 기법: 기계 학습 알고리즘을 사용하여 언어를 분석하고 이해합니다.

3. 다음을 사용한 대규모 언어 모델 전학 학습

다음은 다양한 NLP 작업이 포함된 표준 NLP 파이프라인입니다.

nlp

규칙 기반 기술

이러한 기술에는 텍스트에서 의미 있는 정보를 추출하기 위해 손으로 만든 규칙 또는 패턴 세트를 만드는 것이 포함됩니다. 규칙 기반 시스템은 일반적으로 명명된 엔터티나 특정 키워드 등 대상 정보와 일치하는 특정 패턴을 정의한 다음 해당 패턴을 기반으로 해당 정보를 추출하는 방식으로 작동합니다. 규칙 기반 시스템 빠르고 안정적이며 간단하지만 정의된 규칙의 품질과 수에 의해 제한되며 유지 관리 및 업데이트가 어려울 수 있습니다.

예를 들어, 명명된 엔터티 인식을 위한 규칙 기반 시스템은 텍스트의 고유 명사를 식별하고 이를 사람, 위치, 조직, 질병, 약물 등과 같은 미리 정의된 엔터티 유형으로 분류하도록 설계될 수 있습니다. 시스템은 시리즈를 사용합니다. 사람 이름의 대문자 사용이나 조직의 특정 키워드와 같이 각 개체 유형의 기준과 일치하는 텍스트의 패턴을 식별하는 규칙입니다.

기계 학습 모델을 사용한 통계 기법

이러한 기술은 통계 알고리즘을 사용하여 데이터의 패턴을 학습하고 해당 패턴을 기반으로 예측합니다. 기계 학습 모델은 주석이 달린 대량의 데이터를 학습할 수 있으므로 규칙 기반 시스템보다 유연성과 확장성이 뛰어납니다. NLP에는 다음을 포함하여 여러 유형의 기계 학습 모델이 사용됩니다. 결정 트리, 무작위 숲, 지원 벡터 기계신경망.

예를 들어 감정 분석을 위한 기계 학습 모델은 각 텍스트에 긍정적, 부정적 또는 중립 태그가 지정된 주석이 달린 대규모 텍스트 모음에서 학습될 수 있습니다. 모델은 긍정적인 텍스트와 부정적인 텍스트를 구별하는 데이터의 통계적 패턴을 학습한 다음 해당 패턴을 사용하여 보이지 않는 새로운 텍스트를 예측합니다. 이 접근 방식의 장점은 모델이 규칙에 명시적으로 정의되지 않은 감정 패턴을 식별하는 방법을 학습할 수 있다는 것입니다.

전학 학습

이러한 기술은 규칙 기반 모델과 기계 학습 모델의 장점을 결합한 하이브리드 접근 방식입니다. 전이 학습은 대규모 텍스트 모음에 대해 훈련된 언어 모델과 같은 사전 훈련된 기계 학습 모델을 특정 작업이나 영역을 미세 조정하기 위한 출발점으로 사용합니다. 이 접근 방식은 사전 훈련된 모델에서 배운 일반 지식을 활용하여 훈련에 필요한 레이블이 지정된 데이터의 양을 줄이고 특정 작업에 대해 더 빠르고 정확한 예측을 가능하게 합니다.

예를 들어, 명명된 엔터티 인식에 대한 전이 학습 접근 방식은 주석이 달린 의료 텍스트의 더 작은 코퍼스에서 사전 훈련된 언어 모델을 미세 조정할 수 있습니다. 모델은 사전 훈련된 모델에서 배운 일반 지식으로 시작한 다음 의학 텍스트의 패턴에 더 잘 일치하도록 가중치를 조정합니다. 이 접근 방식은 교육에 필요한 레이블이 지정된 데이터의 양을 줄이고 의료 영역에서 명명된 엔터티 인식을 위한 보다 정확한 모델을 제공합니다.

다양한 NLP 라이브러리 및 해당 프레임워크

다양한 라이브러리는 광범위한 NLP 기능을 제공합니다. 와 같은 :

nlp

NLP(자연어 처리) 라이브러리 및 프레임워크는 NLP 애플리케이션을 개발하고 배포하는 데 도움이 되는 소프트웨어 도구입니다. 여러 NLP 라이브러리 및 프레임워크를 사용할 수 있으며 각각에는 강점, 약점 및 중점 영역이 있습니다.

이러한 도구는 지원하는 알고리즘의 복잡성, 처리할 수 있는 모델의 크기, 사용 편의성 및 허용되는 사용자 정의 정도에 따라 다릅니다.

LLM(대형 언어 모델)이란 무엇입니까?

대규모 언어 모델은 엄청난 양의 데이터를 학습합니다. 인간과 유사한 텍스트를 생성하고 높은 정확도로 광범위한 NLP 작업을 수행할 수 있습니다.

다음은 대규모 언어 모델의 몇 가지 예와 각 모델에 대한 간략한 설명입니다.

GPT-3 (생성 사전 훈련된 변환기 3): OpenAI에서 개발한 GPT-3은 딥 러닝 알고리즘을 사용하여 인간과 유사한 텍스트를 생성하는 대규모 변환기 기반 언어 모델입니다. 방대한 양의 텍스트 데이터에 대해 훈련을 받았기 때문에 프롬프트에 따라 일관되고 상황에 맞는 적절한 텍스트 응답을 생성할 수 있습니다.

BERT (변압기의 양방향 인코더 표현): Google에서 개발한 BERT는 대규모 텍스트 데이터 모음에 대해 사전 학습된 변환기 기반 언어 모델입니다. 문장 내 단어 간의 컨텍스트와 관계를 인코딩하여 명명된 엔터티 인식, 질문 응답, 텍스트 분류와 같은 광범위한 NLP 작업에서 잘 수행되도록 설계되었습니다.

로베르타 (강력하게 최적화된 BERT 접근 방식): Facebook AI가 개발한 RoBERTa는 BERT의 변형으로 NLP 작업에 맞게 미세 조정 및 최적화되었습니다. 더 큰 텍스트 데이터 코퍼스에 대해 훈련되었으며 BERT와 다른 훈련 전략을 사용하여 NLP 벤치마크에서 성능이 향상되었습니다.

ELMo(언어 모델의 임베딩): Allen Institute for AI에서 개발한 ELMo는 양방향 LSTM(Long Short-Term Memory) 네트워크를 사용하여 대규모 텍스트 데이터 모음에서 언어 표현을 학습하는 심층적인 상황별 단어 표현 모델입니다. ELMo는 특정 NLP 작업에 맞게 미세 조정되거나 다른 기계 학습 모델을 위한 기능 추출기로 사용될 수 있습니다.

ULMFiT(범용 언어 모델 미세 조정): FastAI가 개발한 ULMFiT는 소량의 작업별 주석 데이터를 사용하여 특정 NLP 작업에 대해 사전 훈련된 언어 모델을 미세 조정하는 전이 학습 방법입니다. ULMFiT는 광범위한 NLP 벤치마크에서 최첨단 성능을 달성했으며 NLP 전이 학습의 선도적인 사례로 간주됩니다.

임상 텍스트의 NLP: 다양한 접근 방식의 필요성

임상 텍스트는 구조화되지 않은 경우가 많고 의학 전문 용어와 약어가 많이 포함되어 있어 기존 NLP 모델을 이해하고 처리하기가 어렵습니다. 또한 임상 텍스트에는 질병, 약물, 환자 정보, 진단 및 치료 계획과 같은 중요한 정보가 포함되는 경우가 많으며, 이러한 의료 정보를 정확하게 추출하고 이해할 수 있는 특수 NLP 모델이 필요합니다.

임상 텍스트에 다양한 NLP 모델이 필요한 또 다른 이유는 통합이 필요한 EHR, 임상 노트, 방사선 보고서 등 다양한 소스에 분산된 많은 양의 데이터가 포함되어 있기 때문입니다. 이를 위해서는 텍스트를 처리 및 이해하고 다양한 소스에 걸쳐 데이터를 연결 및 통합하고 임상적으로 허용 가능한 관계를 설정할 수 있는 모델이 필요합니다.

마지막으로 임상 텍스트에는 민감한 환자 정보가 포함되어 있는 경우가 많으며 HIPAA와 같은 엄격한 규정에 따라 보호되어야 합니다. 임상 텍스트를 처리하는 데 사용되는 NLP 모델은 중요한 환자 정보를 식별하고 보호하는 동시에 유용한 통찰력을 제공할 수 있어야 합니다.

의료 산업에서 사용되는 일부 NLP 라이브러리

의학 내 텍스트 데이터에는 임상 텍스트, 기타 의료 문서 등 다양한 소스에서 의료 정보를 추출할 수 있는 전문적인 자연어 처리(NLP) 시스템이 필요합니다.

다음은 의료 분야와 관련된 NLP 라이브러리 및 모델 목록입니다.

스파시: 의료 도메인을 포함한 다양한 도메인에 즉시 사용 가능한 모델을 제공하는 오픈 소스 NLP 라이브러리입니다.

ScispaCy: 과학 및 생물 의학 텍스트에 대해 특별히 훈련된 spaCy의 특수 버전으로, 의료 텍스트 처리에 이상적입니다.

바이오버트:  생물 의학 분야를 위해 특별히 설계된 사전 훈련된 변환기 기반 모델입니다. Wiki + Books + PubMed + PMC로 사전 학습되었습니다.

임상BERT: MIMIC-III 데이터베이스의 임상 기록 및 퇴원 요약을 처리하도록 설계된 또 다른 사전 훈련된 모델입니다.

Med7:  진단, 약물 치료, 실험실 테스트를 포함한 7가지 주요 임상 개념을 추출하기 위해 전자 건강 기록(EHR)에 대해 학습된 변환기 기반 모델입니다.

DisMod-ML: NLP 기술을 사용하여 의료 텍스트를 처리하는 질병 모델링을 위한 확률적 모델링 프레임워크입니다.

위생병: 텍스트에서 의료 정보를 추출하기 위한 규칙 기반 NLP 시스템입니다.

이는 의료 분야를 위해 특별히 설계된 인기 있는 NLP 라이브러리 및 모델 중 일부입니다. 사전 학습된 모델부터 규칙 기반 시스템까지 다양한 기능을 제공하며 의료 기관이 의료 텍스트를 효과적으로 처리하는 데 도움을 줄 수 있습니다.

NER 모델에서는 spaCy와 Scispacy를 사용합니다. 이러한 라이브러리는 Google Colab 또는 로컬 인프라에서 비교적 쉽게 실행할 수 있습니다.

BioBERT 및 ClinicalBERT 리소스 집약적인 대규모 언어 모델에는 GPU와 더 높은 인프라가 필요합니다.

임상 데이터 세트 이해

의료 텍스트 데이터는 전자 건강 기록(EHR), 의학 저널, 임상 노트, 의료 웹사이트, 데이터베이스 등 다양한 소스에서 얻을 수 있습니다. 이러한 소스 중 일부는 NLP 모델 교육에 사용할 수 있는 공개적으로 사용 가능한 데이터 세트를 제공하는 반면, 다른 소스는 데이터에 액세스하기 전에 승인 및 윤리적 고려 사항이 필요할 수 있습니다. 의료 텍스트 데이터의 출처는 다음과 같습니다.

1. 오픈소스 의료 코퍼스 MIMIC-III 데이터베이스 2001년부터 2012년까지 Beth Israel Deaconess Medical Center에서 치료를 받은 환자의 공개적으로 액세스할 수 있는 대규모 전자 건강 기록(EHR) 데이터베이스입니다. 이 데이터베이스에는 환자 인구 통계, 활력 징후, 실험실 테스트, 약물, 절차, 간호사, 의사 등 의료 전문가의 메모입니다. 또한 데이터베이스에는 ICU 유형, 입원 기간 및 결과를 포함하여 환자의 ICU 입원에 대한 정보가 포함됩니다. MIMIC-III의 데이터는 식별되지 않으며 예측 모델 및 임상 의사결정 지원 시스템의 개발을 지원하기 위한 연구 목적으로 사용될 수 있습니다.

2. 국립의학도서관 ClinicalTrials.gov 웹사이트에는 임상시험 데이터 및 질병 감시 데이터가 있습니다.

3. 국립보건원 산하 국립의학도서관, 국립생명공학정보센터(NCBI), 세계보건기구(누구)

4. 병원, 진료소, 제약회사 등 의료기관 및 조직에서는 전자건강기록, 임상기록, 의료기록, 진료보고서 등을 통해 대량의 의료 텍스트 데이터를 생성합니다.

5. PubMed 및 CINAHL과 같은 의학 연구 저널 및 데이터베이스에는 방대한 양의 출판된 의학 연구 논문 및 초록이 포함되어 있습니다.

6. 트위터와 같은 소셜 미디어 플랫폼은 환자의 관점, 약물 리뷰 및 경험에 대한 실시간 통찰력을 제공할 수 있습니다.

의료 텍스트 데이터를 사용하여 NLP 모델을 훈련하려면 데이터의 품질과 관련성을 고려하고 데이터가 적절하게 사전 처리되고 형식이 지정되었는지 확인하는 것이 중요합니다. 또한 민감한 의료 정보를 다룰 때는 윤리적, 법적 고려 사항을 준수하는 것이 중요합니다.

다양한 유형의 임상 데이터란 무엇입니까?

의료 분야에서는 여러 유형의 임상 데이터가 일반적으로 사용됩니다.

다양한 유형의 임상 데이터란 무엇입니까?

임상 데이터는 환자의 병력, 진단, 치료, 실험실 결과, 영상 연구 및 기타 관련 건강 정보를 포함하여 개인의 건강 관리에 대한 정보를 의미합니다.

EHR/EMR 데이터 인구통계학적 데이터(여기에는 연령, 성별, 민족, 연락처 정보 등의 개인 정보가 포함됩니다.), 환자 생성 데이터(이러한 유형의 데이터는 환자 보고 결과 측정을 통해 수집된 정보와 환자가 직접 생성한 정보를 포함합니다.) -생성된 건강 데이터.)

다른 데이터 세트는 다음과 같습니다.

게놈 데이터: DNA 염기서열, 마커 등 개인의 유전정보와 관련된 유형입니다.

웨어러블 장치 데이터: 이 데이터에는 피트니스 트래커, 심장 모니터 등 웨어러블 장치에서 수집된 정보가 포함됩니다.

각 유형의 임상 데이터는 환자의 건강에 대한 포괄적인 보기를 제공하는 데 고유한 역할을 하며 의료 서비스 제공자와 연구자가 환자 치료를 개선하고 치료 결정을 알리기 위해 다양한 방식으로 사용됩니다.

의료 산업에서 NLP의 사용 사례 및 적용

자연어 처리(NLP)는 의료 산업에서 널리 채택되었으며 여러 사용 사례가 있습니다. 대표적인 것들은 다음과 같습니다:

인구 건강: NLP는 의료 기록, 설문 조사, 청구 데이터 등 대량의 비정형 의료 데이터를 처리하여 패턴, 상관 관계 및 통찰력을 식별하는 데 사용할 수 있습니다. 이는 인구의 건강을 모니터링하고 질병을 조기에 발견하는 데 도움이 됩니다.

환자 돌봄: NLP는 환자의 전자 건강 기록(EHR)을 처리하여 진단, 약물, 증상과 같은 중요한 정보를 추출하는 데 사용될 수 있습니다. 이 정보는 환자 치료를 개선하고 맞춤형 치료를 제공하는 데 사용될 수 있습니다.

질병 감지: NLP는 과학 기사, 뉴스 기사, 소셜 미디어 게시물 등 대량의 텍스트 데이터를 처리하여 감염병 발생을 탐지하는 데 사용될 수 있습니다.

임상 의사결정 지원 시스템(CDSS): NLP는 환자의 전자 건강 기록을 분석하여 의료 서비스 제공자에게 실시간 의사 결정 지원을 제공하는 데 사용될 수 있습니다. 이는 가능한 최상의 치료 옵션을 제공하고 전반적인 치료 품질을 향상시키는 데 도움이 됩니다.

임상 시험: NLP는 임상시험 데이터를 처리하여 상관관계와 잠재적인 새로운 치료법을 식별할 수 있습니다.

약물 부작용: NLP는 대량의 약물 안전성 데이터를 처리하여 이상반응과 약물 상호작용을 식별하는 데 사용될 수 있습니다.

정밀 건강: NLP는 게놈 데이터와 의료 기록을 처리하여 개별 환자에 대한 맞춤형 치료 옵션을 식별하는 데 사용될 수 있습니다.

의료 전문가의 효율성 향상: NLP는 의료 코딩, 데이터 입력, 청구 처리 등 일상적인 작업을 자동화하여 의료 전문가가 더 나은 환자 치료 제공에 집중할 수 있도록 해줍니다.

이는 NLP가 의료 산업에 어떻게 혁명을 일으켰는지 보여주는 몇 가지 예일 뿐입니다. NLP 기술이 계속 발전함에 따라 앞으로 의료 분야에서 NLP가 더욱 혁신적으로 사용될 것으로 예상됩니다.

임상 텍스트로 NLP 파이프라인을 구축하는 방법은 무엇입니까?

우리는 임상 텍스트용 SciSpacy NER 모델을 사용하여 단계별 Spacy 파이프라인을 개발할 것입니다.

목표: 이 프로젝트의 목표는 SciSpacy를 활용하여 임상 텍스트에 대한 맞춤형 명명 개체 인식을 수행하는 NLP 파이프라인을 구축하는 것입니다.

결과: 결과는 임상 텍스트에서 질병, 약물, 약물 용량에 대한 정보를 추출하여 다양한 NLP 다운스트림 애플리케이션에 활용될 것입니다.

솔루션 설계:

Clinical Text에서 엔터티 정보를 추출하는 고급 솔루션은 다음과 같습니다. NER 추출은 대부분의 NLP 파이프라인에서 사용되는 중요한 NLP 작업입니다.

플랫폼 : 구글 콜랩

NLP 라이브러리: spaCy 및 SciSpacy

데이터 세트 : mtsample.csv (mtsample에서 스크랩된 데이터)

우리는 스키스파시 사전 훈련된 NER 모델 en_ner_bc5cdr_md-0.5.1 질병과 약물을 추출합니다. 약물은 화학물질로 추출됩니다.

en_ner_bc5cdr_md-0.5.1은 생물의학 영역에서 개체명 인식(NER)을 위한 spaCy 모델입니다.

"bc5cdr"은 다음을 의미합니다. BC5CDR 코퍼스(corpus), 모델을 훈련하는 데 사용되는 생물 의학 텍스트 코퍼스입니다. 이름의 "md"는 생물의학 도메인을 의미합니다. 이름의 "0.5.1"은 모델의 버전을 나타냅니다.

mtsample.csv의 샘플 "전사" 텍스트를 사용하고 규칙 기반 패턴을 사용하여 주석을 달아 약물 복용량을 추출합니다.

단계별 코드:

spacy 및 scispacy 패키지를 설치합니다. spaCy 모델은 토큰화, 품사 태깅, 명명된 엔터티 인식과 같은 특정 NLP 작업을 수행하도록 설계되었습니다.

!pip 설치 -U spacy !pip 설치 scispacy

scispacy 기본 모델 및 NER 모델 설치

en_ner_bc5cdr_md-0.5.1 모델은 질병, 유전자, 약물 등 생물 의학 텍스트에서 명명된 개체를 화학 물질로 인식하도록 특별히 설계되었습니다.

이 모델은 정보 추출, 텍스트 분류, 질문 답변과 같은 생의학 영역의 NLP 작업에 유용할 수 있습니다.

!pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.1/en_core_sci_sm-0.5.1.tar.gz
!pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.1/en_core_sci_md-0.5.1.tar.gz
!pip install https://s3-us-west-2.amazonaws.com/ai2-s2-scispacy/releases/v0.5.1/en_ner_bc5cdr_md-0.5.1.tar.gz

다른 패키지 설치

pip 설치 렌더링

패키지 가져 오기

scispacy 가져오기 spacy 가져오기 #핵심 모델 가져오기 en_core_sci_sm 가져오기 en_core_sci_md
#NER 특정 모델 import en_ner_bc5cdr_md #spacy import displacy import pandas as pd에서 데이터를 추출하고 표시하기 위한 도구

파이썬 코드:

샘플 데이터로 모델 테스트

# 사용할 특정 전사본을 선택하고(3행, "전사"열) scispacy NER 모델을 테스트합니다. text = mtsample_df.loc[10, "transcription"]
코드 출력

특정 모델 로드: en_core_sci_sm 및 텍스트 전달

nlp_sm = en_core_sci_sm.load() doc = nlp_sm(텍스트)
#결과 표시
 엔터티 추출 displacy_image = displacy.render(doc, jupyter=True,style='ent')
코드 출력

엔터티가 여기에 태그되어 있습니다. 대부분 의학용어입니다. 그러나 이들은 일반적인 엔터티입니다.

이제 특정 모델인 en_core_sci_md를 로드하고 텍스트를 전달합니다.

nlp_md = en_core_sci_md.load() doc = nlp_md(텍스트)
#결과 엔터티 추출 표시
displacy_image = displacy.render(doc, jupyter=True,style='ent')

이번에는 숫자가 en_core_sci_md에 의해 엔터티로 태그 지정되었습니다.

이제 특정 모델을 로드합니다. en_ner_bc5cdr_md를 가져오고 텍스트를 전달합니다.

nlp_bc = en_ner_bc5cdr_md.load() doc = nlp_bc(text) # 결과 엔터티 추출 표시 displacy_image = displacy.render(doc, jupyter=True,style='ent')
코드 출력 | NLP

이제 질병과 화학물질(약물)이라는 두 가지 의료 개체에 태그가 지정됩니다.

엔터티 표시

doc.ents의 ent에 대한 print("TEXT", "START", "END", "ENTITY TYPE"): print(ent.text, ent.start_char, ent.end_char, ent.label_)

텍스트 시작 끝 엔터티 유형

병적 비만 26 40 질병

병적 비만 70 84 질병

체중 감소 400 411 질병

마케인 1256 1264 화학

NAN 값을 삭제하고 사용자 지정 엔터티 모델에 대한 임의의 작은 샘플을 생성하는 임상 텍스트를 처리합니다.

mtsample_df.dropna(subset=['transcription'], inplace=True) mtsample_df_subset = mtsample_df.sample(n=100, replacement=False, random_state=42) mtsample_df_subset.info() mtsample_df_subset.head()
코드 출력 | NLP

spaCy 일치자 – 규칙 기반 일치는 정규식 사용과 유사하지만 spaCy는 추가 기능을 제공합니다. 문서 내의 토큰과 관계를 사용하면 NER 모델의 도움으로 엔터티를 포함하는 패턴을 식별할 수 있습니다. 목표는 텍스트에서 약물 이름과 복용량을 찾는 것입니다. 이를 통해 표준 및 지침과 비교하여 투약 오류를 감지하는 데 도움이 될 수 있습니다.

목표는 텍스트에서 약물 이름과 복용량을 찾는 것입니다. 이를 통해 표준 및 지침과 비교하여 투약 오류를 감지하는 데 도움이 될 수 있습니다.

spacy.matcher 가져 오기 Matcher에서
패턴 = [{'ENT_TYPE':'CHEMICAL'}, {'LIKE_NUM': True}, {'IS_ASCII': True}] matcher = Matcher(nlp_bc.vocab) matcher.add("DRUG_DOSE", [pattern])
mtsample_df_subset['transcription']의 전사를 위해: doc = nlp_bc(transcription) match = matcher(doc) for match_id, start, end in match: string_id = nlp_bc.vocab.strings[match_id] # 문자열 표현을 얻습니다.span = doc[start :end] # 약물 복용량을 추가하는 일치된 범위 print(span.text, start, end, string_id,) # doc.ents에 ent에 대한 질병 및 약물 추가: print(ent.text, ent.start_char, ent.end_char, ent .상표_)

출력에는 임상 텍스트 샘플에서 추출된 엔터티가 표시됩니다.

코드 출력 | NLP
코드 출력 | NLP

이제 추출된 파이프라인을 볼 수 있습니다. 질병, 약물(화학물질) 및 약물 용량 임상 텍스트의 정보.

일부 잘못된 분류가 있지만 더 많은 데이터를 사용하면 모델 성능을 높일 수 있습니다.

이제 우리는 질병 탐지, 예측 분석, 임상 결정 지원 시스템, 의료 텍스트 분류, 요약, 질문 답변 등과 같은 다양한 작업에 이러한 의료 엔터티를 사용할 수 있습니다.

결론

1. 이 기사에서는 복잡한 의료 텍스트 데이터를 이해하는 데 도움이 되는 의료 분야 NLP의 몇 가지 주요 기능을 살펴보았습니다.

또한 scispaCy 및 spaCy를 구현하고 사전 훈련된 NER 모델 및 규칙 기반 일치자를 통해 간단한 사용자 정의 NER 모델을 구축했습니다. 우리는 하나의 NER 모델만 다루었지만 다른 여러 모델도 사용할 수 있으며 발견할 수 있는 추가 기능도 매우 많습니다.

2. scispaCy 프레임워크 내에는 약어 감지, 종속성 구문 분석 수행, 개별 문장 식별을 위한 방법을 포함하여 탐색할 수 있는 수많은 추가 기술이 있습니다.

3. 의료 분야 NLP의 최신 동향에는 BioBERT 및 ClinicalBert와 같은 도메인별 모델 개발과 GPT-3와 같은 대규모 언어 모델 사용이 포함됩니다. 이러한 모델은 높은 수준의 정확성과 효율성을 제공하지만, 이를 사용하면 편견, 개인 정보 보호 및 데이터 통제에 대한 우려도 높아집니다.

ChatGPT (OpenAI가 개발한 고급 대화형 AI 모델)은 이미 NLP 세계에 큰 영향을 미치고 있습니다. 이 모델은 인터넷의 방대한 양의 텍스트 데이터에 대해 훈련되었으며 수신된 입력을 기반으로 인간과 유사한 텍스트 응답을 생성하는 기능을 갖추고 있습니다. 질의응답, 요약, 번역 등 다양한 업무에 활용 가능합니다. 또한 이 모델은 코드 생성이나 기사 작성과 같은 특정 사용 사례에 맞게 미세 조정되어 특정 영역에서의 성능을 향상시킵니다.

5. 그러나 수많은 이점에도 불구하고 의료 분야의 NLP에는 어려움이 있습니다. NLP 모델의 정확성과 공정성을 보장하고 데이터 개인 정보 보호 문제를 극복하는 것은 의료 분야에서 NLP의 잠재력을 완전히 실현하기 위해 해결해야 할 과제 중 일부입니다.

6. NLP에는 많은 장점이 있으므로 의료 전문가가 NLP를 워크플로우에 수용하고 통합하는 것이 필수적입니다. 극복해야 할 과제가 많지만 의료 분야의 NLP는 확실히 관찰하고 투자할 가치가 있는 추세입니다.

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다.

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?