# Understanding Horizon 2020 Data: A Knowledge Graph-Based Approach
## 2 Background
### Keyphrase Extraction  
_YAKE!_[5] is a statistical unsupervised KE approach. It splits a document into distinct terms, where for each term \(t\) a score \(S(t)\) is calculated. \(S(t)\) is computed using five term related metrics: _Trel_ (term relatedness to context, which measures the number of distinct terms that appear on the left and right side of \(t\). ), _Tpos_ (the positional of \(t\), which assigns a higher score to terms appearing closer to the beginning of the document), _Tcase_ (casing aspect of \(t\), which favours uppercase and terms having their first letter capitalized, minus those located at the starting point of a sentence. ), _TFnorm_ (term frequency normalization), _Trel_ (term relatedness to context, which computes the number of different terms that occur on the left and right side of the term), and _Tdifsent_ (which measures the number of times \(t\) appears in different sentences). Formally \(S(t)\) is defined as:  
\[S(t)=\frac{T_{rel}\;*\;T_{pos}}{T_{case}+\frac{T_{gen}}{T_{rel}}\;+\;\frac{T_{ difsent}}{T_{rel}}} \tag{1}\]  
After the calculation of each score for every term, n-grams of candidate keyphrases (\(ck\)) are formed. For each \(ck\), a score \(S(ck)\) is computed. The lower the value of this score, the higher the quality of the \(ck\) is. \[S(ck)\;=\;\frac{\prod_{\;t\;\in\;ck}S(t)}{TF(ck)\;*\;(1+\sum_{\;t\;\in\;ck}S(t ))} \tag{2}\]  
_TextRank_[6] is one of the most notable graph-based KE approaches. For each term in the document, it assigns part-of-speech (POS) tags, as to only include nouns and adjectives for its list of candidate keyphrases. For the document, a graph is initialized. Each \(ck\) is represented as a node in the graph. Edges are formed between terms that co-occur in a sliding window of \(N\). If the edges are undirected and unweighted, the _TextRank_ score \(S(vi)\) for each node \(vi\) is calculated by the following formula:  
\[S(vi)\;=\;(1-d)\;+\;d\;\times\;\sum_{\;v_{j}\;\in\;\Gamma(v_{j})}\frac{1}{ \left|\Gamma(v_{j})\right|}\;S(vi) \tag{3}\]  
where \(d\) is the damping factor, usually set to 0.85 as indicated in [7] and \(\Gamma(vi)\) is the set of neighbouring nodes of \(vi\). When formula (3) converges, the nodes are sorted in a descending order of their calculated scores, and the top-n \(ck\) are returned. _SingleRank_[8] is a similar approach to _TextRank_, being different in three key aspects [7]. First, the weighted version of _TextRank_ uses the same pre-defined weight for each edge,whereas _SingleRank_ uses the number of times the connected terms co-occurred together in the sliding window of \(N\) terms. Second, _SingleRank_ considers both highest ranking and lowest ranking terms in the \(ck\) forming process, while _TextRank_ only employs the former. This has the effect of a \(ck\) being ranked as a sum of the ranking of all terms in it. The resulting score is then used in descending order to obtain the top-N highest scored \(cks\). Third, _SingleRank_ uses a larger window size (e.g., 10), in contrast to a smaller window sizes employed by _TextRank_ (with 2 being the minimum one). The mathematical formulation of the weighted _SingleRank_ score \(WS(v_{j})\) is nearly the same as the weighted _TextRank_ score. The two major differences are: (i) the weight of an edge between two nodes \(v_{i}\) and \(v_{j}\) is set to the number of cooccurrences \(c_{ij}\); (ii) instead of dividing the weight of an edge by \(\left|\Gamma(v_{j})\right|\), it is instead divided by \(\sum_{v_{k}\in\Gamma(v_{j})}c_{jk}\) which is the sum of the number of co-occurrences between \(v_{j}\) and each of its neighboring nodes \(\Gamma(v_{j})\).