自然语言处理 Workshop 02:BPE 算法

墨尔本大学 COMP90042 Workshop

Posted by YEY on March 11, 2020

Workshop 02 BPE 算法

在一个实验文本例子上训练 BPE 算法:

代码改编自: https://leimao.github.io/blog/Byte-Pair-Encoding/ BPE 算法: https://web.stanford.edu/~jurafsky/slp3/2.pdf (2.4.3)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import re, collections

text = "The aims for this subject is for students to develop an understanding of the main algorithms used in natural language processing, for use in a diverse range of applications including text classification, machine translation, and question answering. Topics to be covered include part-of-speech tagging, n-gram language modelling, syntactic parsing and deep learning. The programming language used is Python, see for more information on its use in the workshops, assignments and installation at home."


def get_vocab(text):
    vocab = collections.defaultdict(int)
    for word in text.strip().split():
        #注意: 这里我们用一个特殊的 token "</w>"(代替讲义中的下划线 "_")来表示一个词的结束。  

        vocab[' '.join(list(word)) + ' </w>'] += 1
    return vocab



#This function iterates through all words in the vocabulary and count pair of tokens which are next to each other.  

# EXAMPLE:  

# word = 'T h e <\w>'  

#    pairs of tokens in this word [('T', 'h'), ('h', 'e'), ('e', '<\w>')]  

# INPUT:  

#    vocab: Dict[str, int]  # The vocabulary, a counter for word frequency  

# OUTPUT:  

#    pairs: Dict[Tuple[str, str], int] # Word pairs, a counter for pair frequency


def get_stats(vocab):
    pairs = collections.defaultdict(int)
    ###
    # Your answer BEGINS HERE
    ###
    
    
    ###
    # Your answer ENDS HERE
    ###
    return pairs


"""
This function merges a given pair of tokens in all words in the vocabulary

EXAMPLE:
    word = 'T h e <\w>'
    pair = ('e', '<\w>')
    word_after_merge = 'T h e<\w>'
    
INPUT:
    pair: Tuple[str, str] # the pair of tokens need to be merged
    v_in: Dict[str, int]  # vocabulary before merge
    
OUTPUT:
    v_out: Dict[str, int] # vocabulary after merge
    
HINT:
    When merging pair ('h', 'e') for word 'Th e<\w>', the two tokens in this word 'Th' and 'e<\w>' shouldn't be merged.

""" 

def merge_vocab(pair, v_in):
    v_out = {}
    ###
    # Your answer BEGINS HERE
    ###
    
    
    ###
    # Your answer ENDS HERE
    ###
    return v_out

def get_tokens(vocab):
    tokens = collections.defaultdict(int)
    for word, freq in vocab.items():
        word_tokens = word.split()
        for token in word_tokens:
            tokens[token] += freq
    return tokens
 comment %}
这是注释
 endcomment %}

vocab = get_vocab(text)
print("Vocab =", vocab)
print('==========')
print('Tokens Before BPE')
tokens = get_tokens(vocab)
print('Tokens: {}'.format(tokens))
print('Number of tokens: {}'.format(len(tokens)))
print('==========')

#about 100 merges we start to see common words
num_merges = 100
for i in range(num_merges):
    pairs = get_stats(vocab)
    if not pairs:
        break
    best = max(pairs, key=pairs.get)
    vocab = merge_vocab(best, vocab)
    print('Iter: {}'.format(i))
    print('Best pair: {}'.format(best))
    tokens = get_tokens(vocab)
    print('Tokens: {}'.format(tokens))
    print('Number of tokens: {}'.format(len(tokens)))
    print('==========')

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
Vocab = defaultdict(<class 'int'>, {'T h e </w>': 2, 'a i m s </w>': 1, 'f o r </w>': 4, 't h i s </w>': 1, 's u b j e c t </w>': 1, 'i s </w>': 2, 's t u d e n t s </w>': 1, 't o </w>': 2, 'd e v e l o p </w>': 1, 'a n </w>': 1, 'u n d e r s t a n d i n g </w>': 1, 'o f </w>': 2, 't h e </w>': 2, 'm a i n </w>': 1, 'a l g o r i t h m s </w>': 1, 'u s e d </w>': 2, 'i n </w>': 3, 'n a t u r a l l a n g u a g e </w>': 1, 'p r o c e s s i n g , </w>': 1, 'u s e </w>': 2, 'a </w>': 1, 'd i v e r s e </w>': 1, 'r a n g e </w>': 1, 'a p p l i c a t i o n s </w>': 1, 'i n c l u d i n g </w>': 1, 't e x t </w>': 1, 'c l a s s i f i c a t i o n , </w>': 1, 'm a c h i n e </w>': 1, 't r a n s l a t i o n , </w>': 1, 'a n d </w>': 3, 'q u e s t i o n </w>': 1, 'a n s w e r i n g . </w>': 1, 'T o p i c s </w>': 1, 'b e </w>': 1, 'c o v e r e d </w>': 1, 'i n c l u d e </w>': 1, 'p a r t - o f - s p e e c h </w>': 1, 't a g g i n g , </w>': 1, 'n - g r a m </w>': 1, 'l a n g u a g e </w>': 2, 'm o d e l l i n g , </w>': 1, 's y n t a c t i c </w>': 1, 'p a r s i n g </w>': 1, 'd e e p </w>': 1, 'l e a r n i n g . </w>': 1, 'p r o g r a m m i n g </w>': 1, 'P y t h o n , </w>': 1, 's e e </w>': 1, 'm o r e </w>': 1, 'i n f o r m a t i o n </w>': 1, 'o n </w>': 1, 'i t s </w>': 1, 'w o r k s h o p s , </w>': 1, 'a s s i g n m e n t s </w>': 1, 'i n s t a l l a t i o n </w>': 1, 'a t </w>': 1, 'h o m e . </w>': 1})
==========
Tokens Before BPE
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e': 39, '</w>': 72, 'a': 38, 'i': 37, 'm': 12, 's': 34, 'f': 9, 'o': 29, 'r': 22, 't': 29, 'u': 14, 'b': 2, 'j': 1, 'c': 13, 'd': 15, 'n': 45, 'v': 3, 'l': 16, 'p': 11, 'g': 22, ',': 7, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 31
==========
Iter: 0
Best pair: ('i', 'n')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e': 39, '</w>': 72, 'a': 38, 'i': 19, 'm': 12, 's': 34, 'f': 9, 'o': 29, 'r': 22, 't': 29, 'u': 14, 'b': 2, 'j': 1, 'c': 13, 'd': 15, 'n': 27, 'v': 3, 'l': 16, 'p': 11, 'in': 18, 'g': 22, ',': 7, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 32
==========
Iter: 1
Best pair: ('e', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 38, 'i': 19, 'm': 12, 's': 34, '</w>': 56, 'f': 9, 'o': 29, 'r': 22, 't': 29, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 27, 'v': 3, 'l': 16, 'p': 11, 'in': 18, 'g': 22, ',': 7, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 33
==========
Iter: 2
Best pair: ('a', 'n')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 27, 'i': 19, 'm': 12, 's': 34, '</w>': 56, 'f': 9, 'o': 29, 'r': 22, 't': 29, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 16, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'in': 18, 'g': 22, ',': 7, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 34
==========
Iter: 3
Best pair: ('s', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 27, 'i': 19, 'm': 12, 's</w>': 10, 'f': 9, 'o': 29, 'r': 22, '</w>': 46, 't': 29, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 16, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'in': 18, 'g': 22, ',': 7, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 35
==========
Iter: 4
Best pair: ('in', 'g')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 27, 'i': 19, 'm': 12, 's</w>': 10, 'f': 9, 'o': 29, 'r': 22, '</w>': 46, 't': 29, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 16, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'ing': 9, 'in': 9, 'g': 13, ',': 7, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 36
==========
Iter: 5
Best pair: ('o', 'r')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 27, 'i': 19, 'm': 12, 's</w>': 10, 'f': 9, 'or': 8, '</w>': 46, 't': 29, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 16, 'o': 21, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'in': 9, 'g': 13, ',': 7, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 37
==========
Iter: 6
Best pair: ('o', 'n')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 27, 'i': 19, 'm': 12, 's</w>': 10, 'f': 9, 'or': 8, '</w>': 46, 't': 29, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'in': 9, 'g': 13, ',': 7, 'on': 8, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 38
==========
Iter: 7
Best pair: ('a', 't')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 20, 'i': 19, 'm': 12, 's</w>': 10, 'f': 9, 'or': 8, '</w>': 46, 't': 22, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'in': 9, 'g': 13, 'at': 7, ',': 7, 'on': 8, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 39
==========
Iter: 8
Best pair: (',', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 20, 'i': 19, 'm': 12, 's</w>': 10, 'f': 9, 'or': 8, '</w>': 39, 't': 22, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 15, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'in': 9, 'g': 13, 'at': 7, ',</w>': 7, 'on': 8, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 39
==========
Iter: 9
Best pair: ('d', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 20, 'i': 19, 'm': 12, 's</w>': 10, 'f': 9, 'or': 8, '</w>': 33, 't': 22, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 9, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'in': 9, 'g': 13, 'd</w>': 6, 'at': 7, ',</w>': 7, 'on': 8, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'k': 1})
Number of tokens: 40
==========
Iter: 10
Best pair: ('i', 'on')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'f': 9, 'or': 8, '</w>': 33, 't': 22, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 9, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'in': 9, 'g': 13, 'd</w>': 6, 'at': 7, ',</w>': 7, 'ion': 6, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'k': 1})
Number of tokens: 41
==========
Iter: 11
Best pair: ('f', 'or')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 11, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for': 5, '</w>': 33, 't': 22, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 'd': 9, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'f': 4, 'in': 9, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 7, ',</w>': 7, 'ion': 6, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'k': 1})
Number of tokens: 42
==========
Iter: 12
Best pair: ('t', 'h')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for': 5, '</w>': 33, 'th': 5, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 23, 'c': 13, 't': 17, 'd': 9, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'ing': 9, 'f': 4, 'in': 9, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 7, ',</w>': 7, 'ion': 6, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'k': 1})
Number of tokens: 43
==========
Iter: 13
Best pair: ('d', 'e')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for': 5, '</w>': 33, 'th': 5, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 17, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'd': 4, 'ing': 9, 'f': 4, 'in': 9, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 7, ',</w>': 7, 'ion': 6, 'x': 1, 'q': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'k': 1})
Number of tokens: 44
==========
Iter: 14
Best pair: ('at', 'ion')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for': 5, '</w>': 33, 'th': 5, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 17, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'd': 4, 'ing': 9, 'f': 4, 'in': 9, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 2, ',</w>': 7, 'ation': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'k': 1})
Number of tokens: 45
==========
Iter: 15
Best pair: ('for', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 24, 'u': 14, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 17, '</w>': 29, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'd': 4, 'ing': 9, 'f': 4, 'in': 9, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 2, ',</w>': 7, 'ation': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 46
==========
Iter: 16
Best pair: ('s', 't')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 20, 'u': 14, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 13, '</w>': 29, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'd': 4, 'ing': 9, 'f': 4, 'in': 9, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 2, ',</w>': 7, 'ation': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 47
==========
Iter: 17
Best pair: ('ing', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 20, 'u': 14, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 13, '</w>': 25, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in': 9, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 2, 'ing': 5, ',</w>': 7, 'ation': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 48
==========
Iter: 18
Best pair: ('in', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 20, 'u': 14, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 13, '</w>': 21, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 13, 'or': 3, 'd</w>': 6, 'at': 2, 'ing': 5, ',</w>': 7, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 49
==========
Iter: 19
Best pair: ('u', 's')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 13, '</w>': 21, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 11, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 13, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ing': 5, ',</w>': 7, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 50
==========
Iter: 20
Best pair: ('an', 'g')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 20, 'i': 13, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 13, '</w>': 21, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 7, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 9, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ing': 5, ',</w>': 7, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 51
==========
Iter: 21
Best pair: ('a', 'g')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 16, 'i': 13, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 18, 'c': 13, 't': 13, '</w>': 21, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 7, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'ing': 5, ',</w>': 7, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 52
==========
Iter: 22
Best pair: ('i', 'c')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 16, 'i': 9, 'm': 12, 's</w>': 10, 'for</w>': 4, 'th': 5, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 18, 'c': 9, 't': 13, '</w>': 21, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 7, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 53
==========
Iter: 23
Best pair: ('i', 's</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 16, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 18, 'c': 9, 't': 13, '</w>': 21, 'st': 4, 'de': 5, 'n': 8, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 7, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 54
==========
Iter: 24
Best pair: ('n', 't')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 16, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 18, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 13, 'v': 3, 'l': 16, 'p': 11, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 55
==========
Iter: 25
Best pair: ('v', 'e')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 16, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 15, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 13, 've': 3, 'l': 16, 'p': 11, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 55
==========
Iter: 26
Best pair: ('o', 'p')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 16, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 15, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 10, 've': 3, 'l': 16, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'f': 4, 'in</w>': 4, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'p': 8, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 56
==========
Iter: 27
Best pair: ('o', 'f')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 16, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 15, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 16, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'p': 8, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 57
==========
Iter: 28
Best pair: ('a', 'l')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 15, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 13, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'd</w>': 6, 'at': 2, 'ang': 4, 'ag': 4, 'p': 8, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 58
==========
Iter: 29
Best pair: ('e', 'd</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 12, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 13, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'ang': 4, 'ag': 4, 'p': 8, 'ing': 5, ',</w>': 7, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 59
==========
Iter: 30
Best pair: ('l', 'ang')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 10, 'b': 2, 'j': 1, 'e': 12, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 10, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'lang': 3, 'ag': 4, 'p': 8, 'ing': 5, ',</w>': 7, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 60
==========
Iter: 31
Best pair: ('lang', 'u')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 10, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'langu': 3, 'ag': 4, 'p': 8, 'ing': 5, ',</w>': 7, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 60
==========
Iter: 32
Best pair: ('langu', 'ag')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 16, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 10, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'languag': 3, 'p': 8, 'ing': 5, ',</w>': 7, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 60
==========
Iter: 33
Best pair: ('languag', 'e</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 13, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 16, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 10, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ing': 5, ',</w>': 7, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 60
==========
Iter: 34
Best pair: ('s', 's')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 13, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 10, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing': 5, ',</w>': 7, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, '.': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 61
==========
Iter: 35
Best pair: ('ing', ',</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 13, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 9, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 10, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'x': 1, 'f': 1, ',</w>': 4, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 62
==========
Iter: 36
Best pair: ('c', 'l')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 13, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 6, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 7, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'd</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 63
==========
Iter: 37
Best pair: ('an', 'd</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 13, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 6, 't': 10, '</w>': 21, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 63
==========
Iter: 38
Best pair: ('.', '</w>')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 13, 'a': 13, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 6, 't': 10, '</w>': 18, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 14, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 63
==========
Iter: 39
Best pair: ('a', 'r')
Tokens: defaultdict(<class 'int'>, {'T': 3, 'h': 6, 'e</w>': 13, 'a': 10, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 6, 't': 10, '</w>': 18, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 64
==========
Iter: 40
Best pair: ('T', 'h')
Tokens: defaultdict(<class 'int'>, {'Th': 2, 'e</w>': 13, 'a': 10, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 6, 't': 10, '</w>': 18, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 65
==========
Iter: 41
Best pair: ('Th', 'e</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'm': 12, 's</w>': 7, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 6, 't': 10, '</w>': 18, 'st': 4, 'de': 5, 'nt': 3, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'e</w>': 11, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 65
==========
Iter: 42
Best pair: ('m', 's</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'e': 12, 'c': 6, 't': 10, '</w>': 18, 'st': 4, 'de': 5, 'nt': 3, 's</w>': 5, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 66
==========
Iter: 43
Best pair: ('e', 'c')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't': 10, '</w>': 18, 'st': 4, 'de': 5, 'nt': 3, 's</w>': 5, 'o': 7, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 67
==========
Iter: 44
Best pair: ('t', '</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nt': 3, 's</w>': 5, 't': 8, 'o': 7, '</w>': 16, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 68
==========
Iter: 45
Best pair: ('nt', 's</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 't': 8, 'o': 7, '</w>': 16, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'nt': 1, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 69
==========
Iter: 46
Best pair: ('t', 'o')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to': 2, '</w>': 16, 've': 3, 'l': 7, 'op': 3, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'nt': 1, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 70
==========
Iter: 47
Best pair: ('to', '</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 14, 'an': 4, 'n': 5, 'r': 11, 'd': 4, 'ing</w>': 4, 'of': 3, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'nt': 1, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 70
==========
Iter: 48
Best pair: ('d', 'ing</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 14, 'an': 4, 'n': 5, 'r': 11, 'ding</w>': 2, 'of': 3, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'd': 2, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'ag': 1, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 71
==========
Iter: 49
Best pair: ('of', '</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 5, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 11, 'ding</w>': 2, 'of</w>': 2, 'e</w>': 11, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'd': 2, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 72
==========
Iter: 50
Best pair: ('th', 'e</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 10, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 11, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'm': 10, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'e</w>': 9, 'd': 2, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 73
==========
Iter: 51
Best pair: ('m', 'a')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 11, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'us': 4, 'ed</w>': 3, 'at': 2, 'language</w>': 3, 'p': 8, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'e</w>': 9, 'd': 2, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 74
==========
Iter: 52
Best pair: ('us', 'ed</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 11, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'p': 8, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'us': 2, 'e</w>': 9, 'd': 2, 'ang': 1, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 75
==========
Iter: 53
Best pair: ('p', 'r')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 9, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pr': 2, 'o': 5, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'us': 2, 'e</w>': 9, 'd': 2, 'ang': 1, 'p': 6, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 76
==========
Iter: 54
Best pair: ('pr', 'o')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 9, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'us': 2, 'e</w>': 9, 'd': 2, 'ang': 1, 'p': 6, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 76
==========
Iter: 55
Best pair: ('us', 'e</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 3, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 9, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 76
==========
Iter: 56
Best pair: ('ve', 'r')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ic': 4, 'ation': 5, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 77
==========
Iter: 57
Best pair: ('ic', 'ation')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'in': 5, 'cl': 3, 't': 6, 'x': 1, 'f': 1, ',</w>': 4, 'h': 4, 'ation': 3, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 78
==========
Iter: 58
Best pair: ('in', 'cl')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 7, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'incl': 2, 't': 6, 'x': 1, 'cl': 1, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ation': 3, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 79
==========
Iter: 59
Best pair: ('incl', 'u')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 8, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 3, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ation': 3, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 79
==========
Iter: 60
Best pair: ('a', 'ss')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 6, 'i': 6, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'ass': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ation': 3, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 80
==========
Iter: 61
Best pair: ('ass', 'i')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 6, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 10, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 7, 'op': 3, '</w>': 12, 'an': 4, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ation': 3, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 80
==========
Iter: 62
Best pair: ('an', 's')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 6, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 7, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'ation': 3, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'k': 1})
Number of tokens: 81
==========
Iter: 63
Best pair: ('l', 'ation')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 6, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing': 2, '.</w>': 3, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1})
Number of tokens: 82
==========
Iter: 64
Best pair: ('ing', '.</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 6, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 6, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'ar': 3, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, '.</w>': 1})
Number of tokens: 82
==========
Iter: 65
Best pair: ('p', 'ar')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 6, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 7, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 5, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, '.</w>': 1})
Number of tokens: 83
==========
Iter: 66
Best pair: ('g', 'r')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 6, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gr': 2, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, '.</w>': 1})
Number of tokens: 84
==========
Iter: 67
Best pair: ('gr', 'a')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 4, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gra': 2, 'm': 8, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, '.</w>': 1})
Number of tokens: 84
==========
Iter: 68
Best pair: ('gra', 'm')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 4, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 10, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 6, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, '.</w>': 1})
Number of tokens: 84
==========
Iter: 69
Best pair: ('m', 'e')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'a': 4, 'i': 4, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 85
==========
Iter: 70
Best pair: ('a', 'i')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'ai': 1, 'ms</w>': 2, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 86
==========
Iter: 71
Best pair: ('ai', 'ms</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'th': 3, 'is</w>': 3, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 86
==========
Iter: 72
Best pair: ('th', 'is</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 's': 8, 'u': 5, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'is</w>': 2, 'st': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 87
==========
Iter: 73
Best pair: ('s', 'u')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'su': 1, 'b': 2, 'j': 1, 'ec': 2, 't</w>': 2, 'is</w>': 2, 'st': 4, 'u': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 88
==========
Iter: 74
Best pair: ('su', 'b')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'sub': 1, 'j': 1, 'ec': 2, 't</w>': 2, 'is</w>': 2, 'st': 4, 'u': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 88
==========
Iter: 75
Best pair: ('sub', 'j')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subj': 1, 'ec': 2, 't</w>': 2, 'is</w>': 2, 'st': 4, 'u': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 87
==========
Iter: 76
Best pair: ('subj', 'ec')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subjec': 1, 't</w>': 2, 'is</w>': 2, 'st': 4, 'u': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 87
==========
Iter: 77
Best pair: ('subjec', 't</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'st': 4, 'u': 4, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'n': 5, 'r': 5, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 87
==========
Iter: 78
Best pair: ('st', 'u')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'stu': 1, 'de': 5, 'nts</w>': 2, 'to</w>': 2, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'u': 3, 'n': 5, 'r': 5, 'st': 3, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 88
==========
Iter: 79
Best pair: ('stu', 'de')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'stude': 1, 'nts</w>': 2, 'to</w>': 2, 'de': 4, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'u': 3, 'n': 5, 'r': 5, 'st': 3, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, '.</w>': 1})
Number of tokens: 88
==========
Iter: 80
Best pair: ('stude', 'nts</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'de': 4, 've': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'u': 3, 'n': 5, 'r': 5, 'st': 3, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 88
==========
Iter: 81
Best pair: ('de', 've')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'deve': 1, 'l': 5, 'op': 3, '</w>': 12, 'an': 2, 'u': 3, 'n': 5, 'de': 3, 'r': 5, 'st': 3, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 88
==========
Iter: 82
Best pair: ('deve', 'l')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'devel': 1, 'op': 3, '</w>': 12, 'an': 2, 'u': 3, 'n': 5, 'de': 3, 'r': 5, 'st': 3, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 88
==========
Iter: 83
Best pair: ('devel', 'op')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop': 1, '</w>': 12, 'an': 2, 'u': 3, 'n': 5, 'de': 3, 'r': 5, 'st': 3, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 88
==========
Iter: 84
Best pair: ('develop', '</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an': 2, '</w>': 11, 'u': 3, 'n': 5, 'de': 3, 'r': 5, 'st': 3, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 88
==========
Iter: 85
Best pair: ('an', '</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'u': 3, 'n': 5, 'de': 3, 'r': 5, 'st': 3, 'an': 1, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'at': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 89
==========
Iter: 86
Best pair: ('u', 'n')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'un': 1, 'de': 3, 'r': 5, 'st': 3, 'an': 1, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'n': 4, 'at': 2, 'u': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 90
==========
Iter: 87
Best pair: ('un', 'de')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'unde': 1, 'r': 5, 'st': 3, 'an': 1, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'n': 4, 'at': 2, 'u': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 90
==========
Iter: 88
Best pair: ('unde', 'r')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'under': 1, 'st': 3, 'an': 1, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 90
==========
Iter: 89
Best pair: ('under', 'st')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'underst': 1, 'an': 1, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 90
==========
Iter: 90
Best pair: ('underst', 'an')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understan': 1, 'ding</w>': 2, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 89
==========
Iter: 91
Best pair: ('understan', 'ding</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'ma': 2, 'in</w>': 4, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 89
==========
Iter: 92
Best pair: ('ma', 'in</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'al': 3, 'g': 3, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 90
==========
Iter: 93
Best pair: ('al', 'g')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'alg': 1, 'or': 3, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'al': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'g': 2, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 91
==========
Iter: 94
Best pair: ('alg', 'or')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'algor': 1, 'i': 3, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'al': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'g': 2, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'or': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 91
==========
Iter: 95
Best pair: ('algor', 'i')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'algori': 1, 'th': 2, 'ms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'al': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'i': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'g': 2, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'on': 2, 'or': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 91
==========
Iter: 96
Best pair: ('algori', 'th')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'algorith': 1, 'ms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'al': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'i': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'g': 2, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'th': 1, 'on': 2, 'or': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 91
==========
Iter: 97
Best pair: ('algorith', 'ms</w>')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'algorithms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'n': 4, 'at': 2, 'u': 2, 'r': 4, 'al': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'i': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'g': 2, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'th': 1, 'on': 2, 'or': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, '.</w>': 1})
Number of tokens: 90
==========
Iter: 98
Best pair: ('n', 'at')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'algorithms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'nat': 1, 'u': 2, 'r': 4, 'al': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'i': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'g': 2, 'n': 3, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'th': 1, 'on': 2, 'or': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, 'at': 1, '.</w>': 1})
Number of tokens: 91
==========
Iter: 99
Best pair: ('nat', 'u')
Tokens: defaultdict(<class 'int'>, {'The</w>': 2, 'aims</w>': 1, 'for</w>': 4, 'this</w>': 1, 'subject</w>': 1, 'is</w>': 2, 'students</w>': 1, 'to</w>': 2, 'develop</w>': 1, 'an</w>': 1, 'understanding</w>': 1, 'of</w>': 2, 'the</w>': 2, 'main</w>': 1, 'algorithms</w>': 1, 'used</w>': 2, 'in</w>': 3, 'natu': 1, 'r': 4, 'al': 2, 'language</w>': 3, 'pro': 2, 'c': 4, 'e': 8, 'ss': 1, 'ing,</w>': 3, 'use</w>': 2, 'a': 3, '</w>': 10, 'd': 2, 'i': 2, 'ver': 2, 's': 7, 'e</w>': 7, 'ang': 1, 'p': 4, 'l': 4, 'ication': 2, 's</w>': 3, 'inclu': 2, 'ding</w>': 1, 't': 6, 'x': 1, 't</w>': 1, 'cl': 1, 'assi': 2, 'f': 1, ',</w>': 4, 'ma': 1, 'h': 4, 'in': 3, 'ans': 2, 'lation': 2, 'and</w>': 3, 'q': 1, 'u': 1, 'st': 2, 'ion': 1, 'w': 2, 'ing.</w>': 2, 'T': 1, 'op': 2, 'ic': 2, 'b': 1, 'o': 3, 'ed</w>': 1, 'par': 2, '-': 3, 'of': 1, 'ec': 1, 'ag': 1, 'g': 2, 'n': 3, 'gram': 2, 'm': 4, 'de': 2, 'y': 2, 'nt': 1, 'ing</w>': 2, 'ar': 1, 'P': 1, 'th': 1, 'on': 2, 'or': 2, 'for': 1, 'ation': 1, 'k': 1, 'me': 2, 'nts</w>': 1, 'at': 1, '.</w>': 1})
Number of tokens: 91
==========

After training, used the BPE dictionaries to tokenise sentences

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
def get_tokens_from_vocab(vocab):
    tokens_frequencies = collections.defaultdict(int)
    vocab_tokenization = {}
    for word, freq in vocab.items():
        word_tokens = word.split()
        for token in word_tokens:
            tokens_frequencies[token] += freq
        vocab_tokenization[''.join(word_tokens)] = word_tokens
    return tokens_frequencies, vocab_tokenization

def measure_token_length(token):
    if token[-4:] == '</w>':
        return len(token[:-4]) + 1
    else:
        return len(token)
    
def tokenize_word(string, sorted_tokens, unknown_token='</u>'):
    
    if string == '':
        return []
    if sorted_tokens == []:
        return [unknown_token]

    string_tokens = []
    # iterate over all tokens to find match
    for i in range(len(sorted_tokens)):
        token = sorted_tokens[i]
        token_reg = re.escape(token.replace('.', '[.]'))
        matched_positions = [(m.start(0), m.end(0)) for m in re.finditer(token_reg, string)]
        # if no match found in the string, go to next token
        if len(matched_positions) == 0:
            continue
        # collect end position of matches in the string
        substring_end_positions = [matched_position[0] for matched_position in matched_positions]
        substring_start_position = 0
        for substring_end_position in substring_end_positions:
            # slice for sub-word
            substring = string[substring_start_position:substring_end_position]
            # tokenize this sub-word with tokens remaining
            string_tokens += tokenize_word(string=substring, sorted_tokens=sorted_tokens[i+1:], unknown_token=unknown_token)
            string_tokens += [token]
            substring_start_position = substring_end_position + len(token)
        # tokenize the remaining string
        remaining_substring = string[substring_start_position:]
        string_tokens += tokenize_word(string=remaining_substring, sorted_tokens=sorted_tokens[i+1:], unknown_token=unknown_token)
        break
    return string_tokens

"""
This function generates a list of all tokens sorted by their length (1st key) and frequency (2nd key).

EXAMPLE:
    token frequency dictionary before sorting: {'natural': 3, 'language':2, 'processing': 4, 'lecture': 4}
    sorted tokens: ['processing', 'language', 'lecture', 'natural']
    
INPUT:
    token_frequencies: Dict[str, int] # Counter for token frequency
    
OUTPUT:
    sorted_token: List[str] # Tokens sorted by length and frequency

"""
def sort_tokens(tokens_frequencies):
    ###
    # Your answer BEGINS HERE
    ###
    
    
    ###
    # Your answer ENDS HERE
    ###
    return sorted_tokens

#display the vocab
tokens_frequencies, vocab_tokenization = get_tokens_from_vocab(vocab)
#sort tokens by length and frequency
sorted_tokens = sort_tokens(tokens_frequencies)
print("Tokens =", sorted_tokens, "\n")

sentence_1 = 'I like natural language processing!'
sentence_2 = 'I like natural languaaage processing!'
sentence_list = [sentence_1, sentence_2]

for sentence in sentence_list:
    
    print('==========')
    print("Sentence =", sentence)
    
    for word in sentence.split():
        word = word + "</w>"

        print('Tokenizing word: {}...'.format(word))
        if word in vocab_tokenization:
            print(vocab_tokenization[word])
        else:
            print(tokenize_word(string=word, sorted_tokens=sorted_tokens, unknown_token='</u>'))

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Tokens = ['understanding</w>', 'algorithms</w>', 'language</w>', 'students</w>', 'subject</w>', 'develop</w>', 'ication', 'lation', 'ing,</w>', 'used</w>', 'inclu', 'ing.</w>', 'aims</w>', 'this</w>', 'main</w>', 'ding</w>', 'ation', 'for</w>', 'and</w>', 'The</w>', 'the</w>', 'use</w>', 'assi', 'gram', 'ing</w>', 'natu', 'nts</w>', 'in</w>', 'is</w>', 'to</w>', 'of</w>', 'pro', 'ver', 'ans', 'par', 'an</w>', 'ang', 'ion', 'ed</w>', 'for', 'e</w>', ',</w>', 's</w>', 'in', 'al', 'st', 'op', 'ic', 'de', 'on', 'or', 'me', 'ss', 't</w>', 'cl', 'ma', 'of', 'ec', 'ag', 'nt', 'ar', 'th', 'at', '.</w>', '</w>', 'e', 's', 't', 'r', 'c', 'p', 'l', 'h', 'm', 'a', 'o', '-', 'n', 'd', 'i', 'w', 'g', 'y', 'x', 'f', 'q', 'u', 'T', 'b', 'P', 'k'] 

==========
Sentence = I like natural language processing!
Tokenizing word: I</w>...
['</w>']
Tokenizing word: like</w>...
['l', 'i', 'k', 'e</w>']
Tokenizing word: natural</w>...
['natu', 'r', 'al', '</w>']
Tokenizing word: language</w>...
['language</w>']
Tokenizing word: processing!</w>...
['pro', 'c', 'e', 'ss', 'in', 'g', '</w>']
==========
Sentence = I like natural languaaage processing!
Tokenizing word: I</w>...
['</w>']
Tokenizing word: like</w>...
['l', 'i', 'k', 'e</w>']
Tokenizing word: natural</w>...
['natu', 'r', 'al', '</w>']
Tokenizing word: languaaage</w>...
['l', 'ang', 'u', 'a', 'a', 'ag', 'e</w>']
Tokenizing word: processing!</w>...
['pro', 'c', 'e', 'ss', 'in', 'g', '</w>']
知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 欢迎转载,并请注明来自:YEY 的博客 同时保持文章内容的完整和以上声明信息!