识别1.xlsx中title和abs列里面的语言,不是英文的将其转为英文,是英文的保留,生成新的2.xlsx
时间: 2024-04-15 12:30:32 浏览: 146
国家中英文对照.xlsx
要识别1.xlsx中title和abs列中的语言,并将非英文内容转为英文,同时保留英文内容,生成新的2.xlsx文件,可以使用Python中的langid库来识别语言,然后再使用翻译工具进行翻译。以下是一个示例代码:
```python
import pandas as pd
import langid
from googletrans import Translator
# 读取1.xlsx中的数据
df = pd.read_excel('1.xlsx')
# 创建语言识别器
lang_detector = langid.langid.LanguageIdentifier.from_modelstring(langid.langid.model, norm_probs=True)
# 创建翻译器
translator = Translator()
# 遍历title和abs列的每个单元格
for i in range(len(df)):
# 识别title列的语言
title_lang = lang_detector.classify(str(df.loc[i, 'title']))[0]
# 如果不是英文
if title_lang != 'en':
# 翻译为英文
translated_title = translator.translate(str(df.loc[i, 'title']), src=title_lang, dest='en').text
df.loc[i, 'title'] = translated_title
# 识别abs列的语言
abs_lang = lang_detector.classify(str(df.loc[i, 'abs']))[0]
# 如果不是英文
if abs_lang != 'en':
# 翻译为英文
translated_abs = translator.translate(str(df.loc[i, 'abs']), src=abs_lang, dest='en').text
df.loc[i, 'abs'] = translated_abs
# 将结果保存到新的Excel文件中
df.to_excel('2.xlsx', index=False)
```
在上面的示例中,首先使用`pd.read_excel()`函数读取1.xlsx文件的数据。然后,创建语言识别器和翻译器对象。接下来,遍历title和abs列的每个单元格,使用语言识别器判断语言是否为英文,如果不是英文,则使用翻译器将其翻译为英文。最后,将结果保存到一个新的Excel文件2.xlsx中。
你需要将代码中的文件名1.xlsx替换为你实际的Excel文件名,然后运行代码即可将title和abs列中非英文内容翻译为英文,并保存到新的Excel文件2.xlsx中。
阅读全文