在最近做一些文本处理的时候,由于需要获取地址信息,但是获取原地址数据存在很多的英文、韩文等,尝试用excel中传统的translate函数,但是很多并不能用,因此便想到使用chatgpt作为接口进行翻译,代码如下:
1、首先导入所需的包
from openai import OpenAI
import pandas as pd
2、创建openai客户端
client = OpenAI(api_key='sk-xxxxxxxxxxxxxxx') # 引号内换成你的api-key
3、构造翻译函数
# 定义prompt构造函数
def create_prompt(address):
# 可以自由定义一个prompt模板,看需求
prompt = f"""
I have a set of addresses, please help me to translate them into Chinese, note: the format should not be changed, you only need to answer the address after translation, do not need any other additional answers!!!! The addresses are as follows:
{address}
"""
return prompt
# 定义翻译地址的函数
def translate_address(address):
# 创建提示
prompt = create_prompt(address)
# 使用client获取翻译
translation = client.chat.completions.create(
model="gpt-3.5-turbo", # 选取使用的模型
messages=[
{"role": "user", "content": prompt}
]
)
# 从gpt回答中获取翻译
translated_address = translation.model_dump()['choices'][0]['message']['content']
# 根据实际响应格式调整
return translated_address
4、读取数据
df = pd.read_excel("你要翻译的excel文件.xlsx", header=0)
addresses = df["需要翻译的文本"].tolist()
5、调用翻译函数并将其保存到文件中
# 列表用来保存翻译后的地址
translated_addresses = []
# 遍历每个地址并翻译
for address in addresses:
translated_address = translate_address(address)
translated_addresses.append(translated_address)
# 将翻译后的地址添加到原数据框中
df["翻译后文本"] = translated_addresses
# 将数据框保存到新的CSV文件中
df.to_csv("translated_addresses.csv", index=False)
print("翻译后的地址已保存到 translated_addresses.csv 文件中。")
最终结果图如下所示:
这只是对openai的一个小应用,不仅可以用于翻译,还可以用于各种需要人不断重复完成工作,只需要根据不同的任务进行prompt的构造就行,chatgpt可以帮我们做一个初筛,正确率不一定能够保证