作者AmosYang (泛用人型编码器)
看板Soft_Job
标题[心得][英文] 如何命名「种类」
时间Fri Jul 24 13:12:28 2020
有时候,我们会依照人事物的性质、特徵做「分组(group) 、标记(tag) 」。
像是:
* 把房间里的杂物分类成书籍、服饰、器具。
* 把书分类成小说、漫画、工具书。
* 把小说分类成爱情、历史、奇幻、科幻。
那麽,该怎麽用英文描述那个「分组的种类、类别、类型」?
# 先说结论: "category" 可说是最万用的选择。
这篇文章会深入探讨 type / class / category / classification 的语意,希望
能帮助读者学会用英文提昇程式可读性。
* Google 简报
https://bit.ly/2OOSpEs
* Facebook 相簿
https://bit.ly/3ju7sBz
* GitHub 讨论
https://bit.ly/321ResR
---
# 如何命名「种类」?
「分组、标记」时,中文多半会用「种、类、型」来表达那「分组的组别」。
例如:
1. 书籍
种类 ← 小说、漫画。
2. 刊物
分类 ← 周刊、月刊、年刊
3. 游戏
类型 ← 动作、战略、模拟
4. 舱等
种类 ← 经济舱、商务舱
5. 血
型 ← A、B、O、AB
6. 发
型 ← 长发、短发
7. 狗的
品种 ← 柴犬、哈士奇
读者可以试试将以上「种、类、型」等字对应到英文字汇(本文最後有参考答案)
。
如果这对你来说很容易,可以到《程式英文》 GitHub 讨论区
https://bit.ly/321ResR
看看有没有更有趣的题目,或提出你在写程式时遇到的英文问题;这能帮助我把这
个知识库整理得更完善。谢谢 :)
---
随着情景、领域不同,用来表达「种、类、型」的英文字汇也不同。
# 情景
大致而言,「把人事物分组」有三种目的;它们对应的英文字如下:
* 区分、隔离 → type / class
* 归纳、整理 → category / subcategory
* 定义、监别 → classification / 领域特有字
# 领域
有些领域有它的特有字,比如:
* 艺术作品(电影、音乐、游戏) → genre
* 车 → make、 model
* 生物 → 物种(species)、品种(breed)、品系(strain)
本文後面会提到如何探索每个领域的特有字。
---
# 情景:为了「区分、隔离」而分组
例如说:
* 「世界上有 10 种人:懂二进位的人、不懂二进位的人。」
「懂二进位的人」、「不懂二进位的人」都是人,而这里的语意是想 *区分* 这两
种人。
在这种情景下,就适合用 type / class 。
## Type
除了「种、类」, type 还可以对应到「型」。
例如:
* 血型(blood type)
* 统计学上的「第一型错误(type I error)」、「第二型错误(type II error)」
## Class
class 除了「种类」外,另有「级」(阶级、品级)的意思。
例如:
* 头等舱(first class)
* 中产阶级(middle class)
---
# 情景:为了「归纳、整理」而分组
相对於「为了『区分、隔离』而分组」,有时候就只是单纯列举「种类、组别」;
例如说:
* 「书店二楼的书大致上有三类:漫画、小说、画册。」
这种情景下就适合用 category ;如果有需要,可以再细分为 subcategory 。
例如:
* 念能力:强化、放出、变化、操作、具现化、特质
* 商品种类
* 在电商网站上常可看到 Category / Categories 等字。
* 参考截图:
https://bit.ly/2OTcQ2M
---
# 情景:为了「定义、监别」而分组
有的时候需要「严谨的分组」;例如说:
* 「汽车驾照有『普通、职业』两大类,每类再细分为『小型车、大货车、大客车
、联结车』四种。」
这时候就适合用 classification ,或着该领域特有字。
例如:
* 期刊类别:周刊、月刊、季刊、年刊
* 出刊频率(publication frequency)
* 猎人阶级:无牌、业余、初级、一星、二星、三星
---
# 那 Sort / Kind 呢?
## Sort
在电脑科学、软体工程、程式设计的领域里,因为 sort 更常与「排序」连结在一
起,所以不建议再用 sort 来表种「种类」。
## Kind
kind 可以用在「避免与程式语言中既有的 "type" 混淆」的情形。
例如 .NET 的 `DateTimeKind` 是用来区分一 DateTime 物件是当地时间,或是
UTC 时间。
*如果* 被命名为 DateTimeType, 就容易与 "DateTime type" 混淆。
---
# 探索「领域特有字」
## 参考电商网站
从电商网站的商品目录、搜寻介面可以学到它们是用哪些字表达「种、类」。
诸如:
*
https://store.steampowered.com/ 用 genre 来分类游戏。
*
https://www.youtube.com/audiolibrary/music
* 用 genre, mood, instrument (类型、心情、乐器)来分类音乐。
* 用 category 来分类音效。
*
https://www.carmax.com/cars
* 用 type 来分类车种(运动型休旅车、卡车、轿车、等等)
* 用 brand / make 来分类品牌
* 用 model 来分类车系
* 用 price 来分类售价范围
* 用 body style 来分类车型
* 用 year 来分类制造年份
## 拜 Google
或着,可以这样拜 Google:
* how to categorize 名词
* how to classify 名词
例如 "how to categorize wine" (如何分类酒)传回的第一个结果:
* "Classification of wine"
*
https://en.wikipedia.org/wiki/Classification_of_wine
可以进一步找到更多的关键字:
* place of origin / appellation 产地
* vinification methods and style 酿酒方法
* sweetness 甜度
* vintage 年份
另一个例子, "how to classify steak" (如何分类牛排)传回的第一个结果:
* Understanding Cuts and Grades of Steak
*
https://www.thespruceeats.com/steak-grades-and-cuts-331671
可以从该文章找到更多关键字,像是牛排的等级(grade)、牛肉的部位(cut) 。
---
# 到底什麽时候该用哪一个字?
"category" 可说是最万用的选择。
依情景不同,以下是一些参考案例:
* 卡尔达肖夫指数(Kardashev Scale)
* 「第几型(type)文明」
* 萨菲尔-辛普森飓风风力等级(Saffir–Simpson hurricane wind scale)
* 「第几级(category)飓风」
* 船级(Ship class)
* 「船级(class)」
* 「船种(type)」
* 福特级航空母舰(Ford-class aircraft carriers)
* 牛排熟度(Doneness)
* Degree of Doneness
* Level of Cooking
如果有不确定的情形,欢迎到《程式英文》 GitHub 讨论区
https://bit.ly/321ResR
提问、讨论。
---
# 「种、类、型」 vs. 「组、标签、属性」
前面提到的「种、类、型」英文字汇适合用来与「人」沟通。
例如:
* 电商网站介面 → 与客户、消费者沟通
* 程式码 → 与开发团队成员沟通
实务上,程式设计师考量「演算法、资料结构」时,多少会需要把「种、类、型」
更进一步抽象化成「组、标签、属性」。
这里列举这「抽象化」过程可能会有帮助的英文单字:
* 组 → Group
* 标签 → Tag
* 属性 → Attribute / Property
---
题外话: 「 Attribute 与 Property 有什麽不同?」
坦白说,我也不知道 XD
我开了
https://github.com/EngTW/English-for-Programmers/issues/25 来追踪
这个问题。
---
# 结语
如果程式用字能接近美式英文当然是好,但不需要给自己太大的压力,因为每个人
都是从零开始学起 :)
这一系列文件的目的是想帮助读者缩小中英文之间语感的落差。
这篇关於「种类」的文章,是从读者提问得到的灵感,我自己也学到了很多东西。
若你在程式写作上有遇到「英文表达」的问题,欢迎在这篇文章下留言,或到以下
网站提问讨论。
* GitHub 讨论区
https://bit.ly/321ResR
* Facebook 相簿
https://bit.ly/3ju7sBz
* Twitter 讨论
https://bit.ly/2CYKgdZ
这可以帮助我把这系列文件整理得更完善,谢谢 :)
---
# 其它资讯
* Google 简报
https://bit.ly/2OOSpEs
## *参考* 答案
1. category
2. classification, publicationFrequency
3. genre
4. class
5. type
6. style
7. breed
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.56.13.184 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1595567563.A.CCF.html
1F:推 tbpfs: 赶快推~以免被人家知道不懂 07/24 13:17
XD
在写这篇文章前,其实我对这几个字的语意差别是一知半解。
是从网友提问才发现,这几个字背後也有它的学问。 :)
※ 编辑: AmosYang (136.56.13.184 美国), 07/24/2020 13:22:53
2F:推 alohac: 念能力还蛮恰当的 嘻嘻 07/24 13:51
3F:→ testPtt: 我偏要用zhonglei 07/24 14:01
XD
4F:推 yyhsiu: 推,然後楼上我笑了 07/24 15:17
5F:推 yoche2000: 推念能力 07/24 15:30
讲到念能力,
> * 期刊类别:周刊、月刊、季刊、年刊
> * 出刊频率(publication frequency)
「期刊类别」除了「周刊、月刊、季刊、年刊」,应该再加个「火凤、冨樫」。 XD
6F:→ roccqqck: species如何 07/24 18:26
根据字典,看来 "species" 适合用在科学方面,例如
* 生物物种
* 化学、物理上的原子、分子、离子、粒子的种类
7F:推 kevin979: 推,最近公司要统一命名规范,心好累~ 07/24 18:45
能理解 :)
如果遇到英文相关的问题,欢迎来讨论 (或 Facebook, Twitter 私讯也可以) :)
* GitHub 讨论区
https://bit.ly/321ResR
* Facebook 相簿
https://bit.ly/3ju7sBz
* Twitter 讨论
https://bit.ly/2CYKgdZ
※ 编辑: AmosYang (136.56.13.184 美国), 07/24/2020 19:57:55
8F:推 WestMelon: 优文推 07/24 19:44
谢谢 :)
9F:推 handsomeburg: 但type / class很大比例是保留字 07/24 19:48
十分同意。
* 有些语言允许使用保留字,例如 C# 可以在保留字前加上 "@", 就可以当一般
identifier 使用;例如 @object
* 有些语言是 case-sensitive, 大写的 Class 不会被视为 "class" 保留字
* 最後还有一个方法,就是组合字,例如 ShipClass ,来避开保留字
※ 编辑: AmosYang (136.56.13.184 美国), 07/24/2020 20:06:55
10F:推 jasonwung: 推 07/24 20:56
11F:推 CaptPlanet: 赞赞赞 07/24 22:48
谢谢 :)
12F:推 brianhsu: 另一种是故意换个方式拼,用 clazz 也满常看到的。 07/25 09:20
同意,感谢补充 :)
※ 编辑: AmosYang (136.56.13.184 美国), 07/25/2020 11:18:00
13F:推 ian90911: 感谢分享 07/25 14:04
14F:推 sk6852: 推!感谢分享 07/25 15:19
15F:推 qaz0101: 推 07/25 17:09
谢谢 :)
16F:推 CoNsTaR: Kind 在 type system 里面也有意思啊 07/26 14:13
的确,你说的对。
我把原文
> kind 可以用在「避免与电脑科学的 "type system" 的 "type" 混淆」的情形。
改成了
> kind 可以用在「避免与程式语言中既有的 "type" 混淆」的情形。
这样应该比较不会造成更多误会?
17F:推 mybluesky: 好文推 07/26 16:53
谢谢 :)
※ 编辑: AmosYang (136.56.13.184 美国), 07/26/2020 20:52:28
18F:推 cowbon: 推 09/25 13:14
19F:推 Rmustang: 好文推推 02/09 13:26
20F:推 yyhsiu: 被这篇帮助到了 推推~ 05/29 12:28