<!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>HateDetectors at HASOC 2020: Hate Speech Detection using Classical Machine learning and Transfer learning based approaches</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Varsha Reddy</string-name>
          <email>varsha.redla@students.iiit.ac.in</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Surendra Telidevara</string-name>
          <email>surendra.telidevara@students.iiit.ac.in</email>
        </contrib>
      </contrib-group>
      <abstract>
        <p>In this paper, we describe our models submitted to the HASOC shared task conducted as part of FIRE 2020. We have presented two directions to approach the problem of hate speech detection which are based on the advancements in the field of natural language processing. We present classical machine learning approaches using Support Vector Machine (SVM) and transfer learning approaches at sentence level using BERT. We have shown through experimental results that Transfer learning based approaches beat Machine learning based approaches in identifying the nuances of hate speech in a sentence. We have performed experiments on the English and Hindi datasets. On the public test dataset provided, we obtain a macro F1 score of 0.90 and 0.67 on English and Hindi languages respectively for subtask A and scores of 0.54 and 0.44 for subtask B. We also observe a diference of around 0.05 macro F1 score between BERT based models and SVM based models on English public test data, while we see only a diference of 0.01 on Hindi public test data in subtask A. We have highlighted the importance of a monolingual model over a multi lingual BERT based model for hate speech detection. We also highlight the importance of having a large, balanced training dataset on model performance for hate speech detection.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Hate Speech Detection</kwd>
        <kwd>Transfer Learning</kwd>
        <kwd>Machine Learning</kwd>
        <kwd>SVM</kwd>
        <kwd>BERT</kwd>
        <kwd>CEUR-WS</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Hate speech detection has gained a lot of importance in the NLP community. The HASOC
2020 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] shared task which is part of FIRE 2020 is an attempt in this direction. It provides a
forum for classifying text into hate speech. It has two subtasks, A and B, in three languages:
English, Hindi and German. subtask-A is a binary classification task in which we are required
to classify the post into hate speech (HOF) and non hate speech (NOT). subtask-B tries to
further address the fine tuned versions of hate speech: Hate speech (HOF), Profanity (PRF) and
Ofensive speech(OFF). The posts which have been classified as HOF in the previous subtask
have to be further classified into one of these 3 categories.
      </p>
      <p>We have conducted our investigation on the English and Hindi datasets. Simple word based
ifltering approaches to tackle this problem are not eficient enough as a sentence could only
be tagged as hateful based on the context in which that word has been spoken. So, with this
simple swear word-based filtering approach, we might end up falsely tagging a lot of sentences
hateful.</p>
      <p>
        The BERT model [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] which is a pre trained language model based on the neural transformer
networks [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], has achieved state of art results on most of the NLP tasks. There are two main
pre trained model versions of BERT available: Monolingual models which has been pre trained
on a specific language and Multilingual model which has been trained on multiple languages
and the hypothesis is that it could be used on any language. Hence we wanted to utulize
these pretrained models on this task. We also wanted to experiment the efectiveness of the
multilingual model as opposed to the monolingual version. Another aspect we wanted to see
was how well these pretrained transformer models perform when compared to classical models
like SVM, Logistic regression and so on. We have experimented with Support vector machines
with multiple embedding schemes and compared the performance with the BERT based models.
The rest of the paper is organized as follows: Section 2 deals with the data description. In
Section 3, we present our model and in Section 4, 5 we present our results and discussion. In
section 6, we mention our final submitted models and finally in section 7 we conclude.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Dataset Description</title>
      <p>
        HASOC 2020 has ofered two subtasks:
Subtask-A: Classification of the post as hate speech (HOF) and non hate speech (NOT). All
categories of hate like profanity, ofensive language, hate speech are labelled as HOF as part of
this task. This is a binary classification task. The English dataset is almost perfectly balanced
while the Hindi dataset is imbalanced with only 25% of the data being HOF.
For English subtask-A, we have used an additional dataset named OLID [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], proposed by
OffensEval [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This is a dataset for hate speech detection. There are 4400 posts under the label
of OFF denoting ofensive and 8840 posts categorized as NOT denoting non-hateful posts.
Subtask-B: The posts with ’HOF’ label have to be further classified into one of the fine tuned
labels: HATE, OFFN, PRFN denoting hate speech, ofensive content and profane content
respectively. The posts with ’NOT’ from the previous subtask-A are labelled as NONE in subtask-B.
Here,unlike the case in subtask-A, both English and Hindi datasets were highly imbalanced,
with the majority class being NONE in both cases. Additionally in the case of English
langauge, PRFN class formed the majority among HATE, PRFN and OFFN classes.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Methodology and experiments</title>
      <p>This section is divided as follows: We first present a common pre-processing pipeline which
we follow for both subtasks A and B. We then present our method description for subtask-A
and then describe our methodology for subtask-B.</p>
      <sec id="sec-3-1">
        <title>3.1. Pre-processing</title>
        <p>
          The dataset has been extracted from social media sites like twitter. So, it is expected that it
would have a lot of social media jargon and hence contains unconventional social media style
of writing. It is essential to pre-process the dataset before passing it on to the models. The
following is the pre-processing pipeline we followed for English:
1. URL Removal: All the urls have been replaced with a special token.
2. User Mention Removal: All the user mentions have been replaced with another special token.
3. Conversion of emojis and emoticons into corresponding text.
4. Expansion of hashtags, removal of stop words and unnecessary symbol, case folding.
5. Map all elongations to the same word. (For example "yeah", "yeahhhh", "yeeaahhh" into
"yeah")
For Hindi we additionally stem the words and we did not perform step-5. All other steps were
performed. We have used the NLTK [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] library in python to perform some of the above tasks.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Subtask-A</title>
        <p>We have experimented with two kinds of approaches:
1. Classical Machine Learning Approaches using SVM
2. Transfer Learning Approaches using Neural BERT</p>
        <sec id="sec-3-2-1">
          <title>3.2.1. SVM Based Model</title>
          <p>
            We perform all further processing on the pre-processed data. There are two steps in this:
1. Sentence Encoding: The resultant text after pre-processesing has to be converted into
vector form for the classification models to train upon. The output of this step is a
vector which tries to represent the sentence. For this, we had experimented with diferent
sentence encoding mechanisms:
a) Universal Sentence Encoder [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ] (Used only for English dataset) We will use the
abbreviation USE to denote Universal Sentence Encoder embedding scheme. We used the
model available on TF Hub for Universal Sentence Encoder.5
b) Averaging the word level fasttext [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ] embeddings in the sentence. We will call this
encoding scheme Avg Fasttext in this paper.6 7
c) TfIdf Vectorization. We will call this encoding scheme TfIdf vect in this paper.
2. Classification : We have experimented with SVM [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ] classifier provided by scikit-learn [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]
library in python. For the C value in parameter, we performed grid search on values from
0.0001 to 100, with a jump per interval of 10. We have used 5-fold cross validation to come
up with the best model for the task. The kernel used was radial basis function (’rbf’) [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ].
We have experimented with two modes of loss calculation. First mode is the standard
loss calculation. Second mode is giving more weightage to class with lesser number of
samples in the loss. The weightage given is inversely proportional to the number of
samples in that class. We will call this mode  

in this paper.
          </p>
          <p>
            While trying the above machine learning approaches on the Hindi dataset, we experimented
The pre-processing pipeline followed before performing the experiments mentioned in this
section is same as that mentioned in Section 3.1. We describe our approach below:
1. English: For English, we have used the monolingual pre-trained cased BERT model [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]
to get the sentence encoding. We will call this model 

sifier used is a dense layer, with the output dimension as 1, representing the label. We
used an additional dataset named OLID, to boost up the number of training samples.
in this paper. The
clas5https://tfhub.dev/google/universal-sentence-encoder/1
6Here, embedding themselves might have been pre-trained using deep learning based approaches, but these
have been reported under the encoding for the machine learning approaches as the title represents the nature of
the classification algorithm used and not the embedding training approach.
          </p>
          <p>7We are just using USE/Avg Fasttext as embedding schemes. We did not fine tune these architectures and hence
we did not place these mechanisms in the Transfer Learning section.</p>
          <p>8http://mylanguages.org/devanagari_romanization.php
on two forms of data:
1. Original devanagari form</p>
          <p>transliteration.</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>3.2.2. BERT Based Model</title>
          <p>2. Transliterated form: We performed transliteration on the Devanagari form to convert
it to the standard Roman form. We have used mylanguages website 8 to perform the
We appended the OLID dataset to the 2020 English subtask-A dataset to obtain the final
dataset. We took the pre-trained BERT model and fine tuned it with this final dataset.
2. Hindi: For Hindi, we have used the multilingual cased pre-trained BERT model 9 to get
the sentence encoding. We will call this model   in this paper. The classifier
again is a dense layer with the output dimension as 1, denoting the label itself. We
took this pre-trained multilingual model and fine tuned it on the 2020 Hindi dataset for
subtask-A.</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Subtask-B</title>
        <p>For subtask-B, the preprocessing pipeline is same as the one described in Section 3.1. The
dataset for this subtask was pretty imbalanced. There were two strategies which we had tried,
second one adding on to the first strategy. We follow the same approaches for English and
Hindi. The sentence encoding schemes remain same as the ones mentioned in Section 3.2.1.
1. Approach 1: In this approach, we do not consider it as an extension to subtask-A. We
simply take the encoded data and its corresponding label for subtask-B, for training, and
ift an SVM on this data. This would translate to multiclass classification with 4 labels:
NONE, HATE, PRFN and OFFN. We can see here that this classification is independent
of the previous task’s output.
2. Approach 2: In this approach, we first filter out all the non-NONE labelled data from
the training data for subtask-B and fit an SVM on it. Henceforth, we will call this model
SVM_1 in the paper. Now we take the first subtask’s output and directly label the ’NOT’
predictions from the first task as ’NONE’. For the remaining posts, we predict using the
SVM_1 model.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Results</title>
      <p>HASOC organizers have released public test data with actual ground truth labels this year. The
ifnal leaderboard ranks were decided based on a private test dataset. All the results reported
in Tables 2-5 are on the 2020 public test data. We included macro precision, macro recall and
macro F1 score in our results. Macro values were calculated by averaging the corresponding
value for all the classes. Organizers of HASOC have used macro-F1 as the primary metric in
deciding the leaderboard positions. Table 6 shows the performance of our model on the private
test data. The results of Hindi subtask-B were not announced at the time of submission of this
paper.</p>
      <p>For English subtask-A, results labelled with OLID+2020 denote models trained on 2020 HASOC
dataset appended with OLID dataset as mentioned in the methodology section. The results
without that label are trained on the 2020 HASOC dataset only. The label trans in Hindi results
denotes that the model has been trained on the transliterated version of the dataset. All the
results for subtask-B are based on the two approaches described in section 3.3.
0.86
0.85
sion
sion

BERT
BERT
BERT



(OLID+2020)
(OLID+2020)
Method
TfIdf Vect + SVM
TfIdf Vect + SVM</p>
    </sec>
    <sec id="sec-5">
      <title>5. Discussion</title>
      <p>An important thing to notice in the case of BERT models is that when there is monolingual
model available, it is outperforming the multilingual model. We saw a diference of around
0.012 macro F1 score between both the models. The multilingual model though turns out to be
better than the classical SVM model. We saw a diference of around 0.02 macro F1 score again</p>
      <p>Method
TTffIIddff VVeecctt ++ SSVVMM
AAvvgg FFaasstttteexxtt ++ SSVVMM
 
TfIdf Vect + SVM
AAvvgg FFaasstttteexxtt ++ SSVVMM
sion
sion</p>
      <p>We could see significant improvement in macro F1 score between  
 model and the SVM
model in cases where there was data imbalance. In subtask-B where the dataset is heavily
imbalanced and is very small, we could see improvement upto 0.12 macro F1 score, which is
quite significant. In subtask-A, there wasn’t any significant improvement for English as the
dataset was already balanced. There was an improvement upto 0.15 macro F1 score for Hindi
subtask-A which is expected due to the imbalance in the dataset.</p>
      <p>From Table 5 we can see that there is an improvement of 0.12 macro F1 score between SVM
models in attempt-1 and attempt-2. We see that the second approach has indeed reduced the
bias towards the majority class [NONE] and has improved the overall Macro F1 score. We could
see a significant number of samples now getting classified into classes other than ‘NONE’.
From experimental analysis, we could see that usage of additional data for English Subtask-A
did help in improving the macro F1 score. As we can see in Table 2 there was an improvement
of 0.01 macro F1 score in the case of BERT and 0.03 macro F1 score in the case of TfIdf Vect +
   when we additionally use the OLID dataset.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Submitted models</title>
      <p>We have submitted two runs for each subtask for English and Hindi. For English
subtaskA, we submitted USE+   model and the   (OLID+2020) model described in the
previous sections. For Hindi subtask-A, we submitted   based model and the Avg
Fasttext model described above. For subtask-B, we submitted approaches 1 and 2 described
in section 3.3 as part of the two runs for both the languages. For subtask-B, we submitted
models with USE sentence encodings for English and for Hindi we submitted models with
TfIdf sentence encoding scheme.</p>
    </sec>
    <sec id="sec-7">
      <title>7. Conclusion</title>
      <p>We have described two main directions for the hate speech detection problem: Classical
machine learning approach and Transfer learning based approach. We have shown through
experiments that BERT based models pre-trained on large English corpora and fine tuned on the
dataset available yield good results. We have achieved a macro F1 of 0.90 and 0.67 for English
and Hindi subtask A respectively which is 0.05 and 0.01 more than the best performing SVM
counterpart. The proposed model performed reasonably well, it was of by very small margins
compared to the best performing models in almost all cases. It was of by 0.01 and 0.02 F1 score
for English and Hindi respectively in subtask A and 0.03 and 0.11 F1 score in subtask B. The
poor performance in subtask-B could be attributed to the fact that the dataset was small and
imbalanced. Furthermore, the classes individually being very fine grained makes it dificult for
models to capture. We should try to build more robust models which capture these subtleties
between classes and also possibly try to build a more balanced and larger dataset in order to
improve the eficiency of the hate speech detection systems. Various approaches like LSTM,
CNN, LSTM-Attention, etc can also be tried. Comparing the eficiency of these approaches
with BERT and SVM based models is left to future work. We plan to experiment with BERT
based architectures for subtask-B as part of future study. We hope our experimentation and
analysis helps in tackling the problem of hate speech detection in some way.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mandl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Modha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. K.</given-names>
            <surname>Shahi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. K.</given-names>
            <surname>Jaiswal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nandini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Patel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Majumder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schäfer</surname>
          </string-name>
          ,
          <article-title>Overview of the HASOC track at FIRE 2020: Hate Speech and Ofensive Content Identification in Indo-European Languages)</article-title>
          ,
          <source>in: Working Notes of FIRE 2020 - Forum for Information Retrieval Evaluation</source>
          ,
          <string-name>
            <surname>CEUR</surname>
          </string-name>
          ,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J.</given-names>
            <surname>Devlin</surname>
          </string-name>
          , M.-
          <string-name>
            <given-names>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>
          , arXiv preprint arXiv:
          <year>1810</year>
          .
          <volume>04805</volume>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <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>
          , Ł. Kaiser,
          <string-name>
            <surname>I. Polosukhin</surname>
          </string-name>
          ,
          <article-title>Attention is all you need</article-title>
          ,
          <source>Advances in neural information processing systems</source>
          <volume>30</volume>
          (
          <year>2017</year>
          )
          <fpage>5998</fpage>
          -
          <lpage>6008</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Zampieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Malmasi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Nakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rosenthal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Farra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <article-title>Predicting the type and target of ofensive posts in social media</article-title>
          , arXiv preprint arXiv:
          <year>1902</year>
          .
          <volume>09666</volume>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Zampieri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Malmasi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Nakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rosenthal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Farra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kumar</surname>
          </string-name>
          , Semeval
          <article-title>-2019 task 6: Identifying and categorizing ofensive language in social media (ofenseval</article-title>
          ), arXiv preprint arXiv:
          <year>1903</year>
          .
          <volume>08983</volume>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E.</given-names>
            <surname>Loper</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bird</surname>
          </string-name>
          ,
          <article-title>Nltk: the natural language toolkit</article-title>
          ,
          <source>arXiv preprint cs/0205028</source>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>Cer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Yang</surname>
          </string-name>
          , S.-y. Kong,
          <string-name>
            <given-names>N.</given-names>
            <surname>Hua</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Limtiaco</surname>
          </string-name>
          ,
          <string-name>
            R. S. John,
            <given-names>N.</given-names>
            <surname>Constant</surname>
          </string-name>
          , M. GuajardoCespedes, S. Yuan,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tar</surname>
          </string-name>
          , et al.,
          <source>Universal sentence encoder</source>
          , arXiv preprint arXiv:
          <year>1803</year>
          .
          <volume>11175</volume>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bojanowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Grave</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Joulin</surname>
          </string-name>
          , T. Mikolov,
          <article-title>Enriching word vectors with subword information, Transactions of the Association for Computational Linguistics 5 (</article-title>
          <year>2017</year>
          )
          <fpage>135</fpage>
          -
          <lpage>146</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Hearst</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. T.</given-names>
            <surname>Dumais</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Osuna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Platt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Scholkopf</surname>
          </string-name>
          ,
          <article-title>Support vector machines</article-title>
          ,
          <source>IEEE Intelligent Systems and their Applications</source>
          <volume>13</volume>
          (
          <year>1998</year>
          )
          <fpage>18</fpage>
          -
          <lpage>28</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pedregosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Varoquaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gramfort</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Michel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Thirion</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Grisel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Blondel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Prettenhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Weiss</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Dubourg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vanderplas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Passos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cournapeau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brucher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Perrot</surname>
          </string-name>
          , E. Duchesnay,
          <article-title>Scikit-learn: Machine learning in Python</article-title>
          ,
          <source>Journal of Machine Learning Research</source>
          <volume>12</volume>
          (
          <year>2011</year>
          )
          <fpage>2825</fpage>
          -
          <lpage>2830</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>M. J. Orr</surname>
          </string-name>
          , et al.,
          <article-title>Introduction to radial basis function networks</article-title>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>