mikhail dubov - text analysis with enhanced annotated suffix trees: algorithms and implementation

45

Upload: aist

Post on 27-Jul-2015

67 views

Category:

Presentations & Public Speaking


0 download

TRANSCRIPT

Page 1: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Text Analysis with

Enhanced Annotated Su�x Trees

Algorithms and Implementation

Mikhail Dubov1

National Research University Higher School of Economics

Computer Science faculty, Moscow, Russia

AIST'2015

1 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 2: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

Table of Contents

1 Annotated su�x treesSu�x treesAnnotated su�x treesAST relevance score

2 AlgorithmsFrom su�x tries to su�x treesFrom su�x trees to su�x arrays

3 ImplementationPackage EASTSynonym extraction

4 LM MonitorConcept & architectureKeyphrase reference graphs

2 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 3: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

Annotated su�x trees

Letter-based method for text analysis

Annotated su�x trees: full-text index

Basic computation: relevance score of a keyphrase to thetext collection indexed by AST

Range of applications:

Text classi�cation (e.g. spam �ltering)Feature extractionKeyphrase analysis (stay tuned)

3 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 4: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

Su�x trees

Figure: Su�x tree for string �XABXAC�

Su�x tree for a string S (|S | = n) is a rooted directed treeencoding all the su�xes of that string [3]The concatenation of edge labels on every path from the root nodeto one of the leaves makes up one of the su�xes of that string, i.e.S [i . . . n].It is also required that each internal node has two or more children,and each edge is labeled with a non-empty substring of S .

4 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 5: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

Su�x trees

Various O(n) construction algorithms exist (Ukkonen, Weiner)

Establishes a linear-time solution for the exact patternmatching problem

Su�x tree is a full-text index

5 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 6: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

Annotated su�x trees

Figure: Annotated su�x tree for string �XABXAC�

Extension: node labels

Node label f (v) indicates the number of entries of thesubstring on the path from root to v in the text collection

6 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 7: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

AST relevance score

Figure: Naive AST representation (as a trie) for a collection of 3 strings

Conditional probability of a node given its parent:

p̂(v) =f (v)

f (parent(v))

7 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 8: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

AST relevance score

Relevance score computation for keyword S in text collection T(described in terms of a trie, not a tree):

For each su�x S [i . . . n] of S , try to match it against the su�xtree AST (T ), starting at the root.

If, for su�x s, we matched exactly k symbols in the tree, then

scoresuff (s) =

∑ki=1 p̂(vi )

k,

where vi is the i-th node on the matching path starting at theroot (if k = 0, then scoresuff (s) = 0).

The �nal score for keyword S is obtained as

SCORE (S) =

∑|S |i=1 scoresuff (S [i :])

|S |.

8 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 9: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

AST relevance score: Example 1

T = [“XAB“, “XAC“, “CAB“]

SCORE (“ABC“) =score(“ABC“) + score(“BC“) + score(“C“)

3=

=(0.33+ 0.67)/2+ (0.22)/1+ (0.22)/1

3= 0.31

9 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 10: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

AST relevance score: Example 2

T = [“XAB“, “XAC“, “CAB“]

SCORE (“XYZ“) =score(“XYZ“) + score(“YZ“) + score(“Z“)

3=

=(0.22)/1+ 0+ 0

3= 0.07

10 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 11: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

AST relevance score: Example 3

SCORE (“Alice“) = 0.32

SCORE (“Bob“) = 0.04

(Usually, SCORE > 0.2 is a strong evidence of relevance)

11 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 12: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Su�x treesAnnotated su�x treesAST relevance score

AST relevance score: alternatives & summary

Alternative solution: count the number of occurrences of akeyword in the text colleciton

Word-based approachRequires at least normalization, NLP involvedCan also use the Levenstein distance for more sensitivityRelevance score de�nition & interpretation is not obvious

AST Relevance score:

Letter-based, �fuzzy� approachLanguage-independent, no NLP involvedInterpretation: average conditional probability of anoccurrence of a single symbol of the input key phrase in thetext collection

12 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 13: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Table of Contents

1 Annotated su�x treesSu�x treesAnnotated su�x treesAST relevance score

2 AlgorithmsFrom su�x tries to su�x treesFrom su�x trees to su�x arrays

3 ImplementationPackage EASTSynonym extraction

4 LM MonitorConcept & architectureKeyphrase reference graphs

13 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 14: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced annotated su�x trees

In the original papers, AST was represented as a trie =⇒O(n2) time & space complexity.

Even when implemented properly with su�x trees, the ASTconstruction time & space usage still has a large hiddenconstant behind O(n).

We propose an enhanced implementation that uses su�xarrays.

14 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 15: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

From su�x tries to su�x trees

Ensure the linearity of our data structure:

Su�x trie: one node per letter, O(n2) time & space

Su�x tree: compacted edges, no chains, O(n) time & space

Figure: Su�x trie

Figure: Su�x tree

15 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 16: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

From su�x tries to su�x trees

To construct annotated su�x trees in O(n), simple preprocessing isneeded:

Algorithm LinearASTConstruction(C)Input. String collection C = {S1, . . . ,Sm}Output. Generalized annotated su�x tree for C .

1 Construct C ′ = {S1$1, . . . ,Sm$m}, where $i are uniquecharacters that do not appear in S1 . . . Sm.

2 Construct a generalized su�x tree T for collection C ′ using alinear-time algorithm (e.g. the Ukkonen algorithm).

3 for l in leaves(T )4 do set f (l)← 1

5 Run a post�x depth-�rst tree traversal on the su�x tree T .For each inner node v , set f (v)←

∑u∈children(v) f (u).

16 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 17: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

From su�x tries to su�x trees

One minor change in the su�x relevance score:

Figure: Su�x trie

scoresuff (s) =

∑ki=1 p̂(vi )

k

Figure: Su�x tree

If l is the number of symbols inthe match, then

scoresuff (s) =

∑ki=1 p̂(vi ) + l − k

l

17 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 18: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

From su�x trees to su�x arrays

Su�x array for a string S (|S | = n) is an array of n integernumbers, enumerating the n su�xes of S in lexicographicorder.

Table: Su�x array for string �XABXAC�(the su�xes are not actually stored)

i su�x array S[su�[i]:]

0 2 ABXAC

1 5 AC

2 3 BXAC

3 6 C

4 1 XABXAC

5 4 XAC

Su�x arrays are more space e�cient than su�x trees.

18 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 19: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced su�x arrays

Abouelhoda, Kurtz, & Ohlebusch [1] have shown that it ispossible to systematically replace every algorithm that usessu�x trees with another one based on su�x arrays.

Need to enhance the su�x array with two auxiliary arrays:

lcp-table for bottom-up traversalchild-table for top-down traversal

Can be implemented to take no more than 10 bytes per inputsymbol (at least 20 for su�x trees)

19 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 20: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced su�x arrays

Table: Enhanced su�x array for string �XABXAC�

i su�x array lcp-tablechild-table

S[su�[i]:]1. 2. 3.

0 1 0 1 2 ABXAC

1 4 1 AC

2 2 0 1 3 BXAC

3 5 0 4 C

4 0 0 XABXAC

5 3 2 XAC

20 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 21: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced annotated su�x arrays

We need to store annotations for su�x tree nodes

The number of nodes in a su�x tree cannot exceed (2n − 1)

After preprocessing, all the leaves will be annotated with 1, sothere is no need to store these annotations explicitly

We are left with at most (n − 1) numbers to store =⇒ canintroduce one more auxiliary array of length n(annotation-table)

21 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 22: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced annotated su�x arrays

Table: Enhanced annotated su�x array for string �XABXAC�

i su�x array lcp-tablechild-table

annotation S[su�[i]:]1. 2. 3.

0 1 0 1 2 6 ABXAC

1 4 1 2 AC

2 2 0 1 3 BXAC

3 5 0 4 C

4 0 0 XABXAC

5 3 2 2 XAC

22 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 23: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced annotated su�x arrays

Figure: Annotated su�x tree for string �XABXAC�

23 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 24: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced annotated su�x arrays

Node-to-array mapping � via virtual lcp-trees:

Can be restored from the lcp-table

Nodes correspond to the inner nodes of the su�x tree

Nodes are represented as 〈l , i , j〉: the lcp-value l and the leftand right boundaries of the lcp-interval (i , j)

For each lcp-interval v = 〈l , i , j〉 there exists a unique index,index(v) ∈ [0; n − 1], which is equal to the smallest k , suchthat k > i and lcp[k] = l . It is this mapping that we use tostore the inner node frequency annotations.

24 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 25: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced annotated su�x arrays

Algorithm LinearEASAConstruction(C)Input. String collection C = {S1, . . . ,Sm}Output. Enhanced su�x array for C with substring frequencyannotations.

1 Construct a string S = S1$1 + · · ·+ Sm$m, where $i areunique termination symbols.

2 Construct a su�x array A for string S using a linear-timealgorithm (e.g. the K�arkk�ainen-Sanders algorithm) and twoauxiliary arrays: lcp-array and child-array.

3 Simulate a post�x depth-�rst tree traversal on the su�x arrayA. At each of the virtual inner nodes, corresponding to anlcp-interval v = 〈l , i , j〉, where i < j , setannotation[index(v)] =∑

u∈children(v) annotation[index(u)] + #(〈l , i , j〉 : i = j).

25 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 26: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

From su�x tries to su�x treesFrom su�x trees to su�x arrays

Enhanced annotated su�x arrays: Experimental results

Figure: Experimental results

Implementation: Python 2.7

10x less memory � due to su�x arrays + the Numpy library

26 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 27: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Package EASTSynonym extraction

Table of Contents

1 Annotated su�x treesSu�x treesAnnotated su�x treesAST relevance score

2 AlgorithmsFrom su�x tries to su�x treesFrom su�x trees to su�x arrays

3 ImplementationPackage EASTSynonym extraction

4 LM MonitorConcept & architectureKeyphrase reference graphs

27 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 28: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Package EASTSynonym extraction

Package EAST

EAST = �Enhanced Annotated Su�x Trees�

Open-source:https://github.com/msdubov/AST-text-analysis

Registered in Python Package Index and is easy to install:

$ pip install EAST

28 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 29: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Package EASTSynonym extraction

Package EAST

Provides command-line user interface:

$ east keyphrases table <keyphrases_list.txt>

<path/to/the/text/collection/>

Can be used as a Python library:

>>> from east.asts.base import AST

>>> ast = AST.get_ast([''XAB'', ''XAC'', ''CAB''])

>>> ast.score(''ABC'')

0.3148148148148149

29 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 30: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Package EASTSynonym extraction

Synonym extraction

EAST implements one laguage-dependent feature: synonymextraction

Motivation: Relevance scores should be similar, say, for �planttaxonomy� and �plant classi�cation�, even if the latter can berarely found in the text collection.

Algorithm: distributional synonym extraction algorithm basedon that by Lin [4], which employs the so-called dependencytriples (w1, r ,w2) (idea: similar texts appear in similar

contexts)

Domain-speci�c synonyms are likely to be found with thiscontext-based approach

30 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 31: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Package EASTSynonym extraction

Synonym extraction

Dependency triples extraction is done by Yandex Tomitaparser (based on grammatical templates like �adjective +

substantive� or �verb + arverb�)

Grammar:

S -> adj_mod_of interp (Relation.adj_mod_of::...) |

adv_of interp (Relation.adv_of::norm="inf") |

adv interp (Relation.adv::norm="inf") |

...

adj_mod_of -> Adj<gnc-agr[1]> Noun<gnc-agr[1]>;

adv_of -> Adv Verb;

adv -> Verb Adv;

...

31 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 32: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Package EASTSynonym extraction

Synonym extraction

Synonyms extracted from a text collection from the �Izvestia�newspaper:

�head� (�ãëàâà�) ⇔ �CEO� (�ãåíäèðåêòîð�)�high� (�âûñîêèé�) ⇔ �low� (�íèçêèé�). . .

Low precision is not very critical: among synonimous keyphrases we chose the one that has maxw∈syn(S) SCORE (w)

To extract synonyms before computing relevance scores:

$ east -s keyphrases table <keyphrases_list.txt>

<path/to/the/text/collection/>

32 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 33: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

Table of Contents

1 Annotated su�x treesSu�x treesAnnotated su�x treesAST relevance score

2 AlgorithmsFrom su�x tries to su�x treesFrom su�x trees to su�x arrays

3 ImplementationPackage EASTSynonym extraction

4 LM MonitorConcept & architectureKeyphrase reference graphs

33 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 34: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: Concept

LM Monitor = �Latent Meaning Monitor� [2]1 Web crawling

RuNeWC: Russian Newspaper Web Corpus5 sources available now

2 Keyphrase analysis

Keyphrases are provided by the userUsing the AST relevance scores for these keyphrases, akeyphrase reference graph is builtText visualization tool

34 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 35: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: Development

1 Research group �Text analysis and visualization methods�

2 Head: Boris Mirkin (Sc.D, prof.)

3 Sta�: Bachelor/Master/PhD students

35 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 36: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: Architecture

36 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 37: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: System

37 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 38: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

Keyphrase reference graphs

Keyphrase reference graphs:

Model directed relations between keyphrases

Nodes are keyphrases

For a keyphrase A,

r ∈ [0; 1] is a relevance threshold : if SCOREAST (T )(A) > r ,then A is considered to be relevant to text T (usually r = 0.2)F (A) = {T : SCOREAST (T )(A) > r}

c ∈ [0; 1] is a con�dence threshold

For keyphrases A and B , if |F (B)∩F (A)||F (A)| ≥ c , then there is an

edge in the graph from keyphrase A to keyphrase B (usuallyc = 0.6)

A→ B is like an associative rule

38 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 39: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: Keyphrase reference graphs

39 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 40: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: Keyphrase reference graphs

40 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 41: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: Keyphrase reference graphs

Figure: Keyphrase reference graph built for Oct/Nov 2014

41 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 42: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

LM Monitor: Keyphrase reference graphs

Figure: Keyphrase reference graph built USA/France constitutions

42 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 43: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

Future work

Automated graph analysis (central nodes visualization etc.)

Temporal graph analysis (how do graphs change over time?)

Better support for synonyms

43 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 44: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

Abouelhoda, M. I. Replacing Su�x Trees with Enhanced Su�xArrays / M. I. Abouelhoda, S. Kurtz, E. Ohlebusch // Journalof Discrete Algorithms, Amsterdam: Elsevier. � 2004. � � 2. �pp. 53-86.

Dubov, M. Automatic Russian Text Processing System /M. Dubov, B. Mirkin, A. Shal // Open Systems. DBMS �2014. � v. 22 � 10 � pp. 15-17

Gus�eld, D. Algorithms on Strings, Trees, and Sequences:Computer Science and Computational Biology / D. Gus�eld. �Cambridge University Press, 1997.

Lin, D. Automatic Retrieval and Clustering of Similar Words. /D. Lin // Proceedings of the 17th International Conference onComputational Linguistics. � 1998. � pp. 768-774.

43 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees

Page 45: Mikhail Dubov - Text Analysis with Enhanced Annotated Suffix Trees: Algorithms and Implementation

Annotated su�x treesAlgorithms

ImplementationLM Monitor

Concept & architectureKeyphrase reference graphs

Mirkin, B. Method of annotated su�x tree for scoring theextent of presence of a string in text / B. Mirkin, E. Chernyak,O. Chugunova // Business-Informatics � 2012. � � 3(21). �pp. 31-41.

43 / 43 Mikhail Dubov Text Analysis with Enhanced Annotated Su�x Trees