识别1.xlsx中title和abs列里面数据的语言,建立新的translated_title 和 translated_abs两哥列,不是英文的将其转为英文,放入 translated列,是英文的也放入translated列,将新的列也放在新的2.xlsx
时间: 2024-04-15 18:30:39 浏览: 138
user1中文文件名.xlsx
要识别1.xlsx中title和abs列中数据的语言,并将其转为英文,然后将原始数据和翻译后的数据分别放入translated_title和translated_abs两列,最后将这两个新列与原始数据一起保存到新的2.xlsx文件中,可以使用以下示例代码:
```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()
# 创建translated_title和translated_abs两个新列
df['translated_title'] = ''
df['translated_abs'] = ''
# 遍历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, 'translated_title'] = translated_title
else:
df.loc[i, 'translated_title'] = str(df.loc[i, '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, 'translated_abs'] = translated_abs
else:
df.loc[i, 'translated_abs'] = str(df.loc[i, 'abs'])
# 将结果保存到新的Excel文件中
df.to_excel('2.xlsx', index=False)
```
在上面的示例代码中,首先创建了两个新的列`translated_title`和`translated_abs`,然后遍历原始数据的title和abs列,使用语言识别器判断语言是否为英文,如果不是英文,则使用翻译器将其翻译为英文,并将翻译后的结果放入相应的新列中。如果是英文或未知语言,则直接将原始数据放入新列中。最后,将结果保存到新的Excel文件2.xlsx中。
你需要将代码中的文件名1.xlsx替换为你实际的Excel文件名,然后运行代码即可将title和abs列中非英文内容翻译为英文,并将原始数据和翻译后的数据保存到新的Excel文件2.xlsx中。
阅读全文