def wenyan(): userlog = get_wy_db() tinput = flask.request.values.get('input', '') formgetlang = flask.request.values.get('lang') displaylang = flask.request.values.get('dl') if formgetlang == 'c2m': lang = 'c2m' elif formgetlang == 'm2c': lang = 'm2c' else: # == auto cscore, mscore = calctxtstat(tinput) if cscore == mscore: lang = None elif checktxttype(cscore, mscore) == 'c': lang = 'c2m' else: lang = 'm2c' ip = flask.request.remote_addr accepttw = flask.g.get('accepttw') L = (lambda x: zhconv(x, 'zh-tw')) if accepttw else (lambda x: x) origcnt = userlog.count(ip) count = 0 valid = wy_validate(ip, origcnt, userlog) talign = flask.Markup('[]') if valid == 1: origcnt = 0 userlog.delete(ip) elif valid == 0: logging.warning('Captcha failed: %s' % ip) if not tinput: toutput = '' elif valid == 0: toutput = flask.Markup(L('<p class="error">回答错误,请重试。</p>')) elif lang is None: toutput = linebreak(tinput) elif len(tinput) > MAX_CHAR * (CHAR_RATIO if lang == 'c2m' else 1): toutput = flask.Markup(L('<p class="error">文本过长,请切分后提交。</p>')) else: tinput, tres, count = mosesproxy.translate(tinput, lang, True, True, True) toutput, talign = translateresult(tres, L) userlog.add(ip, count) userlog.commit() captcha = '' if origcnt + count > userlog.maxcnt: captcha = L(wy_gencaptcha()) return flask.render_template( ('translate_zhtw.html' if accepttw else 'translate.html'), tinput=tinput, toutput=toutput, talign=talign, captcha=flask.Markup(captcha))
def wenyan(): userlog = get_wy_db() tinput = flask.request.values.get('input', '') formgetlang = flask.request.values.get('lang') displaylang = flask.request.values.get('dl') if formgetlang == 'c2m': lang = 'c2m' elif formgetlang == 'm2c': lang = 'm2c' else: # == auto cscore, mscore = calctxtstat(tinput) if cscore == mscore: lang = None elif checktxttype(cscore, mscore) == 'c': lang = 'c2m' else: lang = 'm2c' ip = flask.request.remote_addr accepttw = flask.g.get('accepttw') L = (lambda x: zhconv(x, 'zh-tw')) if accepttw else (lambda x: x) origcnt = userlog.count(ip) count = 0 valid = wy_validate(ip, origcnt, userlog) talign = flask.Markup('[]') if valid == 1: origcnt = 0 userlog.delete(ip) elif valid == 0: logging.warning('Captcha failed: %s' % ip) if not tinput: toutput = '' elif valid == 0: toutput = L('<p class="error">回答错误,请重试。</p>') elif lang is None: toutput = linebreak(tinput) elif len(tinput) > MAX_CHAR * (CHAR_RATIO if lang == 'c2m' else 1): toutput = L('<p class="error">文本过长,请切分后提交。</p>') else: tinput, tres, count = mosesproxy.translate( tinput, lang, True, True, True) toutput, talign = translateresult(tres, L) userlog.add(ip, count) captcha = '' if origcnt + count > userlog.maxcnt: captcha = L(wy_gencaptcha()) return flask.render_template(('translate_zhtw.html' if accepttw else 'translate.html'), tinput=tinput, toutput=toutput, talign=talign, captcha=flask.Markup(captcha))
import sys import time import itertools import statistics import mosesproxy data = [] mode = sys.argv[1] while True: next_n_lines = ''.join(itertools.islice(sys.stdin, 100)) if not next_n_lines: break timerec = time.time() try: mosesproxy.translate(next_n_lines, mode) except KeyboardInterrupt: break data.append((time.time() - timerec) / len(next_n_lines)) dmax = max(data) dmin = min(data) mean = statistics.mean(data) try: mode = statistics.mode(data) except statistics.StatisticsError: mode = 0 median = statistics.median(data) stdv = statistics.pstdev(data, mean) print("dmax,dmin,mean,mode,median,stdv") print(dmax, dmin, mean, mode, median, stdv)