<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Healthcare NER Models Using Language Model Pretraining</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Amogh Kamat Tarcar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Persistent Systems Limited</string-name>
          <email>aashis_tiwari@persistent.com</email>
          <email>dattaraj_rao@persistent.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>India amogh_tarcar@persistent.com</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Aashis Tiwari Persistent Systems Limited</institution>
          ,
          <addr-line>Pune</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dattaraj Rao Persistent Systems Limited</institution>
          ,
          <addr-line>Goa</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Penjo Rebelo National Institute of Technology</institution>
          ,
          <addr-line>Goa</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Rahul Desai National Institute of Technology</institution>
          ,
          <addr-line>Goa</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Transfer Learning</institution>
          ,
          <addr-line>Named Entity Recognition, Natural Language Processing, Pre-Training, Language Modeling, Electronic Health Records (EHR), Annotations</addr-line>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>Vineet Naique Dhaimodker National Institute of Technology</institution>
          ,
          <addr-line>Goa</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2020</year>
      </pub-date>
      <abstract>
        <p>In this paper, we present our approach to extracting structured information from unstructured Electronic Health Records (EHR) [2] which can be used to, for example, study adverse drug reactions in patients due to chemicals in their products. Our solution uses a combination of Natural Language Processing (NLP) techniques and a web-based annotation tool to optimize the performance of a custom Named Entity Recognition (NER) [1] model trained on a limited amount of EHR training data. This work was presented at the first Health Search and Data Mining Workshop (HSDM 2020) [26]. We showcase a combination of tools and techniques leveraging the recent advancements in NLP aimed at targeting domain shifts by applying transfer learning and language model pre-training techniques [3]. We present a comparison of our technique to the current popular approaches and show the effective increase in performance of the NER model and the reduction in time to annotate data.A key observation of the results presented is that the F1 score of model (0.734) trained with our approach with just 50% of available training data outperforms the F1 score of the blank spaCy model without language model component (0.704) trained with 100% of the available training data. We also demonstrate an annotation tool to minimize domain expert time and the manual effort required to generate such a training dataset. Further, we plan to release the annotated dataset as well as the pre-trained model to the community to further research in medical health records.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>*Corresponding Author
Presented at the first Health Search and Data Mining Workshop (HSDM 2020) in
the 13th ACM International WSDM Conference (WSDM 2020) held in Feb 2020
Houston, Texas, USA
Copyright © 2020 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).</p>
      <p>ACM Reference format:</p>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>Extracting structured information from unstructured text such as
EHRs and medical literature has always been a challenging task.
Recent advancements in machine learning take advantage of the
large text corpora available in scientific literature as well as medical
and pharmaceutical web sites and train systems which can be
leveraged for several NLP tasks ranging from text mining to
question answering. Along with progress in the research space,
there has been significant progress in the libraries and tools
available for industry use.</p>
      <p>The specific problem we focused on was extracting adverse drug
reactions from EHRs using NER. The solution required us to
extract key entities such as prescribed drugs with dosage and the
symptoms and diseases mentioned in the EHRs. The extracted
entities would be processed further downstream to link the entities
and leverage dictionary-based techniques for flagging any
symptoms which could potentially be adverse drug reactions of the
prescribed medicines.</p>
      <p>
        A crucial component in our devised solution employed a custom
NER model for extracting key entities from EHRs. The
state-ofthe-art Named Entity Recognition models built using deep learning
techniques [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] extract entities from text sentences by not only
identifying the keywords or linguistic shape of entities, but also by
leveraging the context of the entity in the sentence. Furthermore,
with language model pre-trained embeddings, the NER models
leverage the proximity of other words which appear along with the
entity in domain specific literature.
One of the key challenges in training NLP based models is the
availability of reasonable-sized, high-quality annotated datasets.
Further, in a typical industrial setting, the relative difficulty in
garnering significant domain expert time, and the lack of tools and
techniques for effective annotation along with the ability to review
such annotations to minimize human errors , affects research and
benchmarking new learning techniques and algorithms.
Additionally, models like NER often need significant amount of
data to generalize well to a vocabulary and language domain. Such
vast amounts of training data are often unavailable or difficult to
manufacture or synthesize.To bridge the gap between academic
developments and industrial requirements, we designed a series of
experiments employing transfer learning from pre-trained models
while working with a comparatively smaller dataset.
      </p>
      <p>
        Transfer learning techniques [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] are largely successful in the image
domain and are advancing steadily in natural language domain with
the availability of pre-trained language embeddings and pre-trained
models.
      </p>
      <p>
        In this paper we present findings of our experiments to solve the
industrial problem of training NER models with limited data using
spaCy [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] , a state-of-the-art industrial strength natural language
processing package, along with the latest techniques in transfer
learning.
      </p>
      <p>The paper is organized as follows. Section 2 describes the
motivation for our experiments followed by Section 3 discusses the
problem and our solution, both in algorithmic and implementation
terms, and evaluates the results produced by our solution. Section
4 discusses the results and Section 5 concludes and suggests
directions for future work.</p>
    </sec>
    <sec id="sec-3">
      <title>2. MOTIVATION</title>
      <p>
        Recent advancements in NLP also known as the ImageNet moment
in NLP [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], have shown significant improvements in many NLP
tasks using transfer learning. Language models like ELMo [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and
BERT [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] have shown the effect of language model pre-training on
downstream NLP tasks. Language models are capable of adjusting
to changes in the textual domain with a process of fine-tuning. Also,
in this self-supervised learning scenario, there is an implicit
annotation in sentences, i.e. predicts the next token (word) given a
sequence of tokens appearing earlier in the sequence. Given all this,
we can adjust to a new domain-specific vocabulary with very little
training time and almost no supervision.
      </p>
      <p>NER aimed at detecting and identifying entity classes in text can
help in extracting structured information and assisting upstream
user experiences. The applicability of NER models are widespread,
ranging from identifying dates and cities in chatbots to open
domain question answering.</p>
      <p>
        Using task-specific annotation tools can minimize the time to
generate high-quality annotated datasets for training models. The
traditional process of annotating data is slow, but fundamental to
most NLP models. It often acts as a hindrance in evaluating and
benchmarking multiple models, as well as in parameter tuning of
models. Many tools such as Doccano [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] exist in the open-source
community that help in solving this problem. We developed an
inhouse tool which we could customize for speeding up the
annotation process.
      </p>
    </sec>
    <sec id="sec-4">
      <title>3. USE CASE DETAILS</title>
      <p>
        Studying adverse reactions due to chemicals in a drug on the patient
is central to drug development in healthcare. Pharmacovigilance
(PV) [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] as described by WHO, is defined as “the science and
activities relating to the detection, assessment, understanding and
prevention of adverse effects or any other drug-related problem.”
Pharmaceutical companies often want to understand the conditions
and pre-conditions under which a drug might have an adverse
reaction on a patient. This would help in research and studies of the
drugs and also reduce or prevent risks of any harm to the patient.
Co-occurrence of disease and chemicals in an EHR of a patient is
useful in studies and research for most pharmaceutical companies.
However, EHRs are unstructured data and additional processing is
required to extract structured information such as named entities of
interest. Such extraction can lead to significant savings of manual
labor and minimizing the time taken to get a new drug to market.
We developed custom healthcare NER models to extract phrases
related to (pharmaceutical) chemicals with dosage, diseases and
symptoms from EHRs. As the entities were specific to the domain
text, an in-house annotated dataset was created using our
custombuilt annotation tool. A number of experiments were designed and
executed for training custom NER models on annotated data from
base models (spaCy[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and scispaCy[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) using transfer learning.
Section 3.1 describes the dataset preparation followed by Section
3.2 which presents an architecture overview. Section 3.3 presents
experiment details and Section 3.4 describes the results obtained.
      </p>
      <sec id="sec-4-1">
        <title>3.1. DATASET PREPARATION</title>
        <p>
          We created a domain-specific corpus by collating publicly
available sample medical notes and drug public assessment reports
from European Medical Agency (EMA )[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and Sample Medical
Transcripts [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>•
•</p>
        <p>A custom annotated dataset was created in-house
specifically for the four entities: Chemical, Disease,
Symptom and Dosage.</p>
        <p>A text corpus containing domain specific vocabulary was
created by utilising text from 2300 sample notes from the
Medical Transcripts Samples site and 100 FAQ sections
from the EMA site.
For annotating data, a custom-built web browser-based tool was
used. Figure 1 displays a screen shot of the annotation tool. As seen
in the figure, the tool works with text files and the user provides
annotations using mouse and keyboard inputs. After marking the
required span of text using the mouse, the user can use keyboard
keys to annotate the selected span. For example , the ‘S’ key on the
keyboard represents the Symptom entity. On providing inputs, the
tool highlights the span with a specific color for each entity, and
also adds an entity name on the screen with a cross mark to make
corrections. The tool also has a recheck functionality to enable the
reviewer to reexamine annotations.</p>
        <p>
          After initial annotations ( Around 100 occurrences of each entity),
we utilized the annotated data to train the spaCy [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] NER model
and leveraged it to identify named entities in new text files to
accelerate the annotation process.
        </p>
        <p>The annotated dataset was randomized and split into 80% for
training and 20% for testing. As the training data for spacy follows
a pattern of sentence and entity tuples there is no overlap between
sentences split into training and test dataset. The training data was
further split into smaller sets ranging from 50% to 100% of the data,
in 10% increments. Table 1 presents the statistics of the annotated
data. It tabulates the counts of annotated sentences as well entity
wise counts.</p>
      </sec>
      <sec id="sec-4-2">
        <title>3.2. ARCHITECTURE OVERVIEW</title>
        <p>
          Figure 2 presents our solution architecture which includes four key
components. The first component comprises of Python scripts to
fetch and collate medical notes text from the Sample Medical
Transcripts [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] site. The second component is the in-house
Annotation tool which is used by domain experts to annotate notes.
The annotation tool is a web application with a Python Flask- [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]
based REST API as the backend. The annotation tool processes
document annotations and outputs annotated data in the format
required to train spaCy models. The third component consists of a
Python module which utilizes the spaCy pre-train feature for
language model pre-training. The fourth component is a Python
module built using spaCy which consumes the annotated data, the
spaCy models and the pre-trained vector to performs model
training, to produce custom NER models.
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>3.3. EXPERIMENTS</title>
        <p>The spaCy library provides a variety of tools for fast text processing
and is developed as a modular pipeline. The library parses text to
create a custom spaCy data structure which is then passed through
orchestrated components of the pipeline for further processing. The
components of the pipeline are highly customizable for efficient
execution of NLP tasks such as text categorization, POS tagging ,
named entity recognition etc. Furthermore, these components can
be individually updated for adapting to specific implementations.
For implementation of our experiments we focused onto two
critical components of the spaCy pipeline namely the components
which are responsible for converting string tokens to vectors and
the named entity recognition component.</p>
        <p>
          The NER component in spacy pipeline is a deep learning model
utilizing Convolutional Neural Network (CNN) and Long Short
Term Memory (LSTM) architectures. The implementation is based
on the transition-based framework described by Lample et al [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
SpaCy provides wrapper APIs to interact with this NER model as
well as to improve it and add custom entities by leveraging
annotated data. The spaCy training API obtains error gradients and
updates the model weights using back-propagation. Using spaCy
train API [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], we can train the deep learning model for NER
component starting from a blank English language class model
which has no learned entities or leverage a model which already
contains a few trained entities. Leveraging the model which has
been trained for recognizing a few overlapping entities is often
beneficial in case of limited amount of training data as compared to
the blank model.
        </p>
        <p>
          The second component which we experimented with was the
component in the pipeline which provides vectors for string tokens.
The token to vector layer of the pipeline (tok2vec) can be
customized to provide custom vectors. There are two prominent
techniques for obtaining word embeddings: the classic techniques
such as Word2vec[
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] and Glove [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] which provides static
embeddings for each word, and the dynamic word embeddings
which are based on the context of the word in the sentence.
Dynamic word embeddings can be obtained from language models
such as ELMo [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] and BERT [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
        <p>
          In order to obtain dynamic embeddings specific to the context of
the text which we need the NER model to run on we need to train a
separate machine learning model. The learning objective of training
task is to work with the non-annotated text corpus by internally
converting it into a supervised learning task by masking words from
sentences and then predicting this word. This training task is
implemented on raw text corpus containing a large number of
domain specific words. The embeddings are then obtained from this
trained model which can be leveraged as token vectors.
spaCy has implemented a deep learning implementation for
obtaining dynamic word embeddings using an approximate
language-modelling objective. The pretrain wrapper API [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]
internally executes the training of this deep learning model given a
large corpus of domain specific text data. The output of pretraining
API is a domain specific dynamic embedding model.
        </p>
        <p>
          We designed three experiments using these two key components of
the spaCy NLP pipeline and trained multiple NER models using the
annotated training data to obtain optimal performance on test data
using the spaCy training module [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Our experimental set up
included working with spaCy version 2.1.4 [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] on an Anaconda
Distribution [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], Python 3.6.8 [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] environment running on a
machine with x86_64 GNU/Linux, Intel Core Processor
(Broadwell) with 16 GB RAM. The experiments can be split into
three main methods.
        </p>
      </sec>
      <sec id="sec-4-4">
        <title>3.3.1. Method 1: Blank spaCy model</title>
        <p>We trained a blank spaCy English language model (this model has
no trained entities) using annotated training data to recognize four
custom entities. We did not provide any custom token to vector
layer and set the API to use default execution of the spaCy NLP
pipeline.</p>
        <p>We started with utilizing only 50% of the available training data
and trained 5 models (for 100 iterations with dropout rate=0.2)
while increasing the training data in increments of 10%. The
performance of the trained models was evaluated on the test data.</p>
      </sec>
      <sec id="sec-4-5">
        <title>3.3.2. Method 2: scispaCy + Transfer Learning + Retraining</title>
        <p>
          We observed that the pre-trained scispaCy model
(en_ner_bc5cdr_md) [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] was trained on BC5CDR [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]corpus for
recognizing two entities (Disease and Chemical) that overlap with
our custom four entities. The BC5CDR corpus consists of 1500
PubMed articles with 4409 annotated chemicals, 5818 diseases and
3116 chemical-disease interactions [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
        <p>As the model was already trained on medical data, we used it as a
base model and applied transfer learning and retrained it using our
in-house annotated data. Similar to the blank models, we trained 5
models (for 100 iterations with dropout rate=0.2) while increasing
the training data from 50% to 100% of the available training data.
The performance of the trained models was evaluated on the
standard test data.</p>
      </sec>
      <sec id="sec-4-6">
        <title>3.3.3. Method 3: scispaCy + Transfer Learning + Pre-training</title>
        <p>
          In order to improve the performance of transfer learning models
further, we employed a newly released spaCy package feature, that
of pre-training. Pre-training allows us to initialize the neural
network layers of spaCy’s CNN layers with a custom vector layer.
This custom vector can be trained by utilizing a domain specific
text corpus using the spaCy library pre-training command [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
The pre-training API spaCy has implemented a deep learning
implementation for obtaining dynamic word embeddings using a
Language Modelling with Approximate Outputs (LMAO)
described in spaCy Language model pretraining [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
We leveraged spaCy pre-training API and trained our custom
dynamic embedding model over our domain specific text corpus.
We collated our domain specific text corpus (which was created by
utilizing text sentences from 2300 sample notes from Sample
Medical Transcripts [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] site and 100 FAQ section texts from EMA
[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] site).We provided scispaCy model (en_ner_bc5cdr_md) [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]
embedding vectors as a seed while training.
        </p>
        <p>We monitored the loss over epoch while training and it was
observed that the loss gradually reduced to minimum around 95
epoch mark after which it plateaued. With our experimental set up
(CPU machine with x86_64 GNU/Linux, Intel Core Processor
(Broadwell), 16 GB RAM), 95 epochs of fine tuning were
completed in 8 hours.</p>
        <p>
          Then we used this domain specific word embedding model for the
vectorization of tokens while performing transfer learning from
scispaCy model (en_ner_bc5cdr_md) [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] using our annotated data.
We trained five models (for 100 iterations with dropout rate=0.2)
similar to the models developed in earlier methods. With our
experimental set up (CPU machine with x86_64 GNU/Linux, Intel
Core Processor (Broadwell), 16 GB RAM), 100 iterations of
training required for each model were completed in 48 mins.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>3.4. RESULTS</title>
      <p>Table 2 captures the observed overall NER model performance on
test data for the conducted experiments.</p>
      <p>
        1
0.8
0.6
0.4
0.2
0
For each trained model overall NER evaluation metrics were
recorded which includes Precision, Recall and F1 Score [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
Figure 3 presents bar chart representation of the observed overall
F1 scores as mentioned in Table 2, across the three methods named
as Blank , Retrained scispaCy and Retrained scispaCy with
pretraining while progressively increasing training data.
      </p>
      <p>As observed in Figure 3, there is generally a steady increase in F1
score with an increase in available training data. The gain between
blank model and scispaCy derived models is prominent along with
a steady gain visible between the two scispaCy derived models.</p>
    </sec>
    <sec id="sec-6">
      <title>4. DISCUSSION</title>
      <p>As observed in the results, with progressive increase in availability
of training data, the performance of the models on test data steadily
increases. A clear gain is observed between the blank model and
the model based on scispaCy pre-trained model. This gain can be
attributed to the overlap of entities between the custom model and
the scispaCy model. Furthermore, performance gains are observed
when using a pre-training vector customized to the domain
vocabulary used in the medical reports.</p>
      <p>
        A key observation of the results presented is that the F1 score of
the scispaCy + pre-trained model trained with just 50% of available
training data (0.734, as observed in Table 2 in Section 3.4)
outperforms the F1 score of the blank spaCy model trained with
100% of the available training data (0.704, as observed in Table 2
in Section3.4)
The final performance of custom NER model was evaluated on the
test data set. The overall F1 score of our recommended NER model
which was derived from scispaCy (en_ner_bc5cdr_md) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] using
Method 3 with custom pre-trained vector was 0.785 as observed in
Table 2 in Section 3.4.
      </p>
    </sec>
    <sec id="sec-7">
      <title>5. CONCLUSION</title>
      <p>Our experiments present empirical results which corroborate the
hypothesis that transfer learning delivers clear benefits while
working with even a limited amount of training data. A key
observation of the results presented is that the F1 score of a model
trained with our approach with just 50% of available training data
(0.734) outperforms the F1 score of the blank spaCy model (0.704)
trained with 100% of the available training data. Clearly,
leveraging pre-trained models with partial overlap with the entities
provides significant benefits.</p>
      <p>In future work, we plan to increase the number of entities and
experiment with how the number of entities affect performance of
the trained models. We also plan to release our pre-trained model
with pharmacology domain entities that can be used for multiple
applications.</p>
      <p>Our approach to the problem using a custom annotation tool and
pre-training techniques can be utilized and extended to multiple
NLP problems, such as Machine Comprehension, FAQ-based
Question-Answering, Text Summarization etc. The techniques are
application domain-agnostic and can be applied to any industrial
vertical such as but not limited to: Banking, Insurance, Pharma,
Healthcare etc., where domain expertise is required.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Named</given-names>
            <surname>Entity</surname>
          </string-name>
          Recognition: https://en.wikipedia.org/wiki/Named-entity_recognition.
          <source>Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Electronic</given-names>
            <surname>Health</surname>
          </string-name>
          Records: https://en.wikipedia.org/wiki/Electronic_health_record
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Sebastian</given-names>
            <surname>Ruder; NLP ImageNet Moment</surname>
          </string-name>
          : http://ruder.io/nlpimagenet/ Accessed on 08/19
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Matthew</given-names>
            <surname>Peters</surname>
          </string-name>
          et al.
          <year>2018</year>
          .
          <article-title>Deep contextualized word representations</article-title>
          .
          <source>In Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistic</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Jacob</given-names>
            <surname>Devlin</surname>
          </string-name>
          et al. BERT:
          <article-title>Pre-training of Deep Bidirectional Transformers for Language Understanding</article-title>
          .
          <source>In Proceedings of the 2019 Annual Conference of the North American Chapter of the Association for Computational Linguistics</source>
          , NAACLHLT '
          <fpage>19</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Doccano</surname>
          </string-name>
          :
          <article-title>Open Source text annotation for machine learning practitioner</article-title>
          : https://github.com/chakki-works
          <source>/doccano ; Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7] spaCy https://spacy.io
          <source>Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Mark</given-names>
            <surname>Neumann</surname>
          </string-name>
          et al.
          <year>2019</year>
          .
          <article-title>Scispacy: Fast and robust models for biomedical natural language processing</article-title>
          .
          <source>In Proceedings of the 18th BioNLP Workshop</source>
          and Shared Task,
          <string-name>
            <surname>BioNLP@ACL</surname>
          </string-name>
          <year>2019</year>
          .
          <article-title>scispaCy (en_ner_bc5cdr_md) version 0</article-title>
          .2.
          <fpage>0</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9] EMA - https://clinicaldata.ema.europa.eu/web/cdp/home
          <source>Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Medical</given-names>
            <surname>Transcripts</surname>
          </string-name>
          Samples - http://www.medicaltranscriptionsamples.
          <source>com/ Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]BC5CDR Corpus http://www.biocreative.org/tasks/biocreative-v/track-3
          <source>-cdr/ Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Matthew</given-names>
            <surname>Hannibal; Language Model</surname>
          </string-name>
          Pre-training in spaCy. https://spacy.io/usage/v2-1
          <source>#pretraining Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Jing</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Aixin</given-names>
            <surname>Sun</surname>
          </string-name>
          , Jianglei Han,
          <string-name>
            <surname>Chenliang</surname>
          </string-name>
          <article-title>Li 2018 A Survey on Deep Learning for Named Entity Recognition</article-title>
          ,CoRR ,abs/
          <year>1812</year>
          .09449
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Flask</surname>
          </string-name>
          ,
          <article-title>The Python micro framework for building web applications https://palletsprojects</article-title>
          .com/p/flask/ Accessed on 08/19
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <article-title>Training spaCy's Statistical Models https://spacy</article-title>
          .io/usage/training
          <source>Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]Anaconda Distribution https://www.anaconda.
          <source>com/distribution/ Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <source>[17] Anaconda Python 3.6</source>
          .8 https://anaconda.org/anaconda/python/files?
          <source>version=3.6.8 Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <source>[18]SpaCy version 2.1</source>
          .4 https://pypi.org/project/spacy/ Accessed on 08/19
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <article-title>Machine learning performance evaluation F1 score https://en</article-title>
          .wikipedia.org/wiki/F1_score ,
          <source>Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]National Center for Biotechnology Information https://www.ncbi.nlm.nih.gov/research/bionlp/Data/ ,
          <source>Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Guillaume</surname>
            <given-names>Lample</given-names>
          </string-name>
          , Miguel Ballesteros, Sandeep Subramanian, Kazuya Kawakami,
          <source>Chris Dyeret</source>
          <year>2016</year>
          .
          <article-title>Neural architectures for named entity recognition</article-title>
          .
          <source>In HLT-NAACL.</source>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Tomas</surname>
            <given-names>Mikolov</given-names>
          </string-name>
          , Ilya Sutskever, Kai Chen, Greg S. Corrado,
          <source>Jeff Dean</source>
          <year>2013</year>
          .
          <article-title>Distributed Representations of Words and Phrases and their Compositionality</article-title>
          <source>In Advances in Neural Information Processing Systems 26</source>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Jeffrey</surname>
            <given-names>Pennington</given-names>
          </string-name>
          , Richard Socher,
          <source>Christopher Manning 2014 Glove: Global Vectors for Word Representation in Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP)</source>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Liunian</given-names>
            <surname>Harold</surname>
          </string-name>
          <string-name>
            <given-names>Li</given-names>
            ,
            <surname>Patrick H. Chen</surname>
          </string-name>
          ,
          <string-name>
            <surname>Cho-Jui</surname>
            <given-names>Hsie</given-names>
          </string-name>
          ,
          <source>Kai-Wei Chang 2019. Efficient Contextual Representation Learning Without Softmax Layer</source>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Matthew</given-names>
            <surname>Honnibal</surname>
          </string-name>
          and
          <article-title>Ines Montani in Language model pretraining</article-title>
          <source>Accessed on 08/19</source>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Carsten</surname>
            <given-names>Eickhoff</given-names>
          </string-name>
          ,
          <article-title>Yubin Kim and Ryen White in Overview of the Health Search and Data Mining (HSDM</article-title>
          <year>2020</year>
          )
          <article-title>Workshop</article-title>
          .
          <source>In Proceedings of the Thirteenth ACM International Conference on Web Search and Data Mining</source>
          ,
          <string-name>
            <surname>WSDM</surname>
          </string-name>
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>