CoronAI: глубокое извлечение информации для статей, связанных с COVID-19

Неконтролируемый подход к майнингу набора данных CORD-19 статей о коронавирусе

Вступление

В нашем мире было много вирусов и вспышек заболеваний, но не многие из них могут сравниться с COVID-19 с точки зрения глобального воздействия. Тем не менее, я оптимистично настроен в отношении того, что такие меры, как Калифорнийские меры «безопаснее дома» и «социальное дистанцирование», помогают полностью искоренить этот вирус. Мы потеряли много великих людей из-за этой болезни, и, похоже, она не желает облегчить нам ее борьбу.

В ответ на призыв Белого дома к действию в отношении использования ИИ для помощи в исследовании COVID-19, AllenAI, Microsoft Research, Chan-Zuckerberg Initiative, NIH и Whitehouse выпустили общедоступный набор данных о COVID-19. Этот набор данных включает около 44000 исследовательских статей по различным темам, связанным с коронавирусом (например, SARS, MERS и т. Д.)

Поскольку в наборе данных нет ярлыков, основные задачи, определенные в нем, - это общие вопросы, такие как Какая у нас есть информация о вакцинации?. Есть также отличные работы по систематизации статей на основе их тем, таких как это.

В этом посте мы представляем небольшой инструмент для использования обработки естественного языка в неконтролируемой кластеризации тем в этих статьях, чтобы мы могли лучше понять, что в них происходит.

Текстовые сегменты: атомы этого набора данных

Каждый документ состоит из разных разделов, и названия разделов относятся к тому, что у нас есть в выпущенном наборе данных. Перед словами в каждой статье самые маленькие объекты, сохраняющие семантику, - это текстовые сегменты и предложения. В этом посте показано, как их можно использовать все в одном ведре, чтобы помочь с неконтролируемой кластеризацией точек фокуса в этих статьях. Позже, учитывая различные разделы и сходство между разделами или между бумагами (возможно, даже с использованием сверточных сетей графов, сетей внимания графов и т. Д.) Или работы по организации темы, которая была упомянута ниже, для получения более точные результаты.

Мы используем токенизатор предложений Natural Language Processing Toolkit, чтобы разбить каждую статью на эти элементарные сегменты, а затем генерировать современные представления для них, которые будут использоваться на более поздних этапах нашего конвейера.

Текстовое представление: подход, основанный на BERT

Используя наш word_embedding_warehouse, вы можете легко получить и обработать предварительно обученные веса представления на основе BERT для использования в PyTorch или Tensorflow (документация доступна здесь). Коды в нем легко читать, и им должно быть просто следовать.

Чтобы использовать его, получите пакет с github, используя:

git clone https://github.com/shayanfazeli/word_embedding_warehouse.git

Затем перенаправьте в его репозиторий и установите:

python3 setup.py install

Теперь вы можете запустить его и получить данные. Убедитесь, что вы выбрали папку с большим свободным свободным пространством и запустите следующее:

build_word_embedding_warehouse --warehouse_folder=.../path_to_your_folder --clear_cache=0

В нем будут созданы представления. Следует отметить, что обратите внимание на значения «выпадения» в конфигурациях, вам может потребоваться вручную установить их на ноль.

Предварительная обработка, подготовка данных и создание представлений

Наш пакет CoronAI и его приложения могут использоваться для создания представлений. В настоящее время я использовал только большую версию NCBI-Bert (теперь переименованную в BlueBert в здесь) для создания представлений. Эти веса точно настроены в архиве PubMed и публичном репозитории электронных медицинских записей MIMIC-III, поэтому можно предположить, что модель достаточно приспособлена для работы в области медицины.

Эти веса генерируются, как описано в предыдущем разделе. Теперь перейдите к получению пакета CoronAI, используя следующую команду:

git clone https://github.com/shayanfazeli/coronai.git

Затем перейдите к его папке и установите пакет:

python3 setup.py install

Документация к разным разделам репозитория доступна по этой ссылке.

На этом этапе вы можете использовать приложения для генерации представлений и выполнения неконтролируемой кластеризации.

Создание представлений на основе BERT

Вы можете сгенерировать представления на основе BERT, используя следующие команды (для получения дополнительной информации посетите github for coronai).

coronai_segment2vector --gpu=2 \
--input_csv=.../text_segment_dataset.csv \
--output_pkl=.../output.pkl \
--path_to_bert_weights=.../NCBI_BERT_pubmed_mimic_uncased_L-24_H-1024_A-16 \
--batch_size=25

Обратите внимание, что для представлений NCBI_BERT_pubmed_mimic_uncased_L вы можете загрузить их с общего диска CoronAI (ссылка внизу этой статьи).

Неконтролируемое обнаружение группы сегментов

Для этого можно использовать другое приложение CoronAI. Мотивация для этого раздела заключается в том, что текущие задачи, разработанные для этого набора данных, являются общими задачами, такими как «что мы знаем о вакцинации?». Однако, используя этот подход, мы можем лучше понять, что на самом деле включено в этот набор данных. Мы можем начать с небольшого количества кластеров, затем увеличивать их и искать точку старта для выхода на плато.

Группы: Устный перевод

В качестве примера интерпретации групп для случая 296 кластеров было создано облако слов для каждого кластера. Затем я попросил своего друга, практикующего врача, взглянуть на них. Вот представление образца кластера и возможное объяснение:

Более подробный список примеров доступен на этой странице.

Общий диск CoronAI

Просмотрите здесь.

P.S. код и это сообщение будут редактироваться по прошествии времени, так как все они написаны поспешно. Любой вклад также приветствуется. Спасибо.

использованная литература

[1] Гарднер, Мэтт и др. «Allennlp: платформа глубокой семантической обработки естественного языка». Препринт arXiv arXiv: 1803.07640 (2018).

[2] Ли, Джинхёк и др. «BioBERT: предварительно обученная модель представления биомедицинского языка для биомедицинского анализа текста». Биоинформатика 36.4 (2020): 1234–1240.

[3] Пэн, Ифань, Шанкай Янь и Чжиюн Лу. «Трансферное обучение в биомедицинской обработке естественного языка: оценка BERT и ELMo на десяти тестовых наборах данных». Препринт arXiv arXiv: 1906.05474 (2019).

[4] Набор данных открытого исследования COVID-19 и проблема: https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge/kernels (2020).