/ Модель

Характеристики

Контекст
514 токенов
Параметры
152 млн
Лицензия
Apache 2.0
Архитектура
roberta · dense

ner-disease-ncbi-bionlp-bc5cdr-pubmed

Разметка токеновТекст → label3 профессии

Модель RoBERTa извлекает упоминания заболеваний из англоязычных биомедицинских текстов.

468скачиваний за 30 дней11лайковвеса обновлены5 ноя 2021

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

raynardj разработал модель для распознавания упоминаний заболеваний в биомедицинском тексте. Это модель классификации токенов на базе RoBERTa, дообученной на корпусах NCBI Disease и BC5CDR с использованием предварительно обученной на текстах PubMed модели. В метках модели используется класс Disease для токенов, относящихся к заболеваниям, и O для остальных; начальные и внутренние части сущностей отдельно не размечаются.

Модель предназначена для извлечения названий заболеваний из публикаций и других биомедицинских текстов на английском языке. Она содержит 151,8 млн параметров, принимает текст с контекстом до 514 токенов и распространяется по лицензии Apache-2.0. В README также упоминаются отдельные модели автора для распознавания генов и химических веществ, но эта карточка описывает именно модель заболеваний.

Сценарии применения

  • извлечение названий заболеваний из статей PubMed
  • разметка заболеваний в биомедицинских текстах
  • поиск упоминаний болезней в научных публикациях
  • подготовка медицинских текстов для последующего анализа

Ограничения

Модель размечает заболевания и остальные токены, но не выделяет отдельно начальные и внутренние части сущностей. Её контекст ограничен 514 токенами.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

NER to find Gene & Gene products

The model was trained on ncbi-disease, BC5CDR dataset, pretrained on this pubmed-pretrained roberta model All the labels, the possible token classes.

{"label2id": {
    "O": 0,
    "Disease":1,
  }
 }

Notice, we removed the 'B-','I-' etc from data label.🗡

This is the template we suggest for using the model

from transformers import pipeline
PRETRAINED = "raynardj/ner-disease-ncbi-bionlp-bc5cdr-pubmed"
ner = pipeline(task="ner",model=PRETRAINED, tokenizer=PRETRAINED)
ner("Your text", aggregation_strategy="first")

And here is to make your output more consecutive ⭐️

import pandas as pd
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(PRETRAINED)
def clean_output(outputs):
    results = []
    current = []
    last_idx = 0
    # make to sub group by position
    for output in outputs:
        if output["index"]-1==last_idx:
            current.append(output)
        else:
            results.append(current)
            current = [output, ]
        last_idx = output["index"]
    if len(current)>0:
        results.append(current)
    
    # from tokens to string
    strings = []
    for c in results:
        tokens = []
        starts = []
        ends = []
        for o in c:
            tokens.append(o['word'])
            starts.append(o['start'])
            ends.append(o['end'])
        new_str = tokenizer.convert_tokens_to_string(tokens)
        if new_str!='':
            strings.append(dict(
                word=new_str,
                start = min(starts),
                end = max(ends),
                entity = c[0]['entity']
            ))
    return strings
def entity_table(pipeline, **pipeline_kw):
    if "aggregation_strategy" not in pipeline_kw:
        pipeline_kw["aggregation_strategy"] = "first"
    def create_table(text):
        return pd.DataFrame(
            clean_output(
                pipeline(text, **pipeline_kw)
            )
        )
    return create_table
# will return a dataframe
entity_table(ner)(YOUR_VERY_CONTENTFUL_TEXT)

check our NER model on

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · token-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaForTokenClassification
Ревизия весов
60897ba

0 моделей