Tło
W ostatnim poście zebrałem teksty i uporządkowałem je, aby usunąć niekonsekwencję w użyciu terminów. Teraz dochodzimy do etapu wykorzystania biblioteki NLP do analizy tych tekstów.
Zbliżać się
4. Zbuduj graf używając zdania
Trochę wiedzy na temat przetwarzania języka naturalnego (NLP).
Aby przeanalizować tekst, potrzebujemy sposobów podzielenia zdania na części, które mogą być przetwarzane przez dowolny algorytm uczenia maszynowego. W przeciwieństwie do danych tabelarycznych tekst nie jest zmienny w sposób ciągły i nie ma ładnego i gładkiego rozkładu. Musimy się jakoś obejść.
Najpopularniejszym podejściem przed pojawieniem się architektury głębokiego uczenia się/transformatora była reprezentacja Bag of Words. Pomysł jest całkiem prosty: policz liczbę konkretnych słów, które mają znaczącą siłę różnicującą. Najnowszym trendem jest stosowanie złożonego modelu transformatora do różnych zadań, takich jak analiza nastrojów, klasyfikacja tekstu, chatboty i wirtualni asystenci, ekstrakcja tekstu, tłumaczenie maszynowe, podsumowywanie tekstu lub rozpoznawanie mowy. Ale nie to chcę tutaj robić. Skupiam się na wydobywaniu relacji/interakcji pomiędzy różnymi podmiotami biomedycznymi. Wymaganie różni się od powyższych zadań.
Aby to zrobić, wykorzystuję możliwości biblioteki Stanza NLP do przeprowadzenia zwykłego przetwarzania tekstu i wykorzystania wyników do budowy wykresu. Poniżej znajduje się skrypt, w którym przygotowuję surowe zdanie w tym celu.
Załóżmy, że mam następujące przykładowe zdanie.
'CDKN2A, also known as cyclin-dependent kinase inhibitor 2A, is a gene which in humans is located at chromosome 9, band p21.3.'
Jeśli korzystam ze standardowego potoku Stanza bez zestawiania surowych tokenów, wyświetli się coś takiego jak poniżej.
-------------- Tokens -------------- CDKN2A NOUN , PUNCT also ADV known VERB as ADP cyclin NOUN - PUNCT dependent ADJ kinase NOUN inhibitor NOUN 2A NOUN , PUNCT is VERB a DET gene NOUN which PRON in ADP humans NOUN is AUX located VERB at ADP chromosome NOUN 9 NUM , PUNCT band NOUN p21.3 NOUN . PUNCT -------------- Entity -------------- CDKN2A cyclin-dependent kinase inhibitor 2A humans chromosome 9
Zauważysz, że niektóre tokeny nie są zgodne z wyodrębnionymi bytami. I dlatego potrzebuję funkcji pomocniczej „klucz”.
Uruchomienie innego skryptu przy użyciu funkcji pomocniczej „spanner” spowoduje wykonanie następujących czynności.
Zauważysz, że żetony odpowiadają podmiotom biomedycznym. Poniższe dane wyjściowe wskazują również, od którego tokenu zależy bieżący token. Jest to wynik analizy zależności, która odzwierciedla reguły gramatyczne rządzące konstruowaniem sensownego zdania. [1]. Zależność ta zostanie wykorzystana do skonstruowania wykresu zdania.
---------------------------- Tokens ---------------------------- CDKN2A is dependent on known also is dependent on known known is dependent on p21.3 as is dependent on gene cyclin-dependent kinase inhibitor 2A is dependent on gene is is dependent on gene a is dependent on gene gene is dependent on known which is dependent on located in is dependent on humans humans is dependent on located is is dependent on located located is dependent on gene at is dependent on p21.3 chromosome 9 is dependent on band band is dependent on p21.3 p21.3 is dependent on located ---------------------------- Entity ---------------------------- CDKN2A cyclin-dependent kinase inhibitor 2A humans
Przerwa
Jak dotąd opisałem, jak podzielić zdanie na elementy, które można wykorzystać do zbudowania wykresu. W następnym poście omówię, jak wykorzystać wykres do wyodrębnienia zależności, która jest kluczem do zrozumienia interakcji pomiędzy dwoma podmiotami biomedycznymi.
Czekać na dalsze informacje.