• php 使用 python translate 实现离线翻译


    下载类库

    下载语言模型

    使用

    1. 脚本 offline_translation.py
    # 离线翻译服务代码
    import warnings
    
    from flask import Flask, request
    from gevent import pywsgi
    from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline, AutoModelWithLMHead
    from transformers import pipeline
    
    warnings.filterwarnings('ignore')
    
    try:
        print('正在加载【汉语-英语】翻译模型... ...')
        # tokenizer = AutoTokenizer.from_pretrained('Helsinki-NLP/opus-mt-zh-en')
        # model = AutoModelWithLMHead.from_pretrained('Helsinki-NLP/opus-mt-zh-en')
        tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-zh-en")
        model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-zh-en")
        translation = pipeline('translation_zh_to_en', model=model, tokenizer=tokenizer)
        # print('正在加载【英语-汉语】翻译模型... ...')
        # model_en2zh = AutoModelWithLMHead.from_pretrained('Helsinki-NLP/opus-mt-en-zh')
        # tokenizer_en2zh = AutoTokenizer.from_pretrained('Helsinki-NLP/opus-mt-en-zh')
        # translation_en2zh = pipeline('translation_en_to_zh', model=model_en2zh, tokenizer=tokenizer_en2zh)
    
        app = Flask(__name__)
    
    
        @app.route('/wesky-translater', methods=['POST'])
        def translate():
            mod = request.form['mod']
            text = request.form['text']
    
            if mod == 'zh2en':
                result = translation(text, max_length=10240)[0]['translation_text']
                return result
            # if mod == 'en2zh':
            #     result = translation_en2zh(text, max_length=10240)[0]['translation_text']
            #     return result
            # if mod == 'de2zh':
            #     result = translation_de2zh(text, max_length=10240)[0]['translation_text']
            #     return result
            # if mod == 'zh2de':
            #     result = translation_zh2de(text, max_length=10240)[0]['translation_text']
            #     return result
    
    
        print('翻译服务已启动,请通过api形式访问该服务地址:http://127.0.0.1:16888/wesky-translater')
        server = pywsgi.WSGIServer(('0.0.0.0', 16888), app)
        server.serve_forever()
    
    except Exception as ex:
        print('翻译服务存在异常... ...')
        print(ex)
    
    
    • 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
    1. 启动服务
      终端:python3 offline_translation.py
      在这里插入图片描述
    2. 进行翻译

    http://127.0.0.1:16888/wesky-translater
    mod:zh2en
    text:apple
    在这里插入图片描述

  • 相关阅读:
    uniapp APP读取bin文件(仅测试安卓可用)
    【编程题】【Scratch四级】2021.03 程序优化
    什么是等效焦距
    基于学生成绩管理系统(附源代码及数据库)
    论文摘要的写作技巧
    字符检测专题第一期:OCR技术工业应用浅谈
    git上传代码冲突
    [探索深度学习] 之 神经网络 - 笔记01
    [数据集][目标检测]犀牛数据集VOC+yolo格式376张1类别
    javaEE---CSS
  • 原文地址:https://blog.csdn.net/qq_36957701/article/details/134014069