之前的内容请查看如下目录:
面向开发者的提示词工程第一章-简介
面向开发者的提示词工程第二章-提示原则
面向开发者的提示词工程第三章-迭代优化
面向开发者的提示词工程第四章-文本概括
面向开发者的提示词工程第五章-推断
第六章 文本转换
大语言模型具有强大的文本转换能力,可以实现多语言翻译、拼写纠正、语法调整、格式转换等不同类型的文本转换任务。利用语言模型进行各类转换是它的典型应用之一。
在本章中,我们将介绍如何通过编程调用API接口,使用语言模型实现文本转换功能。通过代码示例,读者可以学习将输入文本转换成所需输出格式的具体方法。
掌握调用大语言模型接口进行文本转换的技能,是开发各种语言类应用的重要一步。文本转换功能的应用场景也非常广泛。相信读者可以在本章的基础上,利用大语言模型轻松开发出转换功能强大的程序。
一、文本翻译
文本翻译是大语言模型的典型应用场景之一。相比于传统统计机器翻译系统,大语言模型翻译更加流畅自然,还原度更高。通过在大规模高质量平行语料上进行 Fine-Tune,大语言模型可以深入学习不同语言间的词汇、语法、语义等层面的对应关系,模拟双语者的转换思维,进行意义传递的精准转换,而非简单的逐词替换。
以英译汉为例,传统统计机器翻译多倾向直接替换英文词汇,语序保持英语结构,容易出现中文词汇使用不地道、语序不顺畅的现象。而大语言模型可以学习英汉两种语言的语法区别,进行动态的结构转换。同时,它还可以通过上下文理解原句意图,选择合适的中文词汇进行转换,而非生硬的字面翻译。
大语言模型翻译的这些优势使其生成的中文文本更加地道、流畅,兼具准确的意义表达。利用大语言模型翻译,我们能够打通多语言之间的壁垒,进行更加高质量的跨语言交流。
1.1 翻译为西班牙语
from tool import get_completion
prompt = f"""
将以下中文翻译成西班牙语: \
```您好,我想订购一个搅拌机。```
"""
response = get_completion(prompt)
print(response)
Hola, me gustaría ordenar una batidora.
1.2 识别语种
prompt = f"""
请告诉我以下文本是什么语种:
```Combien coûte le lampadaire?```
"""
response = get_completion(prompt)
print(response)
这段文本是法语。
1.3 多语种翻译
prompt = f"""
请将以下文本分别翻译成中文、英文、法语和西班牙语:
```I want to order a basketball.```
"""
response = get_completion(prompt)
print(response)
中文:我想订购一个篮球。
英文:I want to order a basketball.
法语:Je veux commander un ballon de basket.
西班牙语:Quiero pedir una pelota de baloncesto.
1.4 同时进行语气转换
prompt = f"""
请将以下文本翻译成中文,分别展示成正式与非正式两种语气:
```Would you like to order a pillow?```
"""
response = get_completion(prompt)
print(response)
正式语气:您是否需要订购一个枕头?
非正式语气:你想要订购一个枕头吗?
1.5 通用翻译器
在当今全球化的环境下,不同国家的用户需要频繁进行跨语言交流。但是语言的差异常使交流变得困难。为了打通语言壁垒,实现更便捷的国际商务合作和交流,我们需要一个智能的通用翻译工具。该翻译工具需要能够自动识别不同语言文本的语种,无需人工指定。然后它可以将这些不同语言的文本翻译成目标用户的母语。在这种方式下,全球各地的用户都可以轻松获得用自己母语书写的内容。
开发一个识别语种并进行多语种翻译的工具,将大大降低语言障碍带来的交流成本。它将有助于构建一个语言无关的全球化世界,让世界更为紧密地连结在一起。
user_messages = [
"La performance du système est plus lente que d'habitude.", # System performance is slower than normal
"Mi monitor tiene píxeles que no se iluminan.", # My monitor has pixels that are not lighting
"Il mio mouse non funziona", # My mouse is not working
"Mój klawisz Ctrl jest zepsuty", # My keyboard has a broken control key
"我的屏幕在闪烁" # My screen is flashing
]
import time
for issue in user_messages:
time.sleep(20)
prompt = f"告诉我以下文本是什么语种,直接输出语种,如法语,无需输出标点符号: ```{
issue}```"
lang = get_completion(prompt)
print(f"原始消息 ({
lang}): {
issue}\n")
prompt = f"""
将以下消息分别翻译成英文和中文,并写成
中文翻译:xxx
英文翻译:yyy
的格式:
```{
issue}```
"""
response = get_completion(prompt)
print(response, "\n=========================================")
原始消息 (法语): La performance du système est plus lente que d'habitude.
中文翻译:系统性能比平时慢。
英文翻译:The system performance is slower than usual.
=========================================
原始消息 (西班牙语): Mi monitor tiene píxeles que no se iluminan.
中文翻译:我的显示器有一些像素点不亮。
英文翻译:My monitor has pixels that do not light up.
=========================================
原始消息 (意大利语): Il mio mouse non funziona
中文翻译:我的鼠标不工作
英文翻译:My mouse is not working
=========================================
原始消息 (这段文本是波兰语。): Mój klawisz Ctrl jest zepsuty
中文翻译:我的Ctrl键坏了
英文翻译:My Ctrl key is broken
=========================