<!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>Models to Extract Named Entities from Archival Finding Aids</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Luis Filipe Cunha</string-name>
          <email>filipe-cunha1@hotmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>José Carlos Ramalho</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Named Entity Recognition, BERT, Web, Corpora Annotation</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Informatics, University of Minho</institution>
          ,
          <country country="PT">Portugal</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <abstract>
        <p>In recent works, several NER models were developed to extract named entities from Portuguese Archival Finding Aids. In this paper, we are complementing the work already done by presenting a diferent NER model with a new architecture, Bidirectional Encoding Representation from Transformers (BERT). In order to do so, we used a BERT model that was pre-trained in Portuguese vocabulary and fine-tuned it to our concrete classification problem, NER. In the end, we compared the results obtained with previous architectures. In addition to this model we also developed an annotation tool that uses ML models to speed up the corpora annotation process.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        In recent works, mechanisms were created to extract and identify named entities in Portuguese
archival documents. In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], several NER models were created using diferent ML algorithms
and architectures in order to study the behavior of these models in the archival domain. Finally,
presented in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], which has been updated with new NLP resources and new NER models.
      </p>
      <p>In this paper, we intend to continue the study already done through the research and testing
of new ML architectures, namely BERT models that use the transformers architecture. This
approach presents a self-learning technique that can eficiently use the GPUs’ parallel
computational power to pre-train models with hundreds of million parameters, making them have a
broader and richer understanding of the language used.</p>
      <p>During previous research, we identified another problem in creating Portuguese NER models,
i.e., the lack of annotated Portuguese data to train ML models. In fact, generating annotated
corpora can become challenging and time-consuming. Thus we created a smart annotator tool
that uses our ML models to assist the experimenter in the annotation process.
an API was developed and documented, allowing the public to use all the NER models as a
service, enabling their integration into other systems.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        In recent years we witnessed an increase in performance of several NLP tasks due to the new
research in ML applied to text processing. In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] Embeddings from Language Models (ELMo)
were introduced, presenting a feature-based approach that generates deep contextualized word
vectors where the words’ representations were functions of all the internal layers of the model.
By taking into account not only the word’s syntax and semantics but also their context meaning,
the same token would have diferent representations when used in diferent contexts.
      </p>
      <p>
        Then, in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the authors presented ULMFiT, where they pre-trained a model with a huge
dataset containing more than 100 million words [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. By fine-tuning this pre-trained model, it
was reused for diferent NLP tasks enabling generalization with only 100 labeled examples.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] they created a new architecture, Transformers, with the self-attention mechanism
that drastically increased the eficiency of text processing, allowing to create bigger and richer
models with higher knowledge of the language vocabulary.
      </p>
      <p>
        Shortly after that, new models were developed that used the transformers architecture and
achieved SOTA results in several NLP tasks, both on sentence and token level, such as BERT [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
and GPT [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
NER@DI is a web platform created to provide various natural language processing tools
associated with Named Entity Recognition. This platform was born as a result of a research [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] about
the processing of Portuguese archival documents, where several NER models were generated
using diferent ML algorithms and architectures. However, several limitations of this NLP field
in Portuguese were identified during this work. So in order to promote research in this area, the
NER@DI platform makes the created resources in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] available to the public, such as Portuguese
archival annotated corpora, tools to support the annotation of new corpora, and, of course, the
generated ML models.
      </p>
      <sec id="sec-2-1">
        <title>3.1. Architecture</title>
        <p>This platform was created with the intent of being complemented with new features in the
future. Thus, a micro-service architecture was used, promoting looser coupling, more flexibility,
and portability.</p>
        <p>At the moment, it has two containers that correspond to the Data API and the API Gateway.</p>
        <p>The API Gateway is implemented with an Nginx web server containing the client application,
developed in Vue.js, a framework that uses reactive interfaces. The use of an API Gateway
pattern makes the client less coupled to the micro-services, i. e., it does not need to know the
internal structure of the server to communicate with the application. The use of this pattern
means that there are no direct references between the client and the microservices, so the
refactoring and maintenance of these will have a lower impact to the client. On the other hand,
if a gateway server was not used, all microservices would be exposed to the public, which could
lead to security issues. Then, Vue.js was used to create the client application. It has a small
learning curve, so it is fairly approachable, allowing the creation of maintainable interfaces
due to its reusable components mechanism that allows isolating all logic from the views. To
complement this framework, Vuetify was used, which consists of a UI library that provides
several pre-made reactive components.</p>
        <p>
          The second container is the Data API, which is responsible for receiving, processing and
responding to HTTP requests, in this case, associated with the extraction of entities. For
this, a Node.js server was used, complemented by [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] library, which works like a broker that is
responsible for managing the API routes and delegating the NER processing to the corresponding
tools. The Machine Learning models were implemented with OpenNLP, spaCy, Tensorflow and
BERT so, to process NER requests, the Node.js server uses the child_process [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] library, creating
new processes to execute programs in python and java. When the execution of the programs
ifnishes, the created processes return the output to the Node.js server, which is responsible for
returning the response to the client in JSON format.
        </p>
        <p>
          Finally, in order to deploy this platform, each micro-service was wrapped with a docker
container. These containers promote the isolation, scalability, agility and portability of each
micro-service since it is really easy to install a containerized application in any system that has
docker running. At the moment, NER@DI is hosted on the servers of the University of Minho’s
Informatics Department, at [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>3.2. Features</title>
        <p>
          During the development of the NER models, several support tools were generated. Some of
these tools were selected and implemented in NER@DI in order to make them available to the
public. Most of NER@DI features are described in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], thus, this paper only present the newly
added ones:
• Addition of a new model (BERT) trained on Portuguese Archival Finding Aids that allows
to perform NER.
• Creation of a documented API that allows NER@DI users to use the NER models as a
service in other applications.
• Implementation of a smart annotator that uses ML models to assist the experimenter with
the corpora annotating process.
        </p>
        <p>NER@DI can be used by various types of users, for example, historians wishing to extract
relevant entities from archival documents or even other developers or researchers with the
intent of reusing the annotated datasets in other contexts, or using NER@DI as a service in
their own applications.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>4. Models</title>
      <p>In order to identify and extract entities from natural text, NER@DI uses several ML architectures,
such as Maximum Entropy, Convolution Neural Networks (CNN), Bidirectional Long Short-Term
Memory with a Conditional Random Field decoder (Bi-LSTM-CRF) and was recently updated
with a new model, Bidirectional Encoder Representations from Transformers (BERT).</p>
      <p>
        In NER@DI previous versions, we used NER approaches that consisted of training models
from scratch. Now we present a BERT model, which consists of using pre-trained models
with hundreds of thousands of parameters and leveraging the knowledge acquired during their
pre-train by fine-tuning them on a specific task, in our case, NER. In this paper we will present
the BERT model in more detail. The other models were described in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <sec id="sec-3-1">
        <title>4.1. Bidirectional Encoder Representations from Transformers</title>
        <p>By training models from scratch, we randomly initialize the models’ weights, which means that
the model only learns from the training data. However, what if, instead of creating completely
new models, we re-utilize pre-trained models and fine-tune them to our concrete classification
task? By doing so we could leverage the knowledge that the model obtained during its
pretrain, in a huge amounts of textual data, towards our goal. In practice, we would be using the
pre-trained model weights, which would provide the model with a statistical understanding of
the language vocabulary, and then fine-tune the model with a task-specific classifier. That’s
what BERT models do.</p>
        <p>
          Bidirectional Encoder Representations from Transformers (BERT) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] is a transformer based
model focused on the encoder architecture. Since these models are pre-trained with many
data, they have large dimensions, reaching billions of parameters, which makes their training
process, resource and time expensive. This process requires a large number of GPUs, and can
take several days or even weeks consuming high amounts of energy.
        </p>
        <p>
          In this paper we intended to process Portuguese text so we used BERT models pretrained in
Portuguese corpora. First we have BERTimbau [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]with two variants associated with the model
size, ” b e r t - b a s e - p o r t u g u e s e - c a s e d ” and b e r t - l a r g e - p o r t u g u e s e - c a s e d ” models, with 110M and
330M parameters respectively [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. These models were trained in a Brazilian Portuguese
corpus composed of 2.7 billion [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] tokens. Secondly, there is a multilingual model,
bert-basemultilingual-cased [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] with 110M parameters, trained on the largest Wikipedia texts, making
this model capable of processing texts in 104 diferent languages, Portuguese included.
        </p>
        <p>Out of curiosity, at the moment, the largest existing model was created by the cooperation
between Microsoft and Nvidia, published in October 2021, Megatron-Turing Natural Language
set of 15 datasets consisting of a total of 339 billion tokens.</p>
        <p>
          It is important to note that, by transferring all the pre-trained information to our model,
we are increasing its language knowledge, however, all the errors, noise or even bias are also
transferred. [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] states that the pre-trained models can be biased to their training data. In this
paper, they analysed the GPT-3 model’s biases towards gender, race, and religion, however, they
state that the model may express other categories of bias. In practice, regarding the religion bias,
this behaviour made the model associate words such as ” I s l a m ” with ” t e r r o r i s m ” . As for genre
bias, the ” f e m a l e ” word was usually associated with tokens such as ” n a u g h t y ” or ” b e a u t i f u l ”
while the ” m a l e ” word is associated with the tokens ” l a r g e ” , and ” l a z y ” .
4.1.1. Sub-word Tokenizer
For an ML statistical model to be able to interpret natural text, it is necessary to transform
the text into numerical representations capable of transmitting the meaning of that text to the
machine. These representations are the starting point for the ML models, so the higher the
amount of information contained in them, the better their interpretation will be, conditioning
the performance of the entire ML process. One technique for creating these representations is
tokenization.
        </p>
        <p>In NLP, this technique has been studied and widely used in several areas of token processing,
such as NER. In this case, word-based tokenizers are usually used, i.e., defining a fixed size
for the vocabulary and then associating an id for the 
most frequent words of that vocabulary.</p>
        <p>This method has shown good results in several contexts, however, it has several limitations.
Due to the fact that the number of words is limited, ML models have dificulties dealing with
out of vocabulary words or even words that are rarely used. One solution for this problem is
to increase the number of vocabulary words ( ), however, this would lead to other problems
such as making the computational model heavier and increasing the number of rare words. On
the other hand, as each distinct word has a diferent id, similar words have entirely diferent
meanings, which causes information about the words’ relationship to be lost during this phase,

decreasing the performance of the models.</p>
        <p>Thus, in order to solve these limitations and increase the meaning of the numerical
representations, models like BERT use a diferent technique, sub-word tokenization. This method aims to
decompose rare words into sub-words, keeping the most frequent words intact. In fact, observing
a given vocabulary, words like ” t o k e n i z a t i o n ” can be decomposed into two sub-words ” t o k e n ”
and ” i z a t i o n ” . Using a word-based tokenizer, the words ” t o k e n ” and ” t o k e n i z a t i o n ” would
have representations with entirely diferent meanings, however, with a sub-word tokenizer, by
splitting the word ” t o k e n i z a t i o n ” into two sub-words, the model can learn that this word is
composed of sub-words that it already knows. In this case, the model associates the word
tokenization to the most frequent word ” t o k e n ” thus answering the problem of out-of-vocabulary
words and maintaining a vocabulary with a reasonable size [17].</p>
        <p>Models that use this method have increased their accuracy, mainly in the classification of
unknown words [18].</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5. Annotated Data</title>
      <p>
        For the model fine-tuning, we need annotated that so the model learns how to correctly classify
the intended named entities. In this work, we used archival finding aids datasets which we had
already annotated in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Through various annotation methods, such as the use of regex, ML
statistical models, or even manual annotation, nine datasets from three Portuguese archives were
annotated, six from the Arquivo Distrital de Braga, two from the Arquivo Regional e Biblioteca
Pública da Madeira and one from the A r q u i v o N a c i o n a l d a T o r r e d o T o m b o .
      </p>
      <p>In total, the annotated corpora contain 235875 tokens that make up 7397 phrases. As for
entities, we annotated more than 36 thousand of entities in total. All the annotated corpora can
be downloaded in the NER@DI platform.</p>
    </sec>
    <sec id="sec-5">
      <title>6. Data processing</title>
      <p>After selecting our models’, we started the data loading and transformation process. First,
we loaded the training and validation data into memory and then, we started to tokenization
process, mapping all the tokens into their corresponding ids in the pre-trained vocabulary. The
training samples must comply with the pre-trained vocabulary, having the same format and
structure, which means that the tokenizer used for the pre-training must be the same for the
ifne-tuning. Transformer-based models usually use sub-word tokenizers, meaning that the
rarest words of the vocabulary are usually split into sub-words.</p>
      <p>Listing 1: Text sequence encoding.
# O r i g i n a l
[ ’ P e l o ’ , ’ q u a l ’ , ’ foram ’ , ’ i d e n t i f i c a d o s ’ , ’ os ’ , ’ b a c h a r e i s ’ , ’ que ’ , ’ s e r i a m
’ , ’ d e s e m b a r g a d o r e s ’ , ’ da ’ , ’ R e l a ç ã o ’ , ’ e ’ , ’ Casa ’ , ’ do ’ , ’ P o r t o ’ , ’ . ’ ]
# T o k e n i z e d
[ ’ [ CLS ] ’ , ’ P e l o ’ , ’ q u a l ’ , ’ foram ’ , ’ i d e n t i f i c a d o s ’ , ’ os ’ , ’ ba ’ , ’ # # c h a r ’ , ’ # #
e i ’ , ’ # # s ’ , ’ que ’ , ’ s e r i a m ’ , ’ desembar ’ , ’ # # g a d o r e s ’ , ’ da ’ , ’ R e l a ’ , ’ # # ção
’ , ’ e ’ , ’ Casa ’ , ’ do ’ , ’ P o r t o ’ , ’ . ’ , ’ [ SEP ] ’ ]</p>
      <p>Even if the training data is already tokenized in IOB format, we have to tokenize it again
to create the correct correspondence between the training data and the pre-train vocabulary
id. In Listing 1 the tokens ”bachareis” and ”desembargadores” were divided into smaller
subtokens. Consequently, since we changed the sequence vectors lengths by splitting tokens into
sub-tokens, we also have to remap the labels’ vectors to ensure that each token is associated
with its correct label. After that, we had to pad and truncate all the sequences according to the
pre-trained maximum length parameters.</p>
    </sec>
    <sec id="sec-6">
      <title>7. Fine-tuning</title>
      <p>With the data processed, we started fine-tuning the model for the archival context. In order
to do so, we used the Hugging Face library [19] that allows us to fine-tune several state-of-art
NLP models with Keras and Pytorch API.</p>
      <p>The fine-tuning process removes the pre-trained model head (last layer) focused on the
masked language objective and replaces it with a new randomly initialized head. The idea is to
create a new classifier specialized in recognizing entities from archival data, with  outputs,
where  is equal to the number of labels.</p>
      <p>To fine-tune the model, we only used NVIDIA GEFORCE GTX 1070 Ti GPU. Because of
this, we had to adjust the batch size for the bigger models to avoid out-of-memory errors. The
ifne-tuning of each model lasted from 30 minutes to 2 hours. During this process, we logged
the training and evaluation loss in order to generate the model’s learning curves.</p>
      <p>In Figure 2 we can see the loss values per epoch of the three generated models,
bert-largeportuguese, bert-base-portuguese and bert-multilingual. In fact, the models start to overfit
between 2 and 4 epochs. In order to retrieve the models with the highest capacity of
generalisation, the Huggingface library keeps several model checkpoints during the training phase and
selects the best one at the end. Only the best checkpoint will be used for the actual Named
Entity Recognition.</p>
      <p>bert-large-portuguese
bert-base-portuguese
train loss
eval loss</p>
    </sec>
    <sec id="sec-7">
      <title>8. Validation Results</title>
      <p>In order to fine-tune and validate our NER models we divided the anottated data into two
splits, 70% of the data was used for fine-tunning and 30% for validation. The validation results
can be seen in the Table 1. Analyzing this Table we can say that the model which obtained
the best results was BERT-large achieving an F1-score of 94.53%, followed by BERT-base with
93.19%, and BERT-multilingual with 92.29% F1-score. Despite this, we can say that all the
models achieved similar results even thought they were pre-trained in diferent corpora and
have diferent dimensions.</p>
      <p>0
5</p>
      <p>10
bert-multilingual
15
0
5 10</p>
      <p>All Models
large train
base train
mLingual train
15</p>
      <p>20
large eval
base-eval
mLingual eval
0
5
10
15
5
10
15
20</p>
      <p>
        In Figure 3 we have the models’ F1-score results per entity type. Here we can analyze and
compare the disparity between the entity labels recognition results per model (we also added
results from the models trained in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]). In general, the models demonstrated more dificulty in
recognizing Profession and Organization entity types achieving an F1-score between 70% and
80% in those labels. As for the other labels we were able to achieve an F1-score between 90%
and 100%.
      </p>
      <p>Then, in Table 2 we validated all the models with a dataset that was not used for training in
order to test the models’ generalization.</p>
      <p>The BERT models were able to achieve better results in this test. We can analyze the
importance of the model’s pre-train. In fact the BERT models were pre-trained with high amount
of Portuguese textual data, giving them the advantage when processing out of vocabulary words
and unseen documents.</p>
    </sec>
    <sec id="sec-8">
      <title>9. ARCANO - Smart Annotator</title>
      <p>
        The key to obtaining good results in this subfield is the training data quality. The closer the
training data is to the data in which this technology is intended to be used, the better the results
will be. Good training material is not always available, which creates the need to annotate text.
Normally, this activity is performed manually by an experimenter who is knowledgeable about
the domain of the documents. However, this task can become time-consuming and tedious
despite its low complexity. Thus, the idea of developing an intelligent tool to support text
annotation, ARCANO [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], was born.
      </p>
      <p>This annotator aims to intelligently assist the entire annotation process using ML models
to try to predict named entities of the texts we want to annotate. The idea is to use a generic
model to find entities in a small fraction of the target dataset. Then, by correcting the entities
found, we teach the model how to classify entities in our specific domain, iteratively.</p>
      <p>The sequence diagram in Appendix A illustrates ARCANO’s annotation workflow. Initially,
the experimenter imports the entire target dataset for it to be annotated. Then, this dataset is
divided into  batches that will be used to train the ML model. Firstly, the first batch is sent to
the server to identify and classify the entities it can find. Then, the result is sent to the client
to be corrected by the experimenter. Now that we have validated training data, we can use it
to refine the ML model. Thus, the correctly annotated data is sent to the server to train the
model as well as the second batch so that the trained model can extract new entities from it.
The more annotated batches, the higher the amount of training data, making the model learn
how to classify entities even better. This makes the experimenter annotate fewer and fewer
entities manually. The greater the autonomy degree of the model, the lesser the work of the
experimenter. Finally, ARCANO joins all the previously annotated data into a file, enabling to
export the fully annotated dataset.</p>
      <p>This tool was used to annotate a corpus from the Arquivo Nacional da Torre do Tombo, the
Arquivo de Oliveira Salazar ’s archival finding aids. In total, 71397 tokens were annotated, making
more than 7000 diferent entities. In the end, the annotation process was considerably easier
and faster due to the intelligent entity recognition system.
10. Conclusion and Future Work
In previous works we obtained high F1-score results in NER using other ML algorithms, however,
the BERT model presented a great advance in the generalization. Using the knowledge obtained
during its pre-training, BERT models were able to achieve higher F1-score results in a corpus
that was not present in their training data (compared to previous architectures). Furthermore,
we also concluded that annotating corpora with the developed annotator was much faster than
doing it manually.</p>
      <p>For future work, it would be interesting to work on the extracted entities, for example creating
disambiguation mechanisms, allowing to relate entities between diferent documents.
Language models are few-shot learners, volume 2020-December, 2020.
[17] HuggingFace, Summary of the tokenizers, 2021. URL: https://huggingface.co/transformers/
tokenizer_summary.html, accessed in 23/08/2021.
[18] R. Sennrich, B. Haddow, A. Birch, Neural machine translation of rare words with subword
units, volume 3, 2016. doi:1 0 . 1 8 6 5 3 / v 1 / p 1 6 - 1 1 6 2 .
[19] T. Wolf, L. Debut, V. Sanh, J. Chaumond, C. Delangue, A. Moi, P. Cistac, T. Rault, R. Louf,
M. Funtowicz, J. Davison, S. Shleifer, P. von Platen, C. Ma, Y. Jernite, J. Plu, C. Xu, T. Le Scao,
S. Gugger, M. Drame, Q. Lhoest, A. Rush, Transformers: State-of-the-art natural language
processing, in: Proceedings of the 2020 Conference on Empirical Methods in Natural
Language Processing: System Demonstrations, Association for Computational Linguistics,
Online, 2020, pp. 38–45. URL: https://aclanthology.org/2020.emnlp-demos.6. doi:1 0 . 1 8 6 5 3 /
v 1 / 2 0 2 0 . e m n l p - d e m o s . 6 .</p>
    </sec>
    <sec id="sec-9">
      <title>A. ARCANO Sequence Diagram.</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>L. F. d. C.</given-names>
            <surname>Cunha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Ramalho</surname>
          </string-name>
          ,
          <article-title>Ner in archival finding aids: Extended, Machine Learning</article-title>
          and
          <source>Knowledge Extraction</source>
          <volume>4</volume>
          (
          <year>2022</year>
          )
          <fpage>42</fpage>
          -
          <lpage>65</lpage>
          . URL: https://www.mdpi.
          <source>com/2504-4990/4/1/3. doi:1 0 . 3 3 9 0 / m a k e 4 0</source>
          <volume>1 0 0 0 3 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L. F.</given-names>
            <surname>Cunha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Ramalho</surname>
          </string-name>
          ,
          <article-title>Towards entity linking, ner in archival finding aids</article-title>
          , in: C. T. Lopes,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Niccolucci</surname>
          </string-name>
          , I. Rodrigues, N. Freire (Eds.),
          <source>Proceedings of Linked Archives International Workshop 2021 co-located with 25th International Conference on Theory and Practice of Digital Libraries (TPDL</source>
          <year>2021</year>
          ),
          <year>2021</year>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>29</lpage>
          . URL: http: //ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3019</volume>
          /LinkedArchives_2021_paper_12.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M. E.</given-names>
            <surname>Peters</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Neumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Iyyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gardner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Zettlemoyer</surname>
          </string-name>
          ,
          <article-title>Deep contextualized word representations</article-title>
          , volume
          <volume>1</volume>
          ,
          <year>2018</year>
          .
          <article-title>doi:1 0 . 1 8 6 5 3 / v 1 / n 1 8 - 1 2 0 2</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Howard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ruder</surname>
          </string-name>
          ,
          <article-title>Universal language model fine-tuning for text classification</article-title>
          , volume
          <volume>1</volume>
          ,
          <year>2018</year>
          .
          <source>doi:1 0 . 1 8</source>
          <volume>6 5 3</volume>
          / v 1 / p 1
          <fpage>8</fpage>
          -
          <lpage>1</lpage>
          0
          <fpage>3</fpage>
          1 .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Merity</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Xiong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bradbury</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Socher</surname>
          </string-name>
          , Pointer sentinel mixture models,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Vaswani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Shazeer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Parmar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Uszkoreit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Jones</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. N.</given-names>
            <surname>Gomez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Łukasz</given-names>
            <surname>Kaiser</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Polosukhin</surname>
          </string-name>
          ,
          <article-title>Attention is all you need</article-title>
          , volume
          <volume>2017</volume>
          <source>-December</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Devlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. W.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Toutanova</surname>
          </string-name>
          , Bert:
          <article-title>Pre-training of deep bidirectional transformers for language understanding</article-title>
          , volume
          <volume>1</volume>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Radford</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Narasimhan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Salimans</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Sutskever</surname>
          </string-name>
          ,
          <article-title>Improving language understanding with unsupervised learning (</article-title>
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>[9] Express.js, Express - node.js web application framework</article-title>
          , n.d. URL: https://expressjs.com/, accessed in 10-04-
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Node</surname>
          </string-name>
          .js,
          <source>Node.js v16.4</source>
          .0 documentation, n.d. URL: https://nodejs.org/api/ child_process.html, accessed in 17-03-
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>L. F.</given-names>
            <surname>Cunha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Ramalho</surname>
          </string-name>
          , Ner@di,
          <year>2021</year>
          . URL: http://ner.epl.di.uminho.pt/, accessed in 09-10-
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F.</given-names>
            <surname>Souza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nogueira</surname>
          </string-name>
          , R. Lotufo,
          <article-title>BERTimbau: pretrained BERT models for Brazilian Portuguese</article-title>
          ,
          <source>in: 9th Brazilian Conference on Intelligent Systems, BRACIS, Rio Grande do Sul, Brazil, October</source>
          <volume>20</volume>
          -23 (to appear),
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J. A. W.</given-names>
            <surname>Filho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Wilkens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Idiart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Villavicencio</surname>
          </string-name>
          ,
          <article-title>The brwac corpus: A new open resource for brazilian portuguese</article-title>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Devlin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Toutanova</surname>
          </string-name>
          ,
          <article-title>BERT: pre-training of deep bidirectional transformers for language understanding</article-title>
          , CoRR abs/
          <year>1810</year>
          .04805 (
          <year>2018</year>
          ). URL: http: //arxiv.org/abs/
          <year>1810</year>
          .04805.
          <article-title>a r X i v : 1 8 1 0 . 0 4 8 0 5</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Alvi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kharya</surname>
          </string-name>
          ,
          <article-title>Using deepspeed and megatron to train megatron-turing nlg 530b, the world's largest and most powerful generative language model</article-title>
          ,
          <year>2021</year>
          . URL: https://www.microsoft.com/en-us/research/blog/using
          <article-title>-deepspeed-and-megatron-to-trainmegatron-turing-nlg-530b-the-worlds-largest-and-most-powerful-generative-languagemodel/</article-title>
          , accessed in 15/10/
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>T. B. Brown</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Mann</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Ryder</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Subbiah</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Kaplan</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Dhariwal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Neelakantan</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Shyam</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Sastry</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Askell</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Agarwal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Herbert-Voss</surname>
            , G. Krueger,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Henighan</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Child</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Ramesh</surname>
            ,
            <given-names>D. M.</given-names>
          </string-name>
          <string-name>
            <surname>Ziegler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Winter</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Hesse</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Chen</surname>
            , E. Sigler,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Litwin</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Chess</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Clark</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Berner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>McCandlish</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Radford</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Sutskever</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Amodei</surname>
          </string-name>
          ,
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>