2 # -*- coding: utf-8 -*-
\r
3 # Japanese text processor test module
\r
4 # by Takuya Nishimoto
\r
6 from __future__ import unicode_literals
\r
9 from glob import glob
\r
10 jt_dir = os.path.normpath(
\r
11 os.path.join(os.getcwdu(), '..', 'source', 'synthDrivers', 'jtalk')
\r
13 sys.path.append(jt_dir)
\r
15 from mecabHarness import tasks
\r
18 dic = os.path.join(jt_dir, 'dic')
\r
19 user_dics_org = jtalkDir.user_dics_org
\r
20 user_dics = jtalkDir.user_dics
\r
23 print s.encode('utf-8', 'ignore')
\r
27 def __print_dummy(s):
\r
31 def Mecab_get_reading(mf, CODE_=CODE):
\r
34 for pos in xrange(0, mf.size):
\r
35 ar = Mecab_getFeature(mf, pos, CODE_=CODE_).split(',')
\r
38 rd = ar[9].replace('\u3000', ' ')
\r
43 braille += ar[12] + r"/"
\r
45 braille += rd + r"/"
\r
46 return (reading, braille.rstrip(r" /"))
\r
48 def get_reading(msg):
\r
50 mf = MecabFeatures()
\r
51 Mecab_analysis(s, mf)
\r
52 Mecab_correctFeatures(mf)
\r
53 Mecab_print(mf, __print_dummy)
\r
54 reading = Mecab_get_reading(mf)
\r
58 def runTasks(enableUserDic=False):
\r
60 print jt_dir, dic, user_dics
\r
61 Mecab_initialize(__print, jt_dir, dic, user_dics)
\r
64 Mecab_initialize(__print, jt_dir, dic)
\r
67 if isinstance(i, dict):
\r
70 item = [ i['text'], i['speech'], i['braille'] ]
\r
72 s = i['braille'].replace(' ', '').replace('/', '')
\r
73 item = [ i['text'], s, i['braille'] ]
\r
76 item = [ i['text'], i['speech'], i['input'] ]
\r
78 s = i['input'].replace(' ', '').replace('/', '')
\r
79 item = [ i['text'], s, i['input'] ]
\r
81 item = [ i['text'], i['speech'] ]
\r
85 result = get_reading(item[0])
\r
86 if item[1] is not None and result[0] != item[1]:
\r
90 __print('input: ' + item[0])
\r
91 __print('reading expected: ' + item[1])
\r
92 __print('reading result: ' + result[0])
\r
94 if len(item) > 2 and result[1] != item[2]:
\r
98 __print('input: ' + item[0])
\r
99 __print('braille expected: ' + item[2])
\r
100 __print('braille result: ' + result[1])
\r
105 if __name__ == '__main__':
\r
106 runTasks(enableUserDic=True)
\r