缩写生成器

把长名称切词、取首字母,拼成缩写:Light Amplification by Stimulated Emission of Radiation 得到 LASER。可跳过停用词、合并重复首字母,并逐词列出每个字母来自哪个词,中英文名称都能处理。

缩写LASER
切出词数7
参与取字母5
忽略停用词2
去重丢弃0
缩写字符数5
全大写输出是
切出的词首字母处理方式
LightL取首字母
AmplificationA取首字母
by—跳过(停用词)
StimulatedS取首字母
EmissionE取首字母
of—跳过(停用词)
RadiationR取首字母

输入框里按 Ctrl / Cmd + Enter 生成(Enter 单独按是换行,必须留给它);点「生成缩写」同样触发。逐词表会标出每个词是「取首字母」还是「跳过(停用词)」,方便核对缩写到底是怎么拼出来的。

使用方法

  1. 在待缩写名称框填全称,默认已经是示例值 Light Amplification by Stimulated Emission of Radiation。允许 1~2000 字,可含换行。
  2. 按需勾选三个选项:跳过停用词(默认勾选,忽略 a / of / by / the 等虚词)、合并重复首字母(默认勾选,同一个字母只保留一次)、去掉纯数字词(默认不勾)。
  3. 按 Ctrl/Cmd + Enter 或点「生成缩写」。结果区给出缩写、切出词数与逐词明细。
  4. 看逐词明细表:每一行标出该词取到的首字母,或在「处理方式」里写明「跳过(停用词)」;缩写里的每个字母都能追到来源词。
  5. 点「复制缩写」带走结果;点「载入示例」把输入框还原成默认示例并重算。

这个缩写生成器能解决什么问题

一是给长机构名、技术名造一个稳定的简称。写文档时反复出现「Advanced Encryption Standard」不如先定一个 AES,全文复用。缩写生成器把「取哪些词的首字母、跳过哪些虚词」显式列出来,定名过程可复核,不会今天写 AES 明天写 ADV-AES。

二是核对别人给的缩写是怎么来的。看到 ROM 能倒推是 Read Only Memory,看到 SP 会疑惑为什么不是 ASAP——逐词明细会告诉你 As 被当成了停用词。这类「缩写对不上全称」的疑问,本页能一眼定位到具体哪个词被跳过或合并了。

三是统一命名口径。团队里有人按「只取实词」、有人按「全部取首字母」,同一份材料里就会出现两种缩写。把选项固定下来(跳过停用词 + 合并重复),所有人用同一套规则,缩写才稳定。

四是处理驼峰与连续大写。像 XMLHttpRequest 这种混合命名,直接取首字母只会得到 X,本页会先按边界切成 XML / Http / Request,再取到 XHR,与前端社区习惯一致。

这个缩写生成器不做中文拼音首字母(那需要一本拼音词典,本页不内置,中文按「直接取段首字」处理);不做英文单词的语义判断,只按形式规则切词;也不做「缩写是否已被占用」的查重,命名冲突要人工判断。

原理与规则说明:三种边界切词、停用词与去重

第一步是把输入切成「词」,这靠三条正则。① 小写或数字紧接大写处插边界:s.replace(/([a-z0-9])([A-Z])/g, '$1 $2'),把 XMLHttp 里的 L…H 拆开当锚点;② 连续大写后接「大写+小写」处插边界:s.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2'),把 XMLHttp 拆成 XML + Http,而 HTTP 这种整体缩写不会被拆散;③ 用 match(/[A-Za-z0-9]+|[\u4e00-\u9fff]+/g) 把非字母数字的连字符、点号、空格都当作分隔,并把连续汉字段整体作为一个词。

第二步取首字母。英文词取第一个字符并 toUpperCase();汉字词取第一个汉字本身(不转拼音)。这一步用 charAt(0) 而不是下标访问,是为了避免把代理对(emoji 等)拆成半个字符。示例 Light Amplification by Stimulated Emission of Radiation 切成 7 个词,取到 L、A、S、E、R 五个字母(by、of 被跳过),拼成 LASER。

第三步过滤停用词。停用词表收的是英文虚词:a an the of and or for to in on at with by from as is are be that this it we you our your its not no via per than then so if but。为什么必须包含 as:As Soon As Possible 的三个实词是 Soon / Possible,如果 as 不跳过会得到 ASAP,跳过之后只剩 S 和 P,输出 SP——这不是 bug,而是「严格按实词取首字母」的必然结果。想要 ASAP,把「跳过停用词」取消勾选即可,本页把这条规则的选择权交给你。

第四步处理重复首字母。勾选「合并重复首字母」时,同一个首字母只保留第一次出现;不勾选则全部保留。示例 Big Blue Ball 三个词都是 B,合并后得到 B(丢掉 2 个),不合并得到 BBB。很多经典缩写其实是允许重复的(如 BBC),所以本页默认合并、但保留开关。

中文为什么只取段首字。中文没有词与词之间的空格,也谈不上「首字母」(字母是拉丁概念)。本页采用「直接取字」法:把连续的一段汉字当作一个词,取第一个字,例如 国家 统计 局(中间有空格)得到 国统局,而 中华人民共和国国家统计局 连写没有空格,只切出一个词,得到 中。要得到 GSJ 这种拼音首字母,需要一本汉字到拼音的词典,本页不内置——这是明确的取舍,不是遗漏。

完整示例(数值仅作演示)

与页面打开时的默认值一致:待缩写名称 = Light Amplification by Stimulated Emission of Radiation,跳过停用词 = 勾选,合并重复首字母 = 勾选,去掉纯数字词 = 不勾。实测结果如下:

换几个条件对照:As Soon As Possible 因 as 是停用词得到 SP(切出 4 词、跳过 2 个);HTTP Server 200 OK 得到 HS2O(数字 200 保留,取到 2);Big Blue Ball 合并重复首字母得到 B(去重丢弃 2 个)、不合并得到 BBB。下表列出更多中输入与结果,前 12 行默认显示:

输入全称切出词数缩写忽略停用词去重丢弃
Light Amplification by Stimulated Emission of Radiation7LASER20
Automatic Teller Machine3ATM00
Portable Document Format3PDF00
World Health Organization3WHO00
Application Programming Interface3API00
HyperText Markup Language4HTML00
Read Only Memory3ROM00
North Atlantic Treaty Organization4NATO00
As Soon As Possible4SP20
HTTP Server 200 OK4HS2O00
Value Added Tax3VAT00
Central Processing Unit3CPU00

输入范围与对照表

输入与三个开关的范围、异常时的动作,右列是结果区会显示的具体提示:

字段/情况允许范围异常时的动作
待缩写名称1~2000 字符,必填空或只有空白时拒绝,提示「没有可缩写的内容」
超过 2000 字符拒绝报出实际长度并提示「请截取到 2000 字符以内」
切不出任何词无字母数字与汉字提示「没有取到任何可缩写的词,请检查是否只有标点」
全部词被跳过—提示「所有词都被当作停用词跳过了」,并建议取消「跳过停用词」
切出的词超过 300 个上限 300 词拒绝并提示缩小范围,避免输出几百个字母的伪缩写
纯标点/符号不作为词不报错但会提示「没有取到任何可缩写的词」

三种切词边界的行为对照,用来理解为什么 XMLHttpRequest 能得到 XHR:

输入片段命中的边界规则切出的词
HyperText小写紧接大写Hyper / Text
XMLHttp连续大写 + 大写接小写XML / Http
HTTP整体连续大写,不切HTTP
123abc字母与数字同段,不切123abc
state-of-art连字符作分隔state / of / art
国家 统计 局汉字段按空格分隔国家 / 统计 / 局

输入范围、边界与精度说明

常见问题

为什么 As Soon As Possible 得到的是 SP 而不是 ASAP?

因为 as 在停用词表里。三个实词只剩 Soon 和 Possible,取到 S、P,拼成 SP。要得到 ASAP,把「跳过停用词」取消勾选,它就按四个词全部取首字母,得到 A、S、A、P 再合并重复得到 ASP(或保留重复 ASAP)。这也说明缩写结果强依赖那条停用词规则,规则可见才能复现。

XMLHttpRequest 为什么能得到 XHR 而不是 X?

因为第一步先做了边界切分。小写紧接大写、连续大写接「大写+小写」两处都插了空格,XMLHttpRequest 被切成 XML / Http / Request 三个词,再取首字母就是 X、H、R。如果跳过切词直接取整串首字母,就只剩一个 X——这也是本页要显式实现两种驼峰正则的原因。

中文为什么输出一个字或几个汉字,而不是拼音首字母?

拼音首字母需要「汉字→拼音声母」的词典,本页不内置这本词典,所以走的是「直接取字」法:连续汉字算一个词,取第一个字。国家 统计 局 因为中间有空格被切成三个词,得到 国统局;中华人民共和国国家统计局 连写只切出一个词,得到 中。想要 GSJ,请用空格分词或另找带拼音词典的工具。

「合并重复首字母」该不该勾?

看命名习惯。经典缩写里既有 BBC(重复 B 保留)也有大量去重的例子,行业惯例不同。团队内部统一即可:对外文档若已有约定(例如务必保留重复),就关掉这个开关。本页默认勾选,是为了让 Big Blue Ball 这种词不产出 BBB 这样的怪缩写。

数字会被取进缩写吗?

默认会。切词时数字和字母同为一段,200 会被取到首字符 2,所以 HTTP Server 200 OK 得到 HS2O。若编号不应进入缩写,勾选「去掉纯数字词」,200 会被整体丢弃,结果变成 HSO。含字母数字混合的词(如 HTML5)不受这个开关影响。

连字符、点号、括号怎么处理?

都被当成分隔符丢掉。state-of-art 切成 state / of / art 三个词,取 S、O(of 停用)、A,得到 SA;点号和括号同理,只起分隔作用、不会进入缩写。这样处理是为了让「带标点的全称」和「空格分隔的全称」得到一致结果。

为什么所有词都被跳过了?

当输入里只有停用词(例如只填 the of and),过滤后会剩下空缩写。本页不会给出空白结果,而是报错提示「所有词都被当作停用词跳过了」,并建议取消「跳过停用词」。这属于规则导致的空结果,需要你决定是否调整选项,而不是工具出错。

生成的缩写能直接拿去用吗?

形式上是合规的,但命名建议再过三道检查:一是是否与已有术语撞名(LASER、BASIC 这类既有的词要留意);二是可读性,太长的缩写不如截短词;三是团队是否已约定别的缩写。本页负责「按统一规则快速算出一个可复现的缩写」,最终定名仍由人决定。

相关工具