-
Notifications
You must be signed in to change notification settings - Fork 0
/
demo.py
59 lines (52 loc) · 2.96 KB
/
demo.py
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
import eoparser
from termcolor import colored
parser = eoparser.eoparser()
# Workaround: invoking empty commands on Windows triggers the default console to start processing VT100
# codes. Not sure why. But it works. heh
# ref: https://stackoverflow.com/questions/51091680/activating-vt100-via-os-system
import os
import platform
if platform.system() == "Windows":
os.system("")
txt = """
Esperanto, origine la Lingvo Internacia, estas la plej disvastiĝinta internacia planlingvo. En 1887 Esperanton parolis nur manpleno da homoj; Esperanto havis unu el la plej malgrandaj
lingvo-komunumoj de la mondo. Ĝi funkciis dekomence kiel lingvo de alternativa komunikado kaj de arta kreipovo. En 2012, la lingvo fariĝis la 64-a tradukebla per Google Translate; En
2016, la lingvo fariĝis tradukebla per Yandex Translate; laŭ 2016, Esperanto aperis en listoj de lingvoj plej lernataj kaj konataj en Hungarujo. La nomo de la lingvo venas de la
kaŝnomo “D-ro Esperanto„ sub kiu la juda kuracisto Ludoviko Lazaro Zamenhofo en la jaro 1887 publikigis la bazon de la lingvo. La unua versio, la rusa, ricevis la cenzuran permeson
disvastiĝi en la 26-a de julio; ĉi tiun daton oni konsideras la naskiĝtago de Esperanto. Li celis kaj sukcesis krei facile lerneblan neŭtralan lingvon, taŭgan por uzo en la internacia
komunikado; la celo tamen ne estas anstataŭigi aliajn, naciajn lingvojn.
"""
word = ''
for ch in txt+' ':
if eoparser.to_lower(ch) in 'abcdefghijklmnopurstuvwxyzĉĝĥĵŝŭ':
word += ch
continue
else:
if len(word) == 0:
print(colored(ch, 'white'), end='')
continue
try:
decompostion = parser.parse(word, keep_ending_marker=True)
assert(type(decompostion) is list)
root_count = 0
idx = 0
for particle, particle_type in decompostion:
color = ''
if particle_type == 'prefix':
color = 'green'
elif particle_type == 'root':
color = 'blue' if root_count%2==0 else 'cyan'
root_count += 1
elif particle_type == 'suffix':
color = 'yellow'
elif particle_type == 'word':
color = 'magenta'
elif particle_type == 'pos_marker':
color = 'white'
print(colored(word[idx:idx+len(particle)], color), end='')
idx += len(particle)
except:
print(colored(word, 'red'), end='')
word = ''
print(colored(ch, 'white'), end='')
print()