# Second-order co-occurrence pointwise mutual information

In computational linguistics, second-order co-occurrence pointwise mutual information is a semantic similarity measure. To assess the degree of association between two given words, it uses pointwise mutual information (PMI) to sort lists of important neighbor words of the two target words from a large corpus.

## History

The PMI-IR method used AltaVista's Advanced Search query syntax to calculate probabilities. Note that the "NEAR" search operator of AltaVista is an essential operator in the PMI-IR method. However, it is no longer in use in AltaVista; this means that, from the implementation point of view, it is not possible to use the PMI-IR method in the same form in new systems. In any case, from the algorithmic point of view, the advantage of using SOC-PMI is that it can calculate the similarity between two words that do not co-occur frequently, because they co-occur with the same neighboring words. For example, the British National Corpus (BNC) has been used as a source of frequencies and contexts.

## Methodology

The method considers the words that are common in both lists and aggregate their PMI values (from the opposite list) to calculate the relative semantic similarity. We define the pointwise mutual information function for only those words having $f^{b}(t_{i},w)>0$,
    $f^{\text{pmi}}(t_{i},w)=\log _{2}{\frac {f^{b}(t_{i},w)\times m}{f^{t}(t_{i})f^{t}(w)}},$
where $f^{t}(t_{i})$ tells us how many times the type $t_{i}$ appeared in the entire corpus, $f^{b}(t_{i},w)$ tells us how many times word $t_{i}$ appeared with word $w$ in a context window and $m$ is total number of tokens in the corpus. Now, for word $w$, we define a set of words, $X^{w}$, sorted in descending order by their PMI values with $w$ and taken the top-most $\beta$ words having $f^{\text{pmi}}(t_{i},w)>0$.
The set $X^{w}$, contains words $X_{i}^{w}$,
    $X^{w}=\{X_{i}^{w}\}$, where $i=1,2,\ldots ,\beta$ and
    $f^{\text{pmi}}(X_{1}^{w},w)\geq f^{\text{pmi}}(X_{2}^{w},w)\geq \cdots f^{\text{pmi}}(X_{\beta -1}^{w},w)\geq f^{\text{pmi}}(X_{\beta }^{w},w)$
A rule of thumb is used to choose the value of $\beta$. The $\beta$-PMI summation function of a word is defined with respect to another word. For word $w_{1}$ with respect to word $w_{2}$ it is:
    $f(w_{1},w_{2},\beta )=\sum _{i=1}^{\beta }(f^{\text{pmi}}(X_{i}^{w_{1}},w_{2}))^{\gamma }$
where $f^{\text{pmi}}(X_{i}^{w_{1}},w_{2})>0$ which sums all the positive PMI values of words in the set $X^{w_{2}}$ also common to the words in the set $X^{w_{1}}$. In other words, this function actually aggregates the positive PMI values of all the semantically close words of $w_{2}$ which are also common in $w_{1}$'s list. $\gamma$ should have a value greater than 1. So, the $\beta$-PMI summation function for word $w_{1}$ with respect to word $w_{2}$ having $\beta =\beta _{1}$ and the $\beta$-PMI summation function for word $w_{2}$ with respect to word $w_{1}$ having $\beta =\beta _{2}$ are
    $f(w_{1},w_{2},\beta _{1})=\sum _{i=1}^{\beta _{1}}(f^{\text{pmi}}(X_{i}^{w_{1}},w_{2}))^{\gamma }$
and
    $f(w_{2},w_{1},\beta _{2})=\sum _{i=1}^{\beta _{2}}(f^{\text{pmi}}(X_{i}^{w_{2}},w_{1}))^{\gamma }$
respectively.
Finally, the semantic PMI similarity function between the two words, $w_{1}$ and $w_{2}$, is defined as
    $\mathrm {Sim} (w_{1},w_{2})={\frac {f(w_{1},w_{2},\beta _{1})}{\beta _{1}}}+{\frac {f(w_{2},w_{1},\beta _{2})}{\beta _{2}}}.$
The semantic word similarity is normalized, so that it provides a similarity score between $0$ and $1$ inclusively. The normalization of semantic similarity algorithm returns a normalized score of similarity between two words. It takes as arguments the two words, $r_{i}$ and $s_{j}$, and a maximum value, $\lambda$, that is returned by the semantic similarity function, Sim. For example, the algorithm returns 0.986 for words cemetery and graveyard with $\lambda =20$ (for SOC-PMI method).