写作规范

本文的内容根据 玄跻峰老师 日常的写作训练整理而来,包含写作的内容规范和撰写规范,并介绍了常用的写作工具、答辩相关和前期调研。

一、论文内容规范

1.1 Non-fiction Writing

论文中不要出现没有什么意义的废话。

例子:

  • 论文中的 in order to 可以改为 to
  • 论文中不要出现 have, do 等没有具体意义的词。
  • 论文中的 The function has two parameters. 这句话可以改为 There are two parameters that … We generate test case for the two parameters of the functions. ,这样修改使得这句话的信息密度更高。

1.2 不杂不凑

论文中的分点要做到不杂不凑,要做到每一个点都能堵住漏洞。

  • “不杂”要求避免杂乱无章的信息,要求要点间有明确的逻辑关系(递进、因果等),同时要避免冗余。
  • “不凑”要求论文要点要言之有物,要做到论文中的每一个部分都是整体论文链条中不可或缺的一环。

1.3 写作中的细节描写:图、表和算法

图 1:写作配图示例

  1. 给出图表后,需要描述图表中的细节,正文中需要对表中有差异的部分进行描述,说明其产生差异的原因。
    1. 如何描述图表:现象 -> 具体差异 -> 分析原因
  2. 表需要有表头,同时表中不能只有一项数据,需要有多项数据进行对比,也即 Reach in Comparison
  3. 所有的图表在正文中都要有引用。
  4. 如何绘图?
    1. 线性思维:绘图时先在纸上布局,结构不要太过复杂,可以将其拆解为几个部分。
    2. 图要有层次感和结构感,如图 1 所示。
    3. 图要有输入和输出,其中注意输入是用户配置的部分(即可能会变化的部分),而不是系统依赖项。
    4. 论文配图尽量不要使用颜色,要保证黑白打印后配图仍然清晰
  5. 如何描述图?
    1. 图整体是干什么的,例如:图 1 是描述 xxx 的整体架构图
    2. 分开描述图的每个部分,要详略得当。
      1. 使用 First, … Second, … Third, … ,层次分明。
      2. 不要使用 At first, … Then, … Next, … Finally, … ,层次不够明确。
      3. 不要使用 Last but not least ,不够书面化。
    3. 最后描述图的整体流程,包括每个部分的输入和输出等。
  6. 如何描述算法?
    1. 算法包含输入、输出和算法流程。
    2. 算法不要直接使用汉字进行语言描述,而要使用伪代码。
    3. 在正文部分要有对算法的详细描述。
  7. 如何组织图表?
    1. 图表能用于说明数据的特性,例如统计特性等。
    2. 在论文撰写阶段,要在论文大纲中列出图表的结构,例如草图和表的结构等。

关于表,这里我们给出一个表的示例及其正文对其的描述。

Table 1. Precision and recall of four methods in comparison

ID Description Precision Recall
Project 1
  • Table 1 shows precision and recall … 表的总体讲了什么
  • Table 1 description … 对表的描述,每一列是什么
  • Table 1 observation … 从表中可以观察到什么现象
  • Table 1 analysis … 对于这种现象的分析
  • Table 1 conclusion … 由分析得出的结论

1.4 论文中的实验部分

  1. 研究问题(Research Question,RQ):实验要解决什么问题,与后面的实验结果相对应。
  2. 数据准备(Data Preparation):
    1. 平台设备(Platform)
    2. 实现(Implementation):用了什么工具,每个部分是怎么实现的(最好能给出源代码和工具的地址)
    3. 数据集(Dataset):要说明数据是怎么来,为什么要选择这个数据集
    4. 数据清洗(Data Clean):数据集如何变成实验所需的数据
  3. 评估(Evaluation Metrics):常见的评估指标例如精度和性能等。
  4. 比较(Comparison):
    1. 对比实验:将论文的算法和其他算法进行对比
    2. 消融实验:验证关键部分的有效性
    3. 数据泛化性(Data Generality):给出在其他数据集下的实验结果
  5. 实验(Experiment):
    1. 实验步骤:注意区分于算法流程
    2. 如何进行训练,如何进行测试 (注:如何设计训练器应当放到算法设计章节中,而不是实验章节)
  6. 结果(Result):
    1. 根据 RQ 展示实验结果。
    2. 结论(Conclusion):每个 RQ 的实验结果后面都要有结论,结论对应的英文词包含以下这些,表达的含义强度由低到高
      1. Summary:根据实验结果总结的规律
      2. Finding:根据实验结果发现现象
      3. Conclusion:根据实验得出的高级结论
  7. 概括结论:使用一个自然段概括实验得出的结论,要写新的感受,不要流于形式
  8. (注:如果实验结果很长,也可以将其分开作为单独的一章 Experiment Result)

1.5 论文大纲

论文正式撰写前需要撰写大纲(Outline,Roadmap),论文正文中的每一段都需要在大纲中用一句话来概括其内容,即大纲要精确到段。接下来我们以主题为 Fault Localization 的论文为例来撰写大纲。

  • I Introduction
    • P1: Software faults are inevitable.
    • P2: Localizing faults has been widely studied.
    • P3: Existing techniques of fault localization have focused on two categories. First, … Second, …
    • P4: However, …
    • P5: In this paper, we proposed a new approach …
    • P6: Experiment, result, approach
    • P7: Structure of the rest.
  • II Background and Motivations
    • 2.1 Background
      • Faults and risks
      • approachs
    • 2.2 Motivations (HOWEVER)
      • General, …
      • Example, … (real world, open source)
      • Our approach addressed the “HOWEVER”
  • III Approach
    • 3.1 Overview / Framework 要有方法的整体框架图(图的形式为 input -> box -> ouput ,即每一个方框都要有输入和输出)
    • 3.2 Method A
    • 3.2 Method B:(介绍方法应当具体到自己的方法,例如:这里不应当介绍 Genetic Algorithm,而应该介绍 Genetic algorithm based localization,前者应该放到 Introduction 中)
  • IV Experiment Setup
    • 4.1 Data / Project
    • 4.2 Setup:需要让读者能根据 Setup 复现实验
    • 4.3 Metric
    • 4.4 Methods in Comparison
    • 4.5 Research Question (RQ)
      • 例如:How accurate does our approach …
      • 需要有 3-4 个 RQ,RQ 之间要有逻辑
      • RQ 的答案要明确,如:yes, no, how much
  • V Threats to Validity
    • 偏负面,但要柔和一些;内容要说透,不要说废话。
    • Threats to Validity 可以包括 Construct Threats、Internal Threats 和 External Threats
    • Threats to Validity 不等于 Future Work
    • Discussion 中可以有对论文方法的正面意见
    • 例如:The implementation of our approach can handle Java faults in real-world problems. It may not be generalized to other programming languages. This approach can be generalized to languages with similar structure of object-oriented methods. (提出缺点,然后找补一点回来)
  • VI Related Work
    • 相关工作不是写现存的工作有哪些,而是写现存的工作缺少什么,对应于自己的工作解决了什么问题
  • VII Tables and Figures
    • 所有的图/表都要有图头/表头
    • 正文中要说明 x 轴和 y 轴分别是什么
  • VIII Acknowledgements
    • 致谢不要写得太简单

1.6 紧扣要求

  • 在撰写申请文书或项目文书时,模板和要求上的每一点都是采分点,每一点都要在材料中提到。

1.7 关于大模型

  • 大模型能很好地生成一句话,但是没办法写出语意连贯的一段话,在写作中不要使用大模型。
  • 英文摘要不要使用大模型进行翻译,会出现一些奇怪的表达,例如:
    • 例子 1:
      • GPT: an automated software testing method
      • 正确:an automated method of software testing
    • 例子 2:
      • GPT: an artificial intelligence software testing method
      • 正确:a method of software testing method based on artificial intelligence

1.8 不要 judge

  • 不要 judge 自己的工作多么多么好,而是从事实出发,直接说实验结果,例如:
    • 不要出现:This paper provides a effective sorting method.
  • 不要 judge 别人的工作,直接说事实

二、论文撰写规范

2.1 通用规范

  1. 论文中首次出现生词的地方时一定要有解释。例如:集合 S 和 T 的乘积映射到 V 上 S x T: V。 这句话对生词 S T V 进行了解释。
  2. 论文开头要明确主题,要在开头几句话就提到标题的内容。
  3. 论文中要确保没有语法错误(单复数、时态等),可以将论文内容复制到 Word 中,利用 Word 内置的语法检查检验是否存在语法错误。
  4. 参考文献:
    1. 人名不要出现错误,DBLP 网站的引用信息较为准确,引用后最好人工再确认。
    2. [C] 和 [J] 为国标参考格式,如果参考文献格式没要求,则不需要写。
    3. 参考文献的格式应当统一,例如姓名的顺序、是否大小写、是否缩写等。
    4. 尽量不要使用 et al.,尽量列出所有作者,除非参考文献格式要求最多只列几个作者。
    5. 参考文献为链接时需要说明链接是什么,同时链接尽量使用 http。例如:[1] OpenCV, http://opencv.org/
  5. 论文中不要出现四级标题,如 2.1.1.1。
  6. 中英文编号:中文中应该使用全角括号“(1)”,英文中应该使用半角括号“(1)”。
  7. 编号“①”应当在行内使用。
  8. 段落格式应当为两端对齐。
  9. 语句要通顺,让人能看懂,语句之间要有逻辑,且逻辑要简单。
    1. 不要使用 Conclusion 1, Conclusion 2 -> Conclusion 这样的分总结构,会增加理解成本,要使用总分结构。
    2. 尽量不要使用定语从句(which,that),会打乱语句间的逻辑。

      例子 1:

      There are three reasons. The reasons behind this fact are as follows. First, … Second, … Third, …

      分析:第一个句子引出了三个原因,后面就紧接着要介绍这三个原因,也即上一句的宾语是下一句的主语,这就是语句之间的逻辑。

      例子 2:

      Two birds eat two apples. These birds are in red skins. The red skins … These apples are in red color. The red color …

      分析:第一个句子引出了鸟和苹果,后面就按照顺序介绍鸟和苹果,在介绍鸟时引出了红色皮肤,就紧接着介绍红色皮肤,在介绍苹果时引出苹果时红色,就紧接着介绍红色。

      例子 3:

      参考文章:https://mp.weixin.qq.com/s/aOJw21bFB9f5NsTh43F5cg

      标题:【crash实战:手把手教你使用crash分析内核dump】

      开头部分:

      • Kdump是Linux的一种内核崩溃捕获机制,Linux内核遇到致命错误崩溃时会触发Kdump机制将崩溃时的现场保存下来,以便后续分析和故障排查。
      • 目前市面上有很多分析Kdump的工具,例如trace32, crash tool,本文介绍crash tool在手机领域的应用,并重点介绍一些实用的技巧。

      分析:在开头部分就提到了标题的内容,同时上一句的宾语就是下一句的主语,语句之间有逻辑。

2.2 中文规范

  1. 段前注意需要空两格。
  2. 关于英文缩写:
    1. 在正文中第一次定义英文缩写后,后面才能直接使用英文缩写,但是摘要和正文是独立的,所以可以在摘要和正文中分别定义一次缩写。
    2. 英文缩写定义的格式,例如:蛇果(Delicious Apple,DA)是一种红色的苹果。
      1. 括号和逗号都使用全角符号
      2. 如果没有对应的缩写,只有对应的英文,则首字母需要小写且不能使用斜体,例如:蛇果(delicious apple)是一种红色的苹果。
      3. 如果对应的缩写是从英文中摘取部分字母得来,则可以加粗对应的字母,例如:蛇果(Delicious Apple,DelAp)是一种红色的苹果。

2.3 英文规范

  1. 标题中冒号后的第一个单词的首字母需要大写,或者所有实词的首字母均大写。例如 GenProg: A genetic method for automatic software repairGenProg: A Genetic Method for Automatic Software Repair
  2. 更好的英语表达:
    1. 名词之间尽量不要重复,例如:使用 bug reportissue ticket,而不要使用 bug reportbug report
    2. 尽量不要使用名词修饰名词,而是使用 of 的形式,例如:
      1. 不要使用 red common-used delicious apple
      2. 不要使用 box-inside 10-point delicious apple
      3. 使用 delicious apple of box-inside 10-point
    3. 句子不要头重脚清,例如:
      1. … S is challenging 可以改为 It is challenging that …
    4. although 放后面,不要使用 but,也即使用 …, although … 的句式
    5. 状语一般后置,也即使用 … when … 或 … while … 的句式
    6. 使用 however 而不是使用 no matter what 或 no matter how
    7. 尽量不用 ‘s
      1. 不要使用 It’s,而是使用 It is
      2. 可以使用 Tom’s book
      3. 不要使用 My method’s steps,因为 ‘s 前需要是一个有生命的物体,可以使用 steps of my method
  3. 不要使用:
    1. 不要使用动名词做主语,虽然语法上符合规范,但表达不够地道。
    2. 不要乱用代词 it ,容易造成指代不明。
    3. 不要使用连续的逗号来表示动作序列。
    4. 不要使用 and 来连接没有关联的两个句子。
    5. 不要使用 so that, too … to, in order to
  4. 粗体、斜体不要滥用:
    1. 粗体使用场景举例:
      1. Internal Threat 用于段首
      2. Automated Software Tesing (AuSof) 加粗对应字母
    2. 斜体用于第一次出现重要名词时表示强调

三、写作工具

常用的写作工具包括 Word 和 LaTeX,语法检查工具包括 Word 和 Grammarly。

  • 当使用 LaTeX 进行论文撰写时,通常使用 Overleaf 进行多人协作,同时需要一份本地的 LaTeX 环境,以应对 Overleaf 中存在的 Bug。
  • 根据官方提供的模板选择写作工具,当官方没有提供 LaTeX 模板时,不要使用 LaTeX。
  • 不要使用太多的 LaTeX package

3.1 审阅

  • Word:使用审阅模式进行审阅和修改。
  • LaTeX:使用 Overleaf 进行多人协作,同时使用以下命令进行审阅和修改。
1
2
3
4
\newcommand{\yangfeng}[1]{\textcolor{blue}{yangfeng #1}}
\newcommand{\jifeng}[1]{\textcolor{red}{jifeng #1}}

There are two parameters...\jifeng{Change this.}\yangfeng{I have changed.}

四、答辩相关

4.1 答辩内容

答辩需要包含以下几个部分:

  1. Research Problem:讲清楚做了一个什么样的问题,可以从以下几个方面进行介绍
    1. Background
    2. Motivation
    3. Content
  2. Innovation:创新在哪里,创新点可以在以下几个方面
    1. Approach:前人的工作是什么,对比自己的方法创新在哪里
    2. Experiment Setup:在什么设定下来评价方法,即 metrics 和 Scenario Comparison
    3. Results:自己的方法在结果上有没有改进
    4. Implementation:如果实现的方式比较创新,可以提一下实现的具体方式
  3. Conclusion
  4. Future Work

4.2 PPT 准备

  • PPT 上不能全是字或全是图,要保证听着在非全神贯注情况下能听懂。
  • 答辩控制时间,一定 不能 超时。
  • 可以准备讲稿,不要过度依赖演讲者模式。

五、前期调研

调研一定要保证不漏,确保自己的 idea 没有被别人做过。

5.1 在哪里调研

  • 英文文献调研:
    • Google Search
    • Google Scholar:论文、专利、法律等
    • Bing Search
  • 中文文献调研:
    • 百度学术
    • 知网

5.2 调研流程

  • 调研时一定要保留原始数据和痕迹。
  • 使用一句话提取论文中的信息。
  • 对调研数据进行分类:方法、工具、实验等。
  • 初筛:根据 introduction 对论文进行二次调研,将 150 篇论文筛到 15 篇论文。
  • 如何选题?
    • 大众化的选题:参考论文多、门槛低,例如:face recognition
    • 小众化的选题:需要考虑研究难度和可改进的空间,例如:face change, face creation

六、Rebuttal 相关

  • 语气柔和,注意字数限制,心态放平和
  • 论文返回的审稿意见一般包含下面内容:
    • Summary
    • Pros:论文的优点
    • Cons:论文的缺点
    • Comments:论文的具体评论
  • Point to point:
    • 即便两个审稿人说了相同的问题,也要回复两次
    • 回复的内容尽可能比问题要多,不能太少
  • 如何回答
    • 开放型(What,How)
    • 选择型(Is)
    • 陈述型(Lack of novelty / Do you have novelty)
      • 从 Scenario, Problem, Method, Experiment (Setup, result) 等方面进行回答,要回答跟别人的区别在哪里
  • First thing first:
    • 每一点回复的第一句话要给出 direct answer,后面再给出相应的解释
  • 期刊的 revision 还要给出 revision place,要根据回复真实地修改论文