You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效实现支持大规模词汇的英语形容词转名词Node.js模块

英语形容词转名词Node.js模块实现方案

最优实现方式

目前比纯硬编码全量元组更高效的方案是通用规则匹配+特殊例外映射的组合架构:

  • 90%以上的英语形容词转名词都符合通用后缀规则,只需用正则匹配完成替换即可,无需单独存储每个词的映射关系,内存占用极低
  • 仅将不符合通用规则的特殊转换存入映射表,数据维护成本远低于全量硬编码

通用转换规则参考(按匹配优先级排序)

  • 以-ble结尾的词,替换后缀为-bility,例:possible → possibility
  • 以-y结尾的词,替换后缀为-iness,例:happy → happiness
  • 以-ous结尾的词,替换后缀为-ousness,例:voracious → voraciousness
  • 以-al/-ar/-ic结尾的词,后缀加-ity,例:universal → universality
  • 以-ful结尾的词,替换后缀为-fulness,例:helpful → helpfulness
  • 以-less结尾的词,替换后缀为-lessness,例:useless → uselessness
  • 以-ant结尾的词,替换后缀为-ance,例:important → importance
  • 以-ent结尾的词,替换后缀为-ence,例:different → difference
  • 无匹配规则的词默认返回原词,覆盖同形形容词/名词的场景,例:order → order

示例代码实现

// 特殊例外映射表,仅存储不符合通用规则的转换
const exceptionMap = new Map([
  ['good', 'goodness'],
  ['bad', 'badness'],
  ['warm', 'warmth'],
  ['true', 'truth'],
  ['dead', 'death']
]);

// 按优先级排序的转换规则
const conversionRules = [
  [/ble$/, 'bility'],
  [/y$/, 'iness'],
  [/ous$/, 'ousness'],
  [/(al|ar|ic)$/, '$1ity'],
  [/ful$/, 'fulness'],
  [/less$/, 'lessness'],
  [/ant$/, 'ance'],
  [/ent$/, 'ence']
];

function getNounConversionOf(adjective) {
  // 优先匹配例外
  if (exceptionMap.has(adjective)) {
    return exceptionMap.get(adjective);
  }
  // 匹配通用规则
  for (const [pattern, replacement] of conversionRules) {
    if (pattern.test(adjective)) {
      return adjective.replace(pattern, replacement);
    }
  }
  // 无匹配返回原词
  return adjective;
}

// 效果测试
console.log(getNounConversionOf('universal')); // 输出:universality
console.log(getNounConversionOf('order')); // 输出:order
console.log(getNounConversionOf('voracious')); // 输出:voraciousness

全量转换数据获取

如果需要补全所有特殊例外的映射关系,可以使用公开的英语词法数据集WordNet,其中包含了完整的形容词到名词的派生关系,可直接批量提取生成所需的映射元组,数据权威度高。

内容的提问来源于stack exchange,提问作者james_womack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:54:03