项目实训个人周报5

数据采集后的文本并不全是中文的,这很正常。我下一步对这部分文本数据进行了翻译,实现方法是通过DeepL这个工具api用python代码实现。不过要订阅申请DeepL的api密钥。

翻译数据结构知识数据:

import pandas as pd
import deepl

# DeepL API认证密钥
auth_key = ""
translator = deepl.Translator(auth_key)

# 读取XLSX文件
data = pd.read_csv('ds.xlsx')

# 定义一个标志位,用于指示是否停止翻译
stop_translation = False

# 翻译文本的函数,从英文翻译成中文
def translate_to_chinese(text):
    global stop_translation
    if stop_translation:
        return text  # 如果已经出现异常,直接返回原文
    try:
        translation = translator.translate_text(text, target_lang="ZH")
        return translation.text
    except Exception as e:
        print(f"翻译文本时出错: {e}")
        stop_translation = True  # 发生异常,设置标志位,停止后续翻译
        return text

# 翻译 'question' 列
data['question'] = data['question'].apply(translate_to_chinese)

# 翻译 'answer' 列
data['answer'] = data['answer'].apply(translate_to_chinese)

# 显示翻译后的数据的前几行
print(data.head())

# 将翻译后的数据保存到一个CSV文件
data.to_csv('translated_ds.csv', index=False)

下面给出代码解释:

  1. 导入库
    • import pandas as pd:导入Pandas库,常用于数据处理和分析。
    • import deepl:导入DeepL库,用于实现文本的机器翻译。
  2. 设置DeepL API密钥
    • auth_key = "DeepL API密钥":这里需要替换为DeepL API密钥,用于身份认证和访问翻译服务。
  3. 创建DeepL翻译器实例
    • translator = deepl.Translator(auth_key):使用提供的API密钥创建一个DeepL翻译器实例。
  4. 加载数据
    • data = pd.read_csv('train.parquet'):使用Pandas的read_csv函数加载csv格式的文件。
  5. 定义翻译函数
    • translate_to_chinese(text):这是一个函数,输入参数是文本(英文),输出是翻译后的文本(中文)。
    • global stop_translation:使用global关键字声明stop_translation,这允许函数内部修改全局变量。
    • if stop_translation:如果stop_translation为真(表示已经发生翻译错误),则函数直接返回原文本,不进行翻译。
    • try-except块:尝试使用DeepL翻译器翻译文本,如果发生异常(如网络问题、API限制等),则捕获异常,打印错误信息,并设置stop_translation为真,之后的所有翻译调用将直接返回原文。
  6. 应用翻译函数到数据列
    • data['question'] = data['question'].apply(translate_to_chinese):将translate_to_chinese函数应用于数据框data中名为question的列。这将逐行将英文指令翻译成中文。
  7. 显示翻译后的数据
    • print(data.head()):打印翻译后的数据框的前几行,用于检查翻译结果。
  8. 保存翻译后的数据
    • data.to_csv('translated_train.csv', index=False):将翻译后的数据保存到一个名为translated_train.csv的CSV文件,index=False参数表示不保存行索引。

翻译java知识数据:

import pandas as pd
import deepl

# DeepL API认证密钥
auth_key = "cAjDPhRVq1V2y80O"
translator = deepl.Translator(auth_key)

# 读取CSV文件
data = pd.read_csv('java.csv')

# 定义一个标志位,用于指示是否停止翻译
stop_translation = False


# 翻译文本的函数,从英文翻译成中文
def translate_to_chinese(text):
    global stop_translation
    if stop_translation:
        return text  # 如果已经出现异常,直接返回原文
    try:
        translation = translator.translate_text(text, target_lang="ZH")
        return translation.text
    except Exception as e:
        print(f"翻译文本时出错: {e}")
        stop_translation = True  # 发生异常,设置标志位,停止后续翻译
        return text


# 翻译 'question' 列
data['question'] = data['question'].apply(translate_to_chinese)

# 翻译 'answer' 列
data['answer'] = data['answer'].apply(translate_to_chinese)

# 显示翻译后的数据的前几行
# print(data.head())

# 将翻译后的数据保存到一个CSV文件
data.to_csv('translated_java.csv', index=False)

翻译操作系统知识数据:(这里源文件是parquet类型)

import pandas as pd
import deepl

auth_key = "cAjDPhRVq1V2y80O"
translator = deepl.Translator(auth_key)

data = pd.read_parquet('os.parquet')

# 定义一个标志位,用于指示是否停止翻译
stop_translation = False


# 翻译文本的函数,从英文翻译成中文
def translate_to_chinese(text):
    global stop_translation
    if stop_translation:
        return text  # 如果已经出现异常,直接返回原文
    try:
        translation = translator.translate_text(text, target_lang="ZH")
        return translation.text
    except Exception as e:
        print(f"翻译文本时出错: {e}")
        stop_translation = True  # 发生异常,设置标志位,停止后续翻译
        return text


# 翻译 'question' 列
data['question'] = data['question'].apply(translate_to_chinese)

# 翻译 'answer' 列
data['answer'] = data['answer'].apply(translate_to_chinese)

# 显示翻译后的数据的前几行
# print(data.head())

# 将翻译后的数据保存到一个CSV文件
data.to_csv('translated_os.csv', index=False)

翻译计网知识数据:(这里源文件是俄语版,方法略有改动)

import pandas as pd
import deepl

# DeepL API认证密钥
auth_key = "cAjDPhRVq1V2y80O"
translator = deepl.Translator(auth_key)

# 读取CSV文件
data = pd.read_csv('os.csv')

# 定义一个标志位,用于指示是否停止翻译
stop_translation = False

# 翻译文本的函数,从俄语翻译成中文
def translate_to_chinese(text):
    global stop_translation
    if stop_translation:
        return text  # 如果已经出现异常,直接返回原文
    try:
        translation = translator.translate_text(text, source_lang="RU", target_lang="ZH")
        return translation.text
    except Exception as e:
        print(f"翻译文本时出错: {e}")
        stop_translation = True  # 发生异常,设置标志位,停止后续翻译
        return text

# 翻译 'question' 列
data['question'] = data['question'].apply(translate_to_chinese)

# 翻译 'answer' 列
data['answer'] = data['answer'].apply(translate_to_chinese)

# 显示翻译后的数据的前几行
print(data.head())

# 将翻译后的数据保存到一个CSV文件
data.to_csv('translated_os.csv', index=False)
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值