<!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>Sentiment analysis for software quality assessment</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Feng Liang</string-name>
          <email>l.feng1@students.uu.nl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fang Hou</string-name>
          <email>f.hou@uu.nl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Siamak Farshidi</string-name>
          <email>s.farshidi@uu.nl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Slinger Jansen</string-name>
          <email>slinger.jansen@uu.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lappeenranta University</institution>
          ,
          <addr-line>Lappeenranta</addr-line>
          ,
          <country country="FI">Finland</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Utreht University</institution>
          ,
          <addr-line>Utrecht</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <fpage>17</fpage>
      <lpage>24</lpage>
      <abstract>
        <p>During the software selection process, software engineers often rely on text reviews from repository platforms, communities, or forums to collect software quality information. As these reviews ofer direct insight into users' experience and perception of the software components. However, text reviews are often formulated implicitly, and the process of gathering user feedback from multiple sources can be a time-intensive endeavor, posing challenges in the collection and analysis of substantial volumes of data. We conducted a systematic literature review to explore the state-of-the-art solutions in sentiment analysis. By leveraging the knowledge derived from the literature review, we developed a sentiment analysis tool to measure software component quality by analyzing the sentiment of reviews from experienced users. Our goal is to provide a channel to help software stakeholders gain insight into the software quality attributes, thus enhancing the overall health of software and the software ecosystem. This tool consists of TextRank, which extracts keywords related to software quality attributes from raw data, an Aho-Corasick automaton used to search for these keywords in reviews and map them to software quality attributes, and a sentiment analysis model to perform sentiment analysis. We compare four widely mentioned models in the literature review, namely BERT, BERT-BiLSTM, BERT-BiLSTM-Attention, and RoBERTa, in terms of performance metrics such as accuracy, F1, precision, and recall. BERT-BiLSTM-Attention is selected as the sentiment analysis model due to its superior performance in both training and test datasets. In addition, we integrated a decision algorithm that computes the fuzzy group consensus sentiment for the relevant quality attributes of each software component and visualizes it through a sentiment quality matrix.</p>
      </abstract>
      <kwd-group>
        <kwd>Sentiment analysis</kwd>
        <kwd>software quality</kwd>
        <kwd>software engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Today’s software end-users expect more from their software components than ever before. To
speed up software development, shorten time-to-market, and reduce costs, software-producing
organizations often integrate third-party software components into their products. Software
development based on those third-party components is significantly dependent on the selection
of reliable components. Our previous systematic literature review (SLR) and interviews with
24 software practitioners from various domains revealed that software practitioners typically
collect measurable metrics, activity data, discussions, and text reviews from repository platforms,
nEvelop-O
(S. Jansen)</p>
      <p>
        ∗Feng Liang and Fang Hou are co-first authors, equally contributed to this paper.
CEUR
Workshop
Proceedings
communities, and forums to assess the trustworthiness or quality of software components [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
However, the process of aggregating text reviews from multiple online sources is a
timeconsuming task, and the inherent biases present in such reviews often fail to provide a precise
representation of the broader user sentiment. Consequently, this can result in imprecise software
quality assessments and pose challenges in reaching meaningful and reliable conclusions [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Sentiment can be defined as the opinions expressed by stakeholders [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], such as software
end-users, software engineers, and consultants, regarding the quality of a software component.
In software engineering (SE), sentiment analysis techniques are commonly used in opinion
mining techniques to identify sentiments and subjective opinions expressed in text. For example,
sentiment analysis is commonly used for analyzing commit comments in Github [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], discussion
in Stack Overflow [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], as well as for evaluating software quality in conjunction with software
quality models [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. However, existing sentiment analysis tools specifically designed for SE
have not achieved outstanding levels of accuracy [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Jongeling et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] apply four sentiment
analysis tools, including Sentistrength, NLTK, Stanford CoreNLP, and Alchemy API, on a text
comment dataset obtained from JIRA, but none of them achieved unsatisfactory accuracy scores.
The reasons could be:
• Cannot capture and understand SE-related terms: SE-related terms make a diference
to the meaning and sentiment expressed in social events. For instance, “patch” and
“commit” are technical terms and do not express sentiment [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Existing sentiment
analysis models often struggle to efectively capture and comprehend specialized or
domain-specific terminology in SE-related text documents. This limitation can hinder
their ability to accurately grasp the sentiment and intended meaning conveyed within
the content [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
• Cannot understand complex text: subjective preferences or opinions may be expressed
in the same comment, as well as objective technical information. Sentiment analysis
models have dificulty understanding these distinctions [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
• Limited availability of labeled data sets: Developing accurate sentiment analysis
models requires access to labeled datasets specific to SE. However, there is a shortage
of such datasets [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Models trained and evaluated on specific datasets can lead to
bias towards certain sentiment labels, potentially skewing the assessment of software
quality [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>Based on the above context, we propose a tool to assess software quality by analyzing the
sentiment of text reviews from websites. This tool assists software stakeholders in identifying
the sentiments expressed in text reviews on a software component, as well as the related quality
attributes. However, sentiments expressed across these diverse software quality attributes may
be varied, encompassing positive, negative, or neutral sentiments. To address this variability,
we employ a decision-making algorithm that calculates a fuzzy group consensus sentiment
from the range of sentiments associated with each software quality attribute. This approach
facilitates the clear presentation of the collective sentiment agreement for each attribute.</p>
      <p>The remainder of the paper is organized as follows. Section 2 discusses the research method
of this study. Section 3 briefly the conceptual model of this tool. Section 4 ofers an overview of
the experiment setting and the evaluation of candidate sentiment analysis models. Section 5 is
the conclusion and future work.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Research Approach</title>
      <p>The research questions of this study include the following:
• MRQ: How to assess software quality by detecting sentiment expressed by stakeholders?
• RQ1: What approaches are available in the literature for detecting sentiments in text
reviews?
• RQ2: What features do the sentiment analysis approach support?
• RQ3: Which aspects should be considered to measure the software quality?
• RQ4: How can an artifact be designed to assess the software quality from text reviews?
• RQ5: How can the artifact be evaluated?</p>
      <p>
        To answer RQ1, RQ2, and RQ3, we performed an SLR following the guidelines and steps
of Kitchenham [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. A set of 140 manuscripts since 2011 was identified. The complete SLR
protocol and extraction results are available as 1online material. In this study, we answer RQ4
by proposing a sentiment analysis tool.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Design Decisions</title>
      <p>The purpose of this paper is to propose a tool for assessing the quality of software based on
user reviews through sentiment analysis. It should include a feature for extracting keywords
related to software quality, a feature for searching keywords from user reviews, and a model for
sentiment analysis. The design decisions were made by using the knowledge collected during
the SLR.</p>
      <sec id="sec-3-1">
        <title>3.1. Sources</title>
        <p>The tool is designed to recognize and catalog software component names and their version
from the user reviews. Based on Figure 1, sources include three parts. (1) Review communities:
This is the source of review comments. Our approach involves the extraction of user reviews
regarding software quality from online websites or communities. (2) Software quality and
keyword mapping: We extracted keywords or keyphrases related to software quality from
the review comments by TextRank, and created a mapping list in CSV format to map these
keywords or phrases to relevant quality attributes manually. If possible, we will invite experts
to check and confirm the mapping. Future researchers can easily add extended keywords to
the provided CSV-formatted list using the same format. The tool can automatically convert
the keyword-quality attribute mappings into a dictionary format for seamless integration with
the model. (3) Software package: To enhance the dataset’s quality and focus on relevance, the
tool only analyzes specific software components (versions) from certain package managers,
such as npm or pip. Employing regular expressions, we identify and extract data containing
component names and version information from a predefined list of software components. This
information is then recorded in a maintainable list of software components. Expanding the list
of software components is as simple as adding their names to the original software component
text file we have provided. The code can identify the software component names (versions)
information within the input text.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Key-phrases extraction based on TextRank</title>
        <p>
          Analyzing and extracting the keywords of quality attributes from user reviews is one of our
needs. We are inspired by the solution proposed by Shuoqiu and Chaojun [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], Li and Shen
[
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. They proposed a method of constructing a sentiment dictionary for online course reviews,
TextRank has been adopted to extract the keywords from the reviews on websites. TextRank
employs a graph-based ranking algorithm to extract keywords or key phrases from the input
text [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. It ofers several advantages. First, it is an unsupervised algorithm, allowing for
accurate key-phrase extraction even in the absence of a pre-annotated dataset [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Second,
the TextRank algorithm demonstrates remarkable eficiency and high processing speed [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ],
making it suitable for handling substantial volumes of data.
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Keyword matching based on Aho-Corasick</title>
        <p>
          After the keyword extraction, we need to search them, including quality attributes keywords,
and software packages (versions) from the user reviews. The combination of TextRank and
Aho-Corasick has also been demonstrated to be a reasonable and efective combination in the
literature. We draw on the research conducted by Li and Shen [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], Aho-Corasick automaton is
used to conduct keyword matching on web pages, after the keywords generation by TextRank.
When searching for multiple keywords at the same time in a large amount of text, the
AhoCorasick algorithm can find multiple occurrences of the keywords in the input text at once. Its
time complexity is linear in the number of keywords appearing in the text, making it eficient
to use even on large datasets [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4. Sentiment Analysis</title>
        <p>The sentiment analysis model makes it possible to predict the sentiments of user reviews. These
sentiments are assigned to the corresponding quality attributes. Based on the SLR results,
we select four models that have been frequently adopted in sentiment analysis studies as the
candidate models for sentiment analysis, namely BERT, BERT-BiLSTM, BERT-BiLSTM-Attention,
and RoBERTa. The model with the best performance will be selected as the sentiment analysis
model. To facilitate a comparative evaluation of these four models, we conducted the following
experiment.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Experiment</title>
      <sec id="sec-4-1">
        <title>4.1. Data sources</title>
        <p>In this section, we aim to evaluate the four models and select one as the sentiment analysis
model.</p>
        <p>In this experiment, text reviews are sourced from several online communities, starting with
Stack Overflow, TrustRadius, and G2, to encompass developer community platforms and user
reviews of software. The sources are technical forum (Stack Overflow 2), software review site
(G2 3), and user feedback platform (TrustRadius 4). Over 5,000,000 reviews have been extracted
from the three sources as the raw dataset. To reflect current trends and patterns and incorporate
new vocabularies and language usage, we only extracted user reviews from the last five years.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Data cleansing</title>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. Data annotation</title>
        <p>
          A data cleaning process was performed, removing extraneous components that were not relevant
to our analysis, such as URLs, HTML tags, code snippets, and special characters, as well as
related software reviews for the components that do not exist in the software component list.
Annotated data is a critical prerequisite for conducting sentiment analysis. However, creating
sentiment labels manually is a time-consuming task. Some studies directly employ gold datasets.
We plan to explore an approach that ensures labeling accuracy while minimizing the need
for extensive human efort. Wang et al. [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] conduct a study investigating the feasibility and
performance of the GPT model for labeling tasks. Their results show that the use of GPT
models can significantly reduce costs from 96% to 50% compared to manual annotators. First,
we considered employing GPT to do the annotation. We performed stratified sampling on the
training dataset, 4499 data were extracted to form the dataset. GPT-turbo API was adopted to
perform sentiment analysis tasks with GPT-turbo models via API. The prompt used for the
analysis is “I want you to act like an expert in sentiment analysis in the software engineering
2https://stackoverflow.com/
3https://www.g2.com/
4https://www.trustradius.com/
domain; can you please indicate the sentiment polarity of the given sentence? (Please say Negative,
Neutral, or Positive)”. Then two authors manually checked the results and we agreed with
the annotation results for 3523 of the comments, with discrepancies in the results for the
remaining 976. Only four were comments with opposite polarity (GPT annotated as positive or
negative, and manually annotated as negative or positive). The manual annotation outcomes
were employed as the labels for the respective data in data training and testing.
        </p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4. Model comparion</title>
        <p>For the training process, we split 70% of the annotated data (3107 reviews) as training data to
ifne-tune models, and 30% for (1332 reviews) the final testing to measure the out-of-sample
performance after training. Based on the SLR, the most frequently used performance indicators
are Accuracy, F1, Precision, and Recall, the frequencies are 84, 73, 40, and 41. Table 1 shows the
indicators for the four models. We can find that BERT-BiLSTM-Attention outweighs the other
models.</p>
        <p>BERT
BERT-BiLSTM
BERT-BiLSTM-Attention
RoBERTa</p>
      </sec>
      <sec id="sec-4-5">
        <title>4.5. Fuzzy logical calculation</title>
        <p>
          The sentiment analysis of software component quality attributes is often distributed, which
may not readily convey whether an attribute is positive, negative, or neutral. Taking inspiration
from Farshidi et al. [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], we consider it as a decision-making problem and solve it by applying
the fuzzy logical calculation method proposed by Hsu and Chen [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. The aim is to quantify the
similarity of each pair of sentiments and to aggregate fuzzy individual sentiments into fuzzy
group consensus sentiments. Figure 2 shows a partial result. In each cell, the first row contains
the number of negative, neutral, and positive polarity. The decimal numbers in the second
row are the fuzzy group consensus sentiment of this attribute. In the table, the intensity of the
green color represents the strength of the “positive” polarity, while the intensity of the red color
represents the strength of the “negative” polarity. Yellow color indicates “neutral” polarity.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions</title>
      <p>In this paper, we present a solution for the task of sentiment analysis in the software engineering
(SE) domain. This tool uses a TextRank model to extract keywords from the dataset, maps
them to ISO/IEC 25010 software quality attributes by Aho-Corasick automaton, and utilizes
BERT-BiLSTM-Attention to analyze the sentiment of software quality-related text reviews.</p>
      <p>Furthermore, our approach employs a decision-making algorithm to calculate the fuzzy group
consensus sentiment for each attribute of software components. This facilitates a comprehensive
and direct understanding of the quality attributes expressed in text reviews, along with their
corresponding sentiments. Consequently, software stakeholders can easily grasp insights into
software quality and optimize their software selection process based on this information.</p>
      <p>
        Our future work will focus on the following aspects. First, we would like to work with more
expert teams to customize and evaluate the keyword mapping to quality attributes. Second, we
will explore a data annotation method that combines manual annotation and sophisticated AI
models to improve annotation eficiency and achieve higher quality and larger capacity of the
golden dataset. Third, we will improve the model, for instance, utilizing structured information
from large-scale software engineering knowledge bases to improve its accuracy for sentiment
analysis in software quality. Finally, we will integrate this tool into some platforms, for instance,
TrustSECO [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], a community-managed infrastructure that we are developing that underpins
the SECO with a trust layer.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>F.</given-names>
            <surname>Hou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jansen</surname>
          </string-name>
          ,
          <article-title>A systematic literature review on trust in the software ecosystem</article-title>
          ,
          <source>Empirical Software Engineering</source>
          <volume>28</volume>
          (
          <year>2023</year>
          )
          <article-title>8</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Hou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jansen</surname>
          </string-name>
          , A. de Vries, S. Jansen,
          <article-title>The role of software trust in selection of opensource and closed software (</article-title>
          <year>2023</year>
          )
          <fpage>30</fpage>
          -
          <lpage>37</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Uddin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Khomh</surname>
          </string-name>
          ,
          <article-title>Automatic mining of opinions expressed about apis in stack overflow</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>47</volume>
          (
          <year>2019</year>
          )
          <fpage>522</fpage>
          -
          <lpage>559</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Dehkharghani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Yilmaz</surname>
          </string-name>
          ,
          <article-title>Automatically identifying a software product's quality attributes through sentiment analysis of tweets</article-title>
          ,
          <source>in: 2013 1st International Workshop on Natural Language Analysis in Software Engineering (NaturaLiSE)</source>
          , IEEE,
          <year>2013</year>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A. H.</given-names>
            <surname>Ahmed Abbasi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dhar</surname>
          </string-name>
          ,
          <article-title>Benchmarking twitter sentiment analysis tools</article-title>
          ,
          <source>in: Proceedings of the Ninth International Conference on Language Resources and Evaluation (LREC'14)</source>
          , Reykjavik, Iceland, may.
          <source>European Language Resources Association (ELRA)</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>B.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Zampetti</surname>
          </string-name>
          , G. Bavota,
          <string-name>
            <given-names>M. Di</given-names>
            <surname>Penta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lanza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Oliveto</surname>
          </string-name>
          ,
          <article-title>Sentiment analysis for software engineering: How far can we go?</article-title>
          ,
          <source>in: Proceedings of the 40th international conference on software engineering</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>94</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Leopairote</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Surarerks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Prompoon</surname>
          </string-name>
          ,
          <article-title>Evaluating software quality in use using user reviews mining</article-title>
          ,
          <source>in: The 2013 10th International Joint Conference on Computer Science and Software Engineering (JCSSE)</source>
          , IEEE,
          <year>2013</year>
          , pp.
          <fpage>257</fpage>
          -
          <lpage>262</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ding</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <article-title>Entity-level sentiment analysis of issue comments</article-title>
          ,
          <source>in: 2018 IEEE/ACM 3rd International Workshop on Emotion Awareness in Software Engineering (SEmotion)</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>7</fpage>
          -
          <lpage>13</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R.</given-names>
            <surname>Jongeling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sarkar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Datta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Serebrenik</surname>
          </string-name>
          ,
          <article-title>On negative results when using sentiment analysis tools for software engineering research</article-title>
          ,
          <source>Empirical Software Engineering</source>
          <volume>22</volume>
          (
          <year>2017</year>
          ). doi:
          <volume>10</volume>
          .1007/s10664- 016- 9493- x.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>W.</given-names>
            <surname>Medhat</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hassan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Korashy</surname>
          </string-name>
          ,
          <article-title>Sentiment analysis algorithms and applications: A survey</article-title>
          ,
          <source>Ain Shams engineering journal 5</source>
          (
          <year>2014</year>
          )
          <fpage>1093</fpage>
          -
          <lpage>1113</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wankhade</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. C. S.</given-names>
            <surname>Rao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kulkarni</surname>
          </string-name>
          ,
          <article-title>A survey on sentiment analysis methods, applications, and challenges</article-title>
          ,
          <source>Artificial Intelligence Review</source>
          <volume>55</volume>
          (
          <year>2022</year>
          )
          <fpage>5731</fpage>
          -
          <lpage>5780</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kitchenham</surname>
          </string-name>
          ,
          <article-title>Procedures for performing systematic reviews</article-title>
          , Keele,
          <string-name>
            <surname>UK</surname>
          </string-name>
          , Keele University 33 (
          <year>2004</year>
          )
          <fpage>1</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shuoqiu</surname>
          </string-name>
          ,
          <string-name>
            <surname>X. Chaojun,</surname>
          </string-name>
          <article-title>Research on constructing sentiment dictionary of online course reviews based on multi-source combination</article-title>
          ,
          <source>in: Proceedings of the 2019 2nd International Conference on Data Science and Information Technology</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>76</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Shen</surname>
          </string-name>
          ,
          <article-title>Deep semantic mining of big multimedia data advertisements based on needs ontology construction</article-title>
          ,
          <source>Multimedia Tools and Applications</source>
          <volume>81</volume>
          (
          <year>2022</year>
          )
          <fpage>28079</fpage>
          -
          <lpage>28102</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R.</given-names>
            <surname>Mihalcea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Tarau</surname>
          </string-name>
          , Textrank:
          <article-title>Bringing order into text</article-title>
          ,
          <source>in: Proceedings of the 2004 conference on empirical methods in natural language processing</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>404</fpage>
          -
          <lpage>411</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Tao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Cui</surname>
          </string-name>
          ,
          <string-name>
            <surname>Z. Jiazhe,</surname>
          </string-name>
          <article-title>Research on keyword extraction algorithm using pmi and textrank</article-title>
          ,
          <source>in: 2019 IEEE 2nd International Conference on Information and Computer</source>
          Technologies (ICICT), IEEE,
          <year>2019</year>
          , pp.
          <fpage>5</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D.</given-names>
            <surname>Pao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <article-title>A memory-eficient pipelined implementation of the aho-corasick string-matching algorithm</article-title>
          ,
          <source>ACM Transactions on Architecture and Code Optimization (TACO) 7</source>
          (
          <issue>2010</issue>
          )
          <fpage>1</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Zeng</surname>
          </string-name>
          ,
          <article-title>Want to reduce labeling cost? gpt-3 can help</article-title>
          ,
          <source>in: Findings of the Association for Computational Linguistics: EMNLP</source>
          <year>2021</year>
          ,
          <article-title>Association for Computational Linguistics</article-title>
          , Punta Cana, Dominican Republic,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Farshidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jansen</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. M. van der Werf</surname>
          </string-name>
          ,
          <article-title>Capturing software architecture knowledge for pattern-driven design</article-title>
          ,
          <source>Journal of Systems and Software</source>
          <volume>169</volume>
          (
          <year>2020</year>
          )
          <fpage>110714</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>H.-M. Hsu</surname>
          </string-name>
          , C.-T. Chen,
          <article-title>Aggregation of fuzzy opinions under group decision making, Fuzzy sets and systems 79 (</article-title>
          <year>1996</year>
          )
          <fpage>279</fpage>
          -
          <lpage>285</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>F.</given-names>
            <surname>Hou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Farshidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jansen</surname>
          </string-name>
          ,
          <article-title>Trustseco: A distributed infrastructure for providing trust in the software ecosystem</article-title>
          ,
          <source>in: International Conference on Advanced Information Systems Engineering</source>
          , Springer,
          <year>2021</year>
          , pp.
          <fpage>121</fpage>
          -
          <lpage>133</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>