Skip to content

Latest commit

 

History

History
50 lines (32 loc) · 7.17 KB

File metadata and controls

50 lines (32 loc) · 7.17 KB

NER

Лабораторно упражнение от AI for Beginners Curriculum.

Задача

В това упражнение трябва да обучите модел за разпознаване на именувани обекти (NER) за медицински термини.

Датасетът

За да обучим NER модел, ни е необходим правилно етикетиран датасет с медицински обекти. BC5CDR датасетът съдържа етикетирани заболявания и химически обекти от над 1500 статии. Можете да изтеглите датасета след регистрация на техния уебсайт.

BC5CDR датасетът изглежда така:

6794356|t|Tricuspid valve regurgitation and lithium carbonate toxicity in a newborn infant.
6794356|a|A newborn with massive tricuspid regurgitation, atrial flutter, congestive heart failure, and a high serum lithium level is described. This is the first patient to initially manifest tricuspid regurgitation and atrial flutter, and the 11th described patient with cardiac disease among infants exposed to lithium compounds in the first trimester of pregnancy. Sixty-three percent of these infants had tricuspid valve involvement. Lithium carbonate may be a factor in the increasing incidence of congenital heart disease when taken during early pregnancy. It also causes neurologic depression, cyanosis, and cardiac arrhythmia when consumed prior to delivery.
6794356	0	29	Tricuspid valve regurgitation	Disease	D014262
6794356	34	51	lithium carbonate	Chemical	D016651
6794356	52	60	toxicity	Disease	D064420
...

В този датасет заглавието и резюмето на статията са в първите два реда, а след това са изброени индивидуалните обекти с начални и крайни позиции в блока заглавие+резюме. Освен типа на обекта, получавате и онтологичния ID на този обект в рамките на някоя медицинска онтология.

Ще трябва да напишете малко Python код, за да го конвертирате в BIO кодиране.

Мрежата

Първият опит за NER може да бъде направен с помощта на LSTM мрежа, както в примера, който видяхте по време на урока. Въпреки това, при задачи в областта на обработката на естествен език (NLP), архитектурата на трансформър, и по-специално BERT езиковите модели, показват много по-добри резултати. Предварително обучените BERT модели разбират общата структура на езика и могат да бъдат донастроени за специфични задачи с относително малки датасети и ниски изчислителни разходи.

Тъй като планираме да приложим NER в медицински сценарий, има смисъл да използваме BERT модел, обучен върху медицински текстове. Microsoft Research пусна предварително обучен модел, наречен [PubMedBERT][PubMedBERT] ([публикация][PubMedBERT-Pub]), който е донастроен с текстове от хранилището PubMed.

Стандартът de facto за обучение на трансформър модели е библиотеката Hugging Face Transformers. Тя също така съдържа хранилище с предварително обучени модели, поддържани от общността, включително PubMedBERT. За да заредим и използваме този модел, са ни нужни само няколко реда код:

model_name = "microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract"
classes = ... # number of classes: 2*entities+1
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = BertForTokenClassification.from_pretrained(model_name, classes)

Това ни дава самия model, създаден за задача за класификация на токени с използване на classes брой класове, както и обект tokenizer, който може да разделя входния текст на токени. Ще трябва да конвертирате датасета в BIO формат, като вземете предвид токенизацията на PubMedBERT. Можете да използвате този Python код като вдъхновение.

Изводи

Тази задача е много близка до реалната задача, която вероятно ще имате, ако искате да получите повече прозрения от големи обеми текстове на естествен език. В нашия случай можем да приложим обучен модел към датасет от статии, свързани с COVID и да видим какви прозрения можем да извлечем. Тази публикация в блог и тази статия описват изследванията, които могат да бъдат направени върху този корпус от статии с помощта на NER.

Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.