Text boundary analysis
This presentation is the property of its rightful owner.
Sponsored Links
1 / 154

Text Boundary Analysis PowerPoint PPT Presentation


  • 57 Views
  • Uploaded on
  • Presentation posted in: General

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?.

Download Presentation

Text Boundary Analysis

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


  • Login