ChatGPT 和我的概率统计词汇中英对照
我需要一个概率论词汇中英对照表。事情的起因,是为了帮助我一位需要参加北大光华夏令营笔试的好朋友。因为笔试只考概率论,但是题目很有可能是英文的。夏令营通知给的参考文献是 DeGroot, M. H. & Schervish, M. J. (2012). Probability and statistics (fourth edition),这本书只有第三版有中文版。书后面有个 Index,给出了这本书里比较重要的名词、概念和人名,以及其对应的参考页码。这个 Index 有一千多词,我第一个想法是使用 ChatGPT 的 API 把它们翻译一遍。
我找到了 pdf 电子版并复制了 Index,然后用正则表达式修复了一下格式和复制错误等问题,把它弄成了纯文本形式。给点例子:
1 | Allison, D. B., 400 |
接下来就是按行处理。Index
给出的一些概念是有层级关系的,用缩进表示。那么按行处理文本的时候弄一个栈存一下当前词的上下文即可。所有的概念全名就是把它和先前层次的名词都连起来,虽然会有点语序问题。处理完了可以得到结构化的数据
data
,是一个全名为 key 的字典。
1 | import re |
这里拿 \b([-\d]+|[-ivx]+)\b
来匹配页码和页码范围,但是有可能匹配到正文中的连字符 -
可以寻思着改进一下。
结构化的数据有了接下来是重头戏,拿 ChatGPT 翻译这些概念。
1 | import openai |
直接使用 OpenAI 的 Python 库。我本来是问了一下 ChatGPT 怎么用
API,但是 ChatGPT 只会用 text-davinci
completion
模型,并不知晓 gpt-3.5-turbo
模型的存在。所以还是看了一眼官方文档。这个
openai.ChatCompletion.create
API
是会抛异常的,包括网络不通、API
额度超限、服务器过载等等问题,所以需要简单实现个重试机制。
这个脚本花了快一个小时才跑完 1000 余个概念,基本是在等 API response,而且十几个 request 就得有一次超负荷或者断连得重试。跑出来的结果也一般。我都明确告诉它了不要附汉语拼音它有时候还是要加上。也有不少人名它不认识并告诉我这不是概率统计的内容所以拒不翻译,这个倒不怪它。下面是一些奇葩回应大赏。