簡體   English   中英

使用 Python 從谷歌翻譯器獲取單詞定義

[英]Get word definition/s from google translator using Python

在此處輸入圖像描述 拜托,我正在制作自己的詞典,無法弄清楚如何從谷歌翻譯中提取翻譯定義。 我的想法是 python 將打開我的 excel 文件,並且在第 1 列的每個單元格中都是一個新詞。 python 將同時取走每一個。 使用谷歌翻譯器將它從英語翻譯成斯洛伐克語,不要只接受翻譯后的詞,而是它的定義(如果有多個定義,則全部接受)和定義組(名詞、副詞、動詞, ...) 然后將這些數據添加到 excel 表中,或者在原始翻譯詞旁邊的新單元格中,或者如果有更多定義,則為每個定義添加行。

我對此很陌生,所以請原諒。

才能滿足您的要求。 一種方法是在腳本中執行以下操作:

  1. 您可以使用pandas.read_excel讀取您的 excel 文件並進行一些數據操作以獲取第 1 列中的所有值。
  2. 當你得到要翻譯的值時,你可以使用像googletrans這樣的東西,它在后端使用谷歌翻譯,或者使用付費的谷歌翻譯 API來處理你的翻譯。 但根據您的要求,我建議使用谷歌翻譯 API,因為它能夠返回所有可能的定義。
  3. 獲得翻譯后,您可以自行轉換數據,以便將它們作為新列添加到原始 excel 文件中。 您可以為此使用pandas.ExcelWriter

我制作了這個讀取 CSV 文件(我的機器上沒有安裝 excel)的簡單腳本,翻譯text列下的所有內容並將它們放入已translated的列。 如果您以不同方式處理數據,則取決於您。

注意下面的腳本:

  • 我用的谷歌翻譯 API 這是付費服務
  • 使用pd.read_excel()讀取excel個文件
  • 根據您的輸入文件調整列號

樣本數據.csv:

文本 虛擬字段
跑步 假人1
你好嗎 假人2
假人3

示例腳本:

import pandas as pd
from google.cloud import translate_v2 as translate

def translate_text(text):

    translate_client = translate.Client()
    target = 'tl'
    result = translate_client.translate(text, target_language = target)

    return result["translatedText"]

def process_data(input_file):

    #df = pd.read_excel('test.xlsx', engine='openpyxl')
    df = pd.read_csv(input_file)
    df['translated'] = df['text'].apply(translate_text)

    # move column 'translated' to second column
    # this position will depend on your actual data
    second_col = df.pop('translated')
    df.insert(1, 'translated', second_col)
    print(df)

    df.to_csv('./updated_data.csv',index=False)
    df.to_excel('./updated_data.xlsx',index=False)


process_data('sample_data.csv')

Output:

Dataframe

在此處輸入圖像描述

生成csv文件:

在此處輸入圖像描述

生成excel文件:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM