【科研】第11届BNU实验科学锦标赛题目发布(下)

来源: 作者:周锡饮 发布时间:2019-09-03 浏览次数:

 

(5)创建和修订维基百科文章

为了节省时间,团队中最好至少有一个人已经创建了维基百科的文章。

对于维基百科,一般有以下两种理解:

1第一种理解,也是创造者所提倡的:维基百科是一个国际性的项目,欢迎每一个人参与。

2第二种理解认为维基百科首先是一个由美国赞助商提供大量资金支持的项目,且我们有充分的理由相信它最终将传播和推广的是美国的世界观。

那么,真想究竟是如何呢?这个项目的目标之一就是寻找出这个问题的答案。

有两种方法去调查这个问题,第一个是争论和反驳,第二个是做一个测试实验。在本项目中,我们提倡使用第二种方法。

这个方法基于以下想法。

的确,在一定程度上,每个人都可以修改维基百科文章,以下文为例:

https://en.wikipedia.org/wiki/Symmetry_breaking_of_escaping_ants

这篇文章的最初版本中提到了一项包括当时系统科学学院在读博士生李耕在内的北京师范大学团队的实验。但是,由于文章的参考文献并不完全正确,维基百科上的文章由李耕博士编辑成您现在可以阅读的形式。 如果想要了解更多有关如何完成的细节,请通过以下地址联系李博士:moralmarket@126.com.

因此,这个项目的第一阶段应该是训练创建一篇有关(例如)中国美丽但却不那么知名地方的维基百科文章(使用中文和英文)

上文中我们提到维基百科中的文章可以被修改至一定程度,这是什么意思呢?

在开头提到的第二种理解中指出维基百科会在一些要点上希望美国版本的理解成为主流,而事实上确实如此。如果你在维基百科上读到关于美国占领冰岛、韩国和日本的文章,亦或是关于1960-1961年中国的粮食危机的文章,你会发现这些文章在许多方面都存在着错误的陈述,而大多数情况下这些版本都是由美国国务院或国防部的历史学家们修改的。

其他更多真实的情况可以在以下网页上找到:

http://www.lpthe.jussieu.fr/_roehner.occupation.html

http://www.lpthe.jussieu.fr/_roehner.biodemo.html, 见最后一篇文章(关于粮食危机),尤其是关注其附录。

是否有可能创建一篇维基百科文章,从而实质性地改变之前的陈述?

对于这个测试实验,最好是先创建一篇文章的中文版本,且只有在中文版本被接受后再添加其英文翻译。

这将是一个具有揭露性的测试实验,其结果可能会引起包括中国在内其余很多国家的兴趣。

 

 

6)设置一个系统,可以将研讨会或演讲翻译为中文

作为一位法国研究者,我很希望看到一个自动翻译系统,可以将我的法语演讲翻译为中文,并且通过耳机直接传达给所有参会者。并且这个系统还可以将观众的中文提问翻译为法语返回给我。

201810月,我们在一台学生提供的手机上做了一些测试:将中文口语翻译为法语口语,我们发现在说话者使用短句子时系统发挥得很优秀。换句话说,我们现在知道它可以工作。然而,它仍然有待通过一种实际的方式去实现。

Step 3:添加特殊翻译模块并且解释技术术语(也许可以用在演讲开头添加引言章节代替)

对于自动翻译系统的建议在研讨会中使用的科学和技术术语的翻译和解释可以(以某些实际方式)作为在线翻译的补充。

对我个人来讲,我并不太能够胜任这项工作。我确信大多数学生比我更加了解其中所需的技术。

这一项目的宗旨包含以下步骤:

1、  做一个最简形式的系统并测试它(如果你们想测试中法翻译,我可以提供帮助)。在测试中你们应该找并不熟悉项目主题的朋友来进行最终测试,并让他们来评价他们是否理解了系统翻译的结果。换句话说,你们应该做真实测试。

2、   介绍所有在技术上可行的进展与突破。

3、 在竞赛的最后阶段,你们做展示报告的时候,应该对你们的系统做实用性展示。

 

 

 

 

 

 

(7)用中文翻译和解释由编程语言产生的错误信息

请注意,该项目面向那些熟悉Linux操作系统的学生,他们知道与Linux紧密相关的“bash”编程语言,也了解C语言、pythonfortran等编程语言。下面给出的指南不适用于Windows-Microsoft操作系统。

 

为什么说让错误信息更友好很重要呢?

编程有两种可能的概念:

1、在狭义概念中,编程只由专业的程序员完成。

2、在更广泛的概念中,人们认识到编程是一种可以用于许多活动的工具。音乐家可能希望用Python编写一个脚本,这个脚本将生成一些特殊的声音序列。历史学家或许需要用Java来编写一个能够用来检索他所需资源的个人搜索引擎的程序。我们可以举出很多其他的例子。

举音乐上相似的例子可能有助于使这个区别更加清晰。在狭义的音乐概念中,只有专业的音乐家才懂音乐,而在广义的概念中,许多人学习演奏音乐是为了和朋友一起玩音乐,或者只是为了自己的快乐。

在美国,被采用的程序设计是一个广义的概念,而在欧洲则普遍流行狭义的概念。显而易见的结果是几十年后欧洲已经落后。 如今,可以毫不夸张地说,欧洲使用的几乎所有软件工具都是在美国创建的。

中国希望走哪条道路?这是一个重要的问题,其答案还不清楚。如果中国希望走欧洲的道路,那么就不需要关心让错误信息更友好。相反,如果中国希望采用广义的概念,那么以一种和谐友好的方式呈现程序设计(更普遍地说是计算机科学的各个方面)是至关重要的。

大多数教授编程的教授都认为,理解编译器产生的错误信息对大多数学生来说是一个很大的障碍,这个障碍许多学生永远都无法克服。因此,他们会一生都记住编程是一种困难和晦涩难懂的东西。明确的结果是他们永远不会想在自己的项目活动中使用编程。相反,如果能使错误信息变得用户友好,即使是不打算成为专业程序员的学生也会记住编程就像音乐一样是有趣、好玩和有用的!每当有需要,他们都会毫不犹豫地花些时间学习一种可以帮到他们的编程语言。

 

如何使错误信息更加用户友好?

为了使错误信息更加用户友好,第一步当然是将它们从英语翻译成中文。你可能会反对几乎所有编程语言的代码都使用英语单词。但是代码和错误信息之间存在很大差异。代码仅使用有限数量的易于学习的单词,而在错误信息中则存在具有大量英语单词的英语句子。

更糟的是,错误信息使用的词语根本不是那些在英语课堂上学习的词汇。 例如,思考以下错误信息:Unary operator expected 在这3个单词中,只有“expected”是标准英语。 “Operator”并不罕见,但这是一个在英语课上没有学过的数学术语。 “Unary””是一个非常罕见的词,甚至美国研究人员也不知道。

再次使用我们之前对音乐的类比,这意味着人们在开始演奏音乐之前,必须先学会说意大利语。毫无疑问,这会增加额外的困难。

 

翻译和解释

在这个项目中,我们希望将任何编程语言的错误信息的英文单词自动翻译成中文,并解释不易理解的单词。其中一项主要任务是构建一个字典,其中包含错误消息中使用的单词的翻译和解释。

如果您对这个项目感兴趣,请留意地将一个或两个不懂编程的人纳入到您的团队中。事实上,检验你的翻译和解释是否正确的唯一真正方法是看其他学生是否能理解。记住,并不是因为你理解自己写的解释,其他人也会理解它。

bash编写的更详细的解释和代码可以在Roehner2015)中找到。

 

参考文献

Roehner (B.)2015: Translation into any natural language of the error messages generated by any computer program

可在arXiv网页找到:http://arxiv.org/abs/1508.04936