Text boundary analysis
Download
1 / 154

Text Boundary Analysis - PowerPoint PPT Presentation


  • 106 Views
  • Uploaded on

Text Boundary Analysis. Eric Mader Advisory Software Engineer IBM. Where do I break lines?. The rain in Spain stays mainly on the plain. Where do I break lines?. The rain in Spain stays mainly on the plain. 您有坦率和誠實的聲譽。. Where do I break lines?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Text Boundary Analysis' - haley


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Text boundary analysis

Text Boundary Analysis

Eric Mader

Advisory Software Engineer

IBM


Where do i break lines
Where do I break lines?

The rain in Spain stays mainly on the plain.


Where do i break lines1
Where do I break lines?

The rain in Spain stays mainly on the plain.

您有坦率和誠實的聲譽。


Where do i break lines2
Where do I break lines?

The rain in Spain stays mainly on the plain.

您有坦率和誠實的聲譽。

ด่ๅแรงฃนึ๓อัตราลูกจ้างใหม่ให้๓๕


Even in english this can be hard
Even in English, this can be hard

You owe me $1,234.56... I think.


Even in english this can be hard1
Even in English, this can be hard

You owe me $1,234.56... I think.


Word wrapping vs word selection
Word wrapping vs word selection

Word wrapping:

Some characters’ behavior is context-dependent.


Word wrapping vs word selection1
Word wrapping vs word selection

Word wrapping:

Some characters’ behavior is context-dependent.

Searching by words:

Some characters’ behavior is context-dependent.


Analysis by pairs
Analysis by pairs

second

ltr

dgt

sp

pun

ltr

dgt

first

sp

X

X

X

pun


Analysis by pairs1
Analysis by pairs

second

ltr

dgt

sp

pun

ltr

dgt

first

sp

X

X

X

pun


Analysis by pairs2
Analysis by pairs

second

ltr

dgt

sp

pun

-

ltr

dgt

first

sp

X

X

X

X

pun

X

-

X


Analysis by pairs3
Analysis by pairs

second

ltr

dgt

sp

pun

-

ltr

dgt

first

sp

X

X

X

X

pun

X

-

X


Analysis by pairs4
Analysis by pairs

second

ltr

dgt

sp

pun

-

nbs

ltr

dgt

first

sp

X

X

X

X

pun

X

-

X

nbs


Analysis by pairs5
Analysis by pairs

second

ltr

dgt

sp

pun

-

nbs

ltr

dgt

first

sp

X

X

X

X

pun

X

-

X

nbs


Analysis by pairs6
Analysis by pairs

second

ltr

dgt

sp

pun

-

nbs

kji

X

ltr

X

dgt

first

sp

X

X

X

X

X

X

pun

X

X

-

X

nbs

X

X

X

kji

X

X


Where pairs break down
Where pairs break down

A break position can depend on more than two characters:

You owe me $1,234.56... I think.


Where pairs break down1
Where pairs break down

A break position can depend on more than two characters:

You owe me $1,234.56... I think.

4.5


Where pairs break down2
Where pairs break down

A break position can depend on more than two characters:

You owe me $1,234.56... I think.

6..


Where pairs break down3
Where pairs break down

Sentence boundaries require even more lookahead:

He asked, “How tall are you?” I’m about 6 ft. tall. “Wow!”


Where pairs break down4
Where pairs break down

Sentence boundaries require even more lookahead:

He asked, “How tall are you?” I’m about 6 ft. tall. “Wow!”


Where pairs break down5
Where pairs break down

Sentence boundaries require even more lookahead:

He asked, “How tall are you?” I’m about 6 ft. tall. “Wow!”


Where pairs break down6
Where pairs break down

Sentence boundaries require even more lookahead:

He asked, “How tall are you?” I’m about 6 ft. tall. “Wow!”


Where pairs break down7
Where pairs break down

Sentence boundaries require even more lookahead:

He asked, “How tall are you?” I’m about 6 ft. tall. “Wow!”


An example
An example

  • If not otherwise mentioned, each character is a “word” unto itself.

  • A run of letters constitutes a “word” and is kept together. Certain punctuation marks may appear inside a word, but only if they have a letter on each side.

  • A run of digits constitutes a “number” and is kept together. Certain punctuation marks may appear inside a number, but only if they have a digit on each side. In addition, a number may have certain optional prefix and suffix characters.

  • If a “word” and a “number” appear in succession with nothing between them, they’re kept together.


The state machine approach
The state-machine approach

$

start

A

0

%

.


The state machine approach1
The state-machine approach

$

start

A

0

%

.


The state machine approach2
The state-machine approach

$

start

A

0

%

.


The state machine approach3
The state-machine approach

$

start

A

0

%

.


The state machine approach4
The state-machine approach

$

start

A

0

%

.


The state machine approach5
The state-machine approach

$

start

A

0

%

.


The state machine approach6
The state-machine approach

$

start

A

0

%

.


The state machine approach7
The state-machine approach

$

start

A

0

%

.


The state machine approach8
The state-machine approach

$

start

A

0

%

.


The state machine approach9
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach10
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach11
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach12
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach13
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach14
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach15
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach16
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach17
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach18
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach19
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach20
The state-machine approach

$1,234.56...

$

start

A

0

%

.


The state machine approach21
The state-machine approach

$1,234.56...

$

start

A

0

%

.


Limitations
Limitations

1992–1996


Limitations1
Limitations

1992–1996


Limitations2
Limitations

–1996


Limitations3
Limitations

1992–1996


Limitations4
Limitations

1992–1996


Limitations5
Limitations

1992–1996


Limitations6
Limitations

1992–1996


Automatic table building
Automatic table building

  • If not otherwise mentioned, each character is a “word” unto itself.

  • A run of letters constitutes a “word” and is kept together. Certain punctuation marks may appear inside a word, but only if they have a letter on each side.

  • A run of digits constitutes a “number” and is kept together. Certain punctuation marks may appear inside a number, but only if they have a digit on each side. In addition, a number may have certain optional prefix and suffix characters.

  • If a “word” and a “number” appear in succession with nothing between them, they’re kept together.


Automatic table building1
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building2
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building3
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building4
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building5
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building6
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building7
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building8
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building9
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building10
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building11
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building12
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building13
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building14
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building15
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building16
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building17
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building18
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building19
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building20
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building21
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building22
Automatic table building

let=[:L:];

dgt=[:N:];

mid-word=[[:Pd:]\”\’\.];

mid-num=[\”\’\.\,];

pre-num=[[[:Sc:]\#\.]-[¢]];

post-num=[\%\&¢];

word=({let}+({mid-word}{let}+)*);

number=({dgt}+({mid-num}{dgt}+)*);

{word}?({number}{word})*({number}{post-num}?)?;

{pre-num}({number}{word})*({number}{post-num}?)?;


Automatic table building23
Automatic table building

  • All regular-expression rules have equal precedence

  • The “winning” rule is decided using a longest-possible-match algorithm (except in certain well-defined cases)

  • Our build algorithm parses the regular expressions, builds the state table, and makes sure it’s deterministic in a single pass


Sentence break rules
Sentence-break rules

.*?{term}[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Sentence break rules1
Sentence-break rules

.*?{term}[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Sentence break rules2
Sentence-break rules

.*?{term}[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Sentence break rules3
Sentence-break rules

.*?{term}[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Sentence break rules4
Sentence-break rules

.*?{term{[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Sentence break rules5
Sentence-break rules

.*?{term}[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Sentence break rules6
Sentence-break rules

.*?{term}[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Sentence break rules7
Sentence-break rules

.*?{term}[{term}{period}{end}]*{space}*;

.*?{period}[{period}{end}]*{space}*/{start}*{sent-start};


Ignore characters
Ignore characters

$ignore=[[:Mn:][:Me:][:Cf:]];


Surrogate support
Surrogate support

kanji=[\u4e00-\u9fff\udb80-\udb83];

$ignore=[[:Mn:][:Me:][:Cf:]\udc00-\udcff];


Surrogate support1
Surrogate support

kanji=[\u4e00-\u9fff\udb80-\udb83];

$ignore=[[:Mn:][:Me:][:Cf:]\udc00-\udcff];


Surrogate support2
Surrogate support

kanji=[\u4e00-\u9fff\udb80-\udb83];

$ignore=[[:Mn:][:Me:][:Cf:]\udc00-\udcff];


Random access iteration
Random-access iteration

You owe me $1,234.56... I think.


Random access iteration1
Random-access iteration

You owe me $1,234.56... I think.


Random access iteration2
Random-access iteration

You owe me $1,234.56... I think.


Random access iteration3
Random-access iteration

You owe me $1,234.56... I think.


Random access iteration4
Random-access iteration

You owe me $1,234.56... I think.


Random access iteration5
Random-access iteration

You owe me $1,234.56... I think.


Random access iteration6
Random-access iteration

!{sent-start}{start}*{space}*{end}*{period};

![{sent-start}{lc}{digit}]{start}*{space}*{end}*{term};


Dictionary based iteration
Dictionary-based iteration

We hold these truths to be self-evident: that all men are created equal, that they are endowed by their Creator with certain unalienable rights, that among these are Life, Liberty, and the Pursuit of Happiness.


Dictionary based iteration1
Dictionary-based iteration

Weholdthesetruthstobeself-evident:thatallmenare createdequal,thattheyareendowedbytheirCreatorwith certainunalienablerights,thatamongtheseareLife, Liberty,andthePursuitofHappiness.


Dictionary based iteration2
Dictionary-based iteration

$dictionary=[A-Za-z\-\’];


Dictionary based iteration3
Dictionary-based iteration

Weholdthesetruthstobeself-evident:thatallmenare createdequal,thattheyareendowedbytheirCreatorwith certainunalienablerights,thatamongtheseareLife, Liberty,andthePursuitofHappiness.


Dictionary based iteration4
Dictionary-based iteration

Weholdthesetruthstobeself-evident:thatallmenare createdequal,thattheyareendowedbytheirCreatorwith certainunalienablerights,thatamongtheseareLife, Liberty,andthePursuitofHappiness.


Dictionary based iteration5
Dictionary-based iteration

Weholdthesetruthstobeself-evident:thatallmenare createdequal,thattheyareendowedbytheirCreatorwith certainunalienablerights,thatamongtheseareLife, Liberty,andthePursuitofHappiness.


Dictionary based iteration6
Dictionary-based iteration

themendinetonight


Dictionary based iteration7
Dictionary-based iteration

themendinetonight


Dictionary based iteration8
Dictionary-based iteration

themendinetonight


Dictionary based iteration9
Dictionary-based iteration

themendinetonight


Dictionary based iteration10
Dictionary-based iteration

themendinetonight


Dictionary based iteration11
Dictionary-based iteration

themendinetonight


Dictionary based iteration12
Dictionary-based iteration

themendinetonight


Dictionary based iteration13
Dictionary-based iteration

themendinetonight


Dictionary based iteration14
Dictionary-based iteration

themendinetonight


Dictionary based iteration15
Dictionary-based iteration

themendinetonight


Dictionary based iteration16
Dictionary-based iteration

themendinetonight


Dictionary based iteration17
Dictionary-based iteration

themendinetonight


Dictionary based iteration18
Dictionary-based iteration

themendinetonight


Dictionary based iteration19
Dictionary-based iteration

themendinetonight


Dictionary based iteration20
Dictionary-based iteration

themendinetonight


Dictionary based iteration21
Dictionary-based iteration

themendinetonight


Dictionary based iteration22
Dictionary-based iteration

themendinetonight


Dictionary based iteration23
Dictionary-based iteration

themendinetonight


Dictionary based iteration24
Dictionary-based iteration

themendinetonight


Dictionary based iteration25
Dictionary-based iteration

themendinetonight


Dictionary based iteration26
Dictionary-based iteration

themendinetonight


Dictionary based iteration27
Dictionary-based iteration

themendinetonight


Dictionary based iteration28
Dictionary-based iteration

themendinetonight


Dictionary based iteration29
Dictionary-based iteration

themendinetonight


Dictionary based iteration30
Dictionary-based iteration

themendinetonight


Dictionary based iteration31
Dictionary-based iteration

themendinetonight


Dictionary based iteration32
Dictionary-based iteration

themendinetonight


Dictionary based iteration33
Dictionary-based iteration

themendinetonight


Dictionary based iteration34
Dictionary-based iteration

themendinetonight


Dictionary based iteration35
Dictionary-based iteration

themendinetonight


Dictionary based iteration36
Dictionary-based iteration

themendinetonight


Dictionary based iteration37
Dictionary-based iteration

themendinetonight


Dictionary based iteration38
Dictionary-based iteration

themendinetonight


Dictionary based iteration39
Dictionary-based iteration

themendinetonight


Dictionary based iteration40
Dictionary-based iteration

themendinetonight


Dictionary based iteration41
Dictionary-based iteration

themendinetonight


Dictionary based iteration42
Dictionary-based iteration

themendinetonight


Dictionary based iteration43
Dictionary-based iteration

themendinetonight


Dictionary based iteration44
Dictionary-based iteration

themendinetonight


Dictionary based iteration45
Dictionary-based iteration

themendinetonight


Dictionary based iteration46
Dictionary-based iteration

themendinetonight


Dictionary based iteration47
Dictionary-based iteration

themendinetonight


Dictionary based iteration48
Dictionary-based iteration

themendinetonight


Dictionary based iteration49
Dictionary-based iteration

themendinetonight


Dictionary based iteration50
Dictionary-based iteration

themendinetonight


Dictionary based iteration51
Dictionary-based iteration

themendinetonight


Dictionary based iteration52
Dictionary-based iteration

themendinetonight


Dictionary based iteration53
Dictionary-based iteration

themendinetonight


Dictionary based iteration54
Dictionary-based iteration

themendinetonight


Dictionary based iteration55
Dictionary-based iteration

themendinetonight


Dictionary based iteration56
Dictionary-based iteration

themendinetonight


Text boundary analysis1

Text Boundary Analysis

Eric Mader

Advisory Software Engineer

IBM


ad