Beispiel #1
0
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))
Beispiel #2
0
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))
Beispiel #3
0
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)