<!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>Architecture and Implementation of an Intelligent News Analysis System</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yury Gapanyuk</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Igor Latkin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sergey Chernobrovkin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aleksey Leontiev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Grigory Ozhegov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Opryshko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Maxim Myalkin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bauman Moscow State Technical University</institution>
          ,
          <addr-line>Moscow</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The paper discusses the developing of information system for analysis and aggregation of news from news servers and social resources. The basic purpose of the system is to provide relevantly aggregated news information for the user. The paper reviewed the used techniques for gathering and storing of news information. The paper discusses the used methods for news processing such as news online clustering and news sentiment analysis. The architecture and implementation principles of developed system are given.</p>
      </abstract>
      <kwd-group>
        <kwd>online news processing</kwd>
        <kwd>online clustering</kwd>
        <kwd>sentiment analysis</kwd>
        <kwd>metagraph</kwd>
        <kwd>TF-IDF</kwd>
        <kwd>word mover's distance</kwd>
        <kwd>convolutional neural network</kwd>
        <kwd>support vector machine</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The job of journalists and editors is to react as quickly as possible to hot news, so
they have to examine a lot of publications that appear on the Internet in a short
time. Moreover, each event can be covered in many articles and publications,
and therefore the amount of data becomes su ciently large. In addition to the
news, there are also social networks where users can express their attitude to
certain news, discuss events, come to their \own" conclusion and so on. All this
information (news items, articles, social posts) should be read, compared and
analyzed by the editors of many news agencies. However, often the editor can't
process the whole data stream, so we need to provide a short description of
these news, various additional information, using which editor would be able to
assess if it can be valuable and interesting, and also to tie discussions in social
networks to the news, to provide maximum information, bring various statistical
data about the social posts and much more.</p>
      <p>To solve these problems, we have developed the information system that is
discussed in details in this paper.</p>
    </sec>
    <sec id="sec-2">
      <title>Overview</title>
      <sec id="sec-2-1">
        <title>The system architecture</title>
        <p>
          The article [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] considers the news processing system in comparison with existing
systems. The system proposed in the article allows editors to view a summary
of news articles. The main advantage of the system considered further is that, in
addition to news sources, it also processes social networks data. People express
their attitude to news in the comments. Sentiment analysis of these comments
is one of the advantages of the system.
2.2
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>The high-level system architecture</title>
      <p>The designed system should consist of several independent modules, each of
which must solve its own task. Among these tasks, we can distinguish: collecting
and storing data, news clustering, selecting text attributes and its characteristics,
aggregation of data for the same information event and providing information
in a format convenient for the editor.</p>
      <p>Thus, it is possible to divide the system into three main subsystems: a
collection subsystem, a subsystem for executing text processing tasks and a subsystem
for displaying information. The high-level system structure is represented at Fig.
1.
The work ow of this subsystem is represented in the diagram in Fig. 2.</p>
      <p>All collected data from the Web (news articles and social posts and
comments) are stored inside document-oriented database MongoDB. After being
collected, news are transferred to the queue for the processing subsystem using
RabbitMQ as a messaging broker, where task routing is used to de ne the type
of processing for each individual news article.</p>
    </sec>
    <sec id="sec-4">
      <title>Selecting attributes of text and its characteristics</title>
      <p>The word processing system consists of several subsystems, each of which
performs its own task. However, all subsystems operate on a common principle.</p>
      <p>When the news is received, a task is formed to analyze this news in all the
subsystems, but, formally, three tasks are created: the task for clustering, the
task for determining the emotional coloring of social posts, and the selection of
keywords.</p>
      <p>All tasks are resource-intensive, therefore, it is necessary to ensure maximum
concurrency in the implementation of all phases in order to reduce the average
waiting time for news processing. In production there is a requirement to process
not less than 20,000 news per day. So the news processing time must be less than
5 seconds.</p>
      <p>To accommodate all these requirements, the processing subsystem
architecture, displayed in the Fig. 3 was developed. Each worker processes the news and
adds the meta information to the database</p>
      <p>The diagram shows three task queues that are responsible for their own
processing types. Tasks then processed by their corresponding handlers.</p>
      <p>Due to the fact that task for sentiment analysis is quite resource intensive in
terms of using the CPU during training and using RAM both during training and
operation of the trained model it was decided to perform a sentiment analysis
of text in a separate microservice where the necessary models were placed in
memory, and the interaction of workers with this microservice is carried out
through the HTTP API.</p>
      <p>In addition to processing each news, it is necessary to identify the aggregated
characteristics of the cluster. For this purpose, an aggregator is added to the
scheme. Its task is to get updated news clusters and aggregate the characteristics
of cluster's elements. Processed clusters are displayed in the editor's interface.
3</p>
      <sec id="sec-4-1">
        <title>The brief description of metagraph approach</title>
        <p>In this paper, we will discuss system from two levels point of view. The higher
level is a structure description layer using metagraph approach and the lower
level is an implementation layer.</p>
        <p>
          According to paper [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] metagraph approach may be considered as a
higherlevel structural framework for representation of dynamical complex graph
structures. In this paper, we have adopted the metagraph approach for the structure
of the NLP-processing system representation.
        </p>
        <p>The metagraph is described as follows: M G = hV; M V; Ei; where MG {
metagraph; V { set of metagraph vertices; MV { set of metagraph metavertices;
E { set of metagraph edges.</p>
        <p>Metagraph vertex vi = fatrkg; vi 2 V , where atrk { attribute. Metagraph
edge ei = hvS ; vE ; fatrkgi; ei 2 E, where vS { source vertex (metavertex) of the
edge; vE { destination vertex (metavertex) of the edge; atrk { attribute.</p>
        <p>The metagraph fragment is de ned as M Gi = fevj g; evj 2 (V [ E [ M V ),
where evj { an element that belongs to union of vertices, edges and metavertices.
The metagraph metavertex: mvi = hfatrkg; M Gf i; mvi 2 M V , where mvi {
metagraph metavertex; atrk { attribute, M Gf { metagraph fragment.</p>
        <p>The metagraph itself is not more than a complex data structure. To process
and transform metagraph data the metagraph agents are used. There are two
kinds of metagraph agents: the metagraph function agent agF and the metagraph
rule agent agR.</p>
        <p>The metagraph function agent serves as a function with input and output
parameter in form of metagraph: agF = hM GIN ; M GOUT ; AST i; where agF {
metagraph function agent; M GIN { input parameter metagraph; M GOUT {
output parameter metagraph; AST { abstract syntax tree of metagraph function
agent in form of metagraph.</p>
        <p>The metagraph rule agent uses rule-based approach: agR = hM G; R; AGST i; R =
frig; ri : M Gj ! OP MG; where agR { metagraph rule agent; M G { working
metagraph, a metagraph on the basis of which the rules of agent are performed;
R { set of rules ri; AGST { start condition (metagraph fragment for start rule
check or start rule); M Gj { a metagraph fragment on the basis of which the rule
is performed; OP MG { set of actions performed on metagraph.</p>
        <p>The distinguishing feature of metagraph agent is its homoiconicity which
means that it can be data structure for itself.</p>
        <p>Thus, metagraph approach is a good basis for complex graph structures and
their transformations representation. Now we can describe the elements of
architecture of modules of proposed system in terms of metagraph approach.
4
4.1</p>
      </sec>
      <sec id="sec-4-2">
        <title>The implementation of clustering module</title>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>The metagraph representation of clustering module</title>
      <p>The metagraph representation of clustering module is given at Fig. 4</p>
      <p>The clustering module may be implemented as a metagraph rule agent which
generates the output metagraph M G. The news text messages ti are transformed
into metagraph vertices vi, which may be annotated with attributes (source text
message, auxiliary clustering metrics).</p>
      <p>The output metagraph M G contains a set of metavertices-clusters M V C =
fM V Ckg. Each metavertex-cluster contains earlier clustered vertices-messages
v1, v2, . . . vn. Depending on used clustering algorithm vertices-messages may be
connected with necessary edges e1, e2, . . . en.</p>
      <p>Clustering metagraph rule agent may add new metavertex-cluster M V Ck+1
and then add new vertex-message vi to this cluster. For new vertex-message
vi necessary edges inside the cluster may be added (edge ei is shown as an
example). For new metavertex-cluster M V Ck+1 necessary edges also may be
added connecting new cluster with other clusters (edge mvek+1 is shown as an
example).</p>
      <p>The rule system of clustering metagraph rule agent contains two rules. When
the news text messages ti arrives then it is transformed into metagraph vertices
vi. Then depending on the current state of the metagraph M G one of the two
following rules are performed:
1. (M G; vi) ! Alg(M G; vi) = M V Ck; M V Ck + vi; M V Ck + feig
Using clustering algorithm for new vertex vi the appropriate
metavertexcluster M V Ck is selected. Then new vertex vi with necessary edges feig are
adding to selected cluster.
2. (M G; vi) ! Alg(M G; vi) = ; M G+M V Ck+1; M G+fmvek+1g; M V Ck+1+
vi; M V Ck+1 + feig
If appropriate metavertex-cluster cannot be selected then new
metavertexcluster M V Ck+1 and set of necessary edges fmvek+1g are adding to
metagraph. Then new vertex vi with necessary edges feig are adding to new
cluster.</p>
      <p>The clustered metagraph structure may be considered as a basis for next
stages of text processing. It may be transformed with other metagraph agents.
4.2</p>
    </sec>
    <sec id="sec-6">
      <title>Algorithm of the clustering module</title>
      <p>The detailed algorithm Alg for news clustering module may be represented as
follows:
1. Initializing an empty set of clusters.
2. For each news:
2.1. Preprocess text. Split the text into words, delete punctuation (commas,
dots, colons, etc.), remove stop words (prepositions, conjunctions,
interjections), put the word into the normal form, for example, in the in nitive
for the verb, in the masculine singular for nouns and adjectives.
2.2. Increase the count of scanned news.
2.3. Increase the count of number of all words included in the text of the
news.
2.4. Calculate minhash from the news and add it to the index.
2.5. Determine the most similar news using the LSH procedure.
2.6. For each news:
2.6.1. Create a pair of news from step 2 and step 2.6.
2.6.2. De ne WMD between the rst and second news from the pair.
2.6.3. De ne the vector TF-IDF of the rst and second news.
2.6.4. Determine the cosine of the angle between the vectors obtained in
the previous step.
2.6.5. Find the arithmetic mean between WMD and the cosine metric
obtained in the previous step. Consider this number as the distance
between the news.
2.7. Find the minimum distance between processed news and all similar news.
2.8. If this distance is less than speci ed threshold, add the news to the cluster
that contains the news with the shortest distance, otherwise create a new
cluster with the current news article.</p>
      <p>
        The algorithm doesn't need any additional data for preprocessing or training
to perform news clustering in the streaming mode. In this case, setting the
number of clusters is not necessary, the algorithm splits the entire set of texts
into clusters, depending on the threshold parameter de ned in step 2.8 of the
algorithm. The speed required in this task is achieved by using the LSH technique
to approximate the distance between news articles. This technique is described
in details in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>In other words, the algorithm assigns a new element of the stream to the
closest cluster.</p>
      <p>
        Let's review some algorithms steps in more detail. In clause 2.6.3. texts
represented as vectors of TF-IDF coe cients of their words. This measure is based
on the frequency of occurrence of a term (word or literal) in the text and in
the entire set of texts. Use of this for the task of determining the relevance of a
document to a query is described in the article [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>Practically, any other metric can be used, but experiments show that the
best option is the conversion of texts into TF-IDF vectors.</p>
      <p>During the experiments, optimal thresholds were chosen, under which the
quality of the algorithm was maximal. Of course, theese thresholds are optimal
for the test set of data. In the ideal case, the threshold should vary depending
on the amount and nature of the data in the system. For test data we took and
manually marked clusters of news articles and posts in social networks. Quality
was assessed using the F1 metric.</p>
      <p>To calculate the F1-score, we need to determine the number of False / True
Positive / Negative examples. However, in the case of clustering, it is di cult
to determine the method for obtaining the values of FP, FN, TP, and TN, since
the number of clusters is unknown in advance and it is impossible to determine
the correspondence between the resulting cluster and the cluster from the initial
set.</p>
      <p>
        Therefore, it is possible to break all the initial data into a set of all possible
pairs of texts belonging to the same cluster. In the same way, we will split the
resulting set of clusters, as described in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>As a result, there are two sets of pairs, where each pair is represented by
two texts referring to the same cluster. We denote the pairs obtained from the
original set as G, and the pairs from the resulting set as C, so: T P = jG \ Cj,
F P = jC n Gj, F N = jG n Cj, F 1 = 2 T P2+FT NP+F P .</p>
      <p>Figure 5 shows that the F1-score was near 0.78 when using the Jaccard metric
against approx. 0.82 when using TF-IDF weighting texts on the same dataset.</p>
      <p>This approach works well, since it takes into account the frequency of words
in the texts, but this is a purely statistical approach.</p>
      <p>
        To take into account the semantic component, step 2.6.2 was added to the
algorithm. At this step, the measure of the distance WMD (Word Mover's
Distance) between the titles of news is estimated. WMD is an extension of the EMD
task for texts and described in details in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>The gure 5c shows the results of using WMD.</p>
      <p>Since counting WMD of large texts takes a long time, it was decided to
evaluate WMD using the news titles. At the same time, the quality of clustering
was improved, F1-score for the variant with WMD for the title and TF-IDF for
the text was improved by 6%.</p>
      <p>With the increase in the number of news, the processing time of one news is
increasing, as it is required to compare a new element with an increasing number
of already existing elements. To stabilize the time of one iteration, steps 2.4 and
2.5 were added to the algorithm.
(sau)re Jaccard distance mea-(cbos)inTeFd-IisDtaFncveecmtoeraizsuinrge and (rTceF)su-CIltDosmFwpahanerdnisoounnslioynfgTcWlFu-sMItDeDrFin+g</p>
      <p>In these steps, the LSH method is implemented, which allows to approximate
the distance measure with the MinHashing operation.</p>
      <p>The gure 6 shows a comparison of the processing time of one news using
LSH and without it depending on the iteration number.</p>
      <p>(a) Iteration time without LSH
(b) Iteration time with LSH</p>
      <p>The iteration time without using LSH grows with each iteration, while on
the second gure the time is much less (approx. 0.25s) and does not grow, that
is, stable. This is extremely important in the system, since the iteration time
directly a ects the speed of news appearance in the editor's interface.
5</p>
      <sec id="sec-6-1">
        <title>Selecting key phrases</title>
        <p>Keywords combinations are extremely important for the editor, as they allow to
understand quickly the essence of news articles without reading the whole text.</p>
        <p>First, the POS-tagging of the text is performed, that is, for each word the
most likely part of the speech is exposed. After this, using the regular
expressions by parts of the speech, the necessary word combinations are selected. For
example, \adjective + preposition + noun" or \adjective + noun". For the news,
regular expressions like \preposition + noun" and \number + noun" are also
important, since they allow to identify phrases like \in Moscow", \June 21", etc.</p>
        <p>However, it is not enough just to select word combinations for all news, it
is important to de ne them for the news cluster, for one information event, so
aggregation is also applied for this task.</p>
        <p>To solve this problem, the following algorithm is used in the aggregation
module:
1. For each news and its phrases we create a \normalized" set of word
combinations: each word in each phrase is put into its normal form.
2. For the entire news cluster, the frequencies of normalized word combinations
are calculated and sorted in descending order.
3. 10 most common normalized word combinations are taken.
4. Normalized word combinations are converted to the original ones.</p>
        <p>Therefore, for each cluster a set of the most popular word combinations is
formed. Normalization in step 1 required because phrases that di er only in
the case or conjugation of individual words should be considered as one word
combination.</p>
        <p>Additionally, the NER task (highlighting named entities) can be set, since
the news often refers to the classical entities of this task (geographic locations,
persons, corporations).
6</p>
      </sec>
      <sec id="sec-6-2">
        <title>The implementation of sentiment analysis module</title>
        <p>Sentiment analysis in the news analysis system is a core component that helps
a reporter to better understand opinion of people about a speci c news article
throughout the social networks. The clustering algorithm discussed earlier is used
to combine social content with the corresponding news. When the clustering
nished sentiment analysis of each individual social post happens providing the
reporter with a feedback about people's opinion in the Internet to better analyze
news and events. Various aggregated statistics can be built to understand areal,
demographic or other distributions of users' attitude to speci c events.
6.1</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>The metagraph representation of sentiment analysis module</title>
      <p>The metagraph representation of sentiment analysis module is given at Fig. 7.</p>
      <p>The stage I is entities detection. The result of stage I is a metagraph
containing entities-metavertices (the only metavertex M E is represented at Fig. 7)
with included entities-vertices E1 . . . EN .</p>
      <p>The stage II is opinion target expression. After stage II the sentences related
to entities are detected. The Fig. 7 shows metavertex SE containing sentences.
Metavertices M E and SE and their inner vertices are connected with
corresponding edges.</p>
      <p>The stage III is polarity detection. After stage III all entities are connected
with corresponding polarities. Polarities are shown as metavertex P
containing three vertices-polarities: positive (+), negative (-) and neutral (?). In our
implementation, the neutral polarity is not used.</p>
    </sec>
    <sec id="sec-8">
      <title>Sentiment analysis experiments</title>
      <p>The task of sentiment analysis can be formulated as a problem of binary classi
cation of text (using positive and negative polarities). As input, such classi er is
supplied with a set of texts T = fT 1; T 2; : : : ; T ng, at the output there is a label
(1 or 0) assigned to a positive or negative text. The binary mark in practice is
replaced by the probability that the text is positive.</p>
      <p>
        For training and testing models we used two common datasets: IMDB Large
Movie Database [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and SAR14 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Both datasets contain reviews from the
IMDB site, but SAR14 has a lot more examples. Evaluating models was carried
out for each dataset independently.
      </p>
      <p>Two main approaches used in this system will be considered: the SVM-based
approach and the convolutional neural network approach. Before model training
and predicting new values, we need to preprocess the data and present it in a
form that is convenient for the model. All texts passed through preprocessing
| clearing of unnecessary data, bringing words to normal form, dividing into
words, etc.</p>
      <p>
        The next step is to words vectorization, i.e. encode text data to numeric. This
operation can be performed in di erent ways, but the most e cient is
transformation of words into a certain linear space in which the semantic proximity of
words can be expressed in the distance (cosine or Cartesian) between the
vectors representing the given words. At the moment there are two popular word
vectorizing algorithms | Word2Vec [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and GloVe [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Let's now consider each of the models for sentiment analysis separately.
6.2.1 SVM Support Vector Machine (SVM) is a linear method of classi
cation, the main principle is to maximize the \margin" between objects of di erent
classes. It is a very popular model for solving natural language processing tasks
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>Two methods of encoding text data were considered: TF-IDF for texts, and
also average vectors of Word2Vec (both GloVe and Google Word2Vec). In
addition, we searched for the best free hyperparameter C of the function that is
optimized during SVM learning procedure:
8&lt; 21 kwk2 + C Pn</p>
      <p>i=1 i ! minw;b; i
ci(w xi b) 1 i; 1 i
: i 0; 1 i n
n</p>
      <p>C is responsible for how it's permissible to algorithm to make mistakes in
learning, i.e. how wide or narrow should be the gap between classes. The larger
the value of C, the smaller the gap, and vice versa. The table 1 shows the results
of the experiments.</p>
      <p>
        The best quality was shown by the algorithm with C = 0:196 with the result
of 0.89 on the test sample for the IMDB dataset and C = 0:311 with the result
0.92 on the test sample for the SAR14 dataset.The TF-IDF vectorization of the
texts showed the best result on both datasets.
6.2.2 CNN We used model described in details in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This model can be
extended by applying not only one lter, but several, for example, of di erent
sizes. This allows us to train the model to distinguish the attributes of di erent
properties from sentences.
      </p>
      <p>All the attributes are then fed to the fully connected softmax layer, where
the output is the prediction of probability of tonality of text. As a regularization,
Dropout layers are used, the main task of which is to leave a certain
predetermined probability keep prob in the neural network or not. As the vectorization of
words, we compared the pretrained Wor2Vec Google, pretrained GloVe vectors,
and the vectors learned in the process of network training itself. Using
crossvalidation, the optimal network structure was chosen (in terms of the size of
lters and the number of them).</p>
      <p>The graph of the model is as follows is in Fig. 8. Modeling results are shown
in the table 2.</p>
      <p>
        The best result was achieved on both datasets with pretrained vectors using
the con guration [
        <xref ref-type="bibr" rid="ref3 ref5">3, 5</xref>
        ] x 128, meaning that 2 parallel feature cards with lter
sizes of 3 and 5, respectively, are used. Each feature card contains 128 lters.
On Fig. 9 the learning curves of the best models are shown. The loss function
is not growing too fast and actually decreasing for some number of epochs, so
we can be sure that the model is actually learning and loss function tends to its
minimum.
(a) IMDB acc
(b) IMDB loss
(c) SAR14 acc
(d) SAR14 loss
      </p>
      <p>
        So, in the developed sentiment analysis subsystem we use an ensemble of the
described SVM and CNN models to achieve the best performance. The
comparison of results achieved in the baseline SVM model described in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], SVM and CNN model discussed in this paper and also a designed ensemble
model is shown in table 3.
The gure 10 shows the layout of the system interface. This page displays the
most recent articles with all the clustered news from di erent resources.
Additionally, basic information about the news and related graphics are displayed. If
the news is received from social networks, sentiment analysis of its comments is
conducted and displayed in the percentage of positive and negative reviews.
8
      </p>
      <sec id="sec-8-1">
        <title>Conclusion</title>
        <p>In this paper, we presented architecture and implementation principles of an
intelligent news analysis system. The system consists of three main subsystems: a
collection subsystem, a subsystem for executing text processing tasks and a
subsystem for displaying information. The implementation of clustering module and
sentiment analysis module are discussed in details. The operational principles of
these modules are represented using metagraph approach. As the future work,
we plan to improve the quality of implemented modules and add new modules
such as aspect-based sentiment analysis module.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Radev</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Otterbacher</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winkel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blair-Goldensohn</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>NewsInEssence: summarizing online news topics</article-title>
          .
          <source>Communications of the ACM 48.10</source>
          (
          <year>2005</year>
          ):
          <fpage>95</fpage>
          -
          <lpage>98</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Fedorenko</given-names>
            <surname>Yu</surname>
          </string-name>
          .S.,
          <string-name>
            <given-names>Gapanyuk</given-names>
            <surname>Yu</surname>
          </string-name>
          .E.:
          <article-title>Multilevel neural net adaptive models using the metagraph approach</article-title>
          .
          <source>Optical Memory and Neural Networks</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Matt J. Kusner</surname>
          </string-name>
          et al.:
          <string-name>
            <surname>From Word Embeddings To Document Distances</surname>
          </string-name>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Sida</surname>
            <given-names>Wang</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Christopher D.</surname>
          </string-name>
          <article-title>Manning: Baselines and Bigrams: Simple, Good Sentiment and Topic Classi cation</article-title>
          .
          <source>Association for Computational Linguistics (ACL)</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Kim</given-names>
            <surname>Yoon</surname>
          </string-name>
          :
          <article-title>Convolutional Neural Networks for Sentence Classi cation</article-title>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Maas</surname>
            ,
            <given-names>A.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Daly</surname>
            ,
            <given-names>R.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>P.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ng</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Potts</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Learning word vectors for sentiment analysis</article-title>
          .
          <source>Association for Computational Linguistics</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>Dai Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>Dat Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pham</surname>
            ,
            <given-names>S.B.</given-names>
          </string-name>
          :
          <article-title>Sentiment Classi cation on Polarity Reviews: An Empirical Study Using Rating-based Features</article-title>
          .
          <source>Association for Computational Linguistics</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Mikolov</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corrado</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dean</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <source>E cient Estimation of Word Representations in Vector Space arXiv preprint arXiv:1301.3781</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Pennington</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Socher</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Manning,. C.D.:
          <source>GloVe: Global Vectors for Word Representation</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Je</surname>
            rey
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Ullman</surname>
          </string-name>
          , Anand Rajaraman,
          <source>Jure Leskovec: Mining of Massive Datasets</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Juan</surname>
          </string-name>
          <article-title>Ramos: Using TF-IDF to Determine Word Relevance in Document Queries</article-title>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Christopher D. Manning</surname>
          </string-name>
          , Prabhakar Raghavan and Hinrich Schutze: Introduction to Information Retrieval, Cambridge University Press,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Pang</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vaithyanathan</surname>
            <given-names>S.</given-names>
          </string-name>
          : Thumbs Up?
          <article-title>Sentiment Classi cation Using Machine Learning Techniques</article-title>
          ,
          <source>Proceedings of EMNLP</source>
          .
          <year>2002</year>
          . P.
          <volume>7986</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Kim</surname>
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Convolutional Neural Networks for Sentence Classi cation</article-title>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Sida</given-names>
            <surname>Wang</surname>
          </string-name>
          and
          <string-name>
            <surname>Christopher D. Manning</surname>
          </string-name>
          :
          <article-title>Baselines and Bigrams: Simple, Good Sentiment and Topic Classi cation</article-title>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Socher</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perelygin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>J.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chuang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manning</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ng</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Potts</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank</article-title>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>