赞
踩
大语言模型(LLM)的语义识别能力使之成为翻译的必用工具。如果我在互联网上看到一篇不错的英文文章,如何翻译呢?
我能想到如下的方法:
使用自动脚本显得自己更厉害一点,所以我计划使用LLM对话产品,得到一个Python脚本来自动化这件事情。
这次帮我编写自动脚本的LLM对话产品是Google Bard。我之前一直使用免费的ChatGPT+GPT3.5,Bard也免费,这次试一下Bard将如何表现。
最后生成的自动脚本将调用某一个LLM的接口完成翻译工作。这里使用OpenAI Chat API。
在Google Bard上输入我的提示词:
帮我完成一个Python脚本,用以爬取网页上的一篇文章并使用AI进行翻译:
1. 输入为一个网页地址。
2. 爬取网页上的文章内容。
3. 使用LLM比如GPT来翻译文章内容从英文到中文。要考虑token的限制问题。
我实际上使用英文与Google的LLM进行的沟通。日常工作中,技术问题需要用英文,所以比较习惯。
按照我之前使用ChatGPT的经验,用英文或者中文区别不大。
这里是Google Bard的第一次回答:
Bard表现非常不错,从这次回答中可以看到:
在后续进行的多轮对话过程中,我继续做了以下的要求:
Bard 都很好完成了相应的代码修改。
除了技术方面,我自己在多轮对话中的感受:
在Bard生成的代码基础上,我自己只有三处小的改动:
最终代码如下,如果有GPT的API key,可以写在.env文件中。
注:我没有测试Google Translate那部分代码。
__author__ = 'liyane' #要不要加上Bard的大名? import requests from bs4 import BeautifulSoup import openai from dotenv import load_dotenv, find_dotenv import os # Load API key from .env file _ = load_dotenv(find_dotenv()) def crawl_and_translate(url, target_lang="zh-CN"): """ Crawls an article from a web page, saves the original text, translates it, and saves the translated text to separate files. Args: url (str): The URL of the web page to crawl. target_lang (str, optional): The target language code (e.g., "zh-CN" for Chinese). Defaults to "zh-CN". Returns: None """ # Fetch and parse the HTML content response = requests.get(url) response.raise_for_status() soup = BeautifulSoup(response.content, "html.parser") # Extract the article content article_text = soup.find("div", class_="w3-row-padding").get_text() # Adjust selector as needed # Save the original text to a file with open("original_text.txt", "w", encoding="utf-8") as f: f.write(article_text) # Split the text into chunks for translation chunks = [article_text[i:i+10000] for i in range(0, len(article_text), 10000)] translated_chunks = [] # Translate each chunk using GPT-4 chat.completions (if API key is available) openai_api_key = os.getenv("OPENAI_API_KEY") if openai_api_key: for chunk in chunks: response = openai.chat.completions.create( model="gpt-4-turbo-preview", messages=[ {"role": "system", "content": "Translate this text from English to " + target_lang}, {"role": "user", "content": chunk}, ] ) translated_chunks.append(response.choices[0].message.content) else: # Use Google Translate as an alternative (uncomment if needed) from googletrans import Translator translator = Translator() for chunk in chunks: translated_chunk = translator.translate(chunk, dest=target_lang).text translated_chunks.append(translated_chunk) # Combine translated chunks and save to a file translated_article = "\n".join(translated_chunks) with open("translated_text.txt", "w", encoding="utf-8") as f: f.write(translated_article) # Example usage url = "https://dugas.ch/artificial_curiosity/GPT_architecture.html" target_lang = "zh-CN" crawl_and_translate(url, target_lang)
执行完这段脚本,就可以得到LLM的中文翻译了。再根据翻译进行进一步的编辑,比如拷贝图片,调整格式。
编辑后的文章,我发布在了这里:
【翻译】GPT-3架构,简述于“餐巾纸”上
这只是一个基本的爬取和翻译脚本,我可以得到一个不错的文本翻译,但是如果想发布一篇翻译文章,除了稍微做些文字的修改外,还有大量的排版工作需要做。后续考虑需要改进的地方:
欢迎留言建议或者讨论。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。