npm 包 nysiis-phonetics 使用教程

阅读时长 3 分钟读完

引言

在语音识别、拼音输入、歌曲歌词对照等应用场景中,需要对单词进行音译处理。nysiis-phonetics 是一款基于 NYSIIS 算法生成单词音译的 npm 包。本篇文章将详细介绍如何使用 nysiis-phonetics。

安装

使用 npm 包管理工具,可安装 nysiis-phonetics:

使用

引入

在 JavaScript 文件中,可使用以下方式引入 nysiis-phonetics:

使用示例

  1. 将单词转换为音译
  1. 将句子按单词转换为音译

深度讲解

NYSIIS 算法(New York State Identification and Intelligence System)是一种用于姓名音译的算法,由纽约州政府犯罪调查局(New York State Department of Criminal Justice Services)发明。该算法移除了姓名中不重要的元音,将姓名翻译为一个七位字母表达的代码,有助于机器识别及比较。

NYSIIS 算法主要有以下几个步骤:

  1. 将字符串转换为大写
  2. 若字符串以 MAC 开头,将其转换为 MCC
  3. 若字符串以 KN 开头并且其后跟一个 AE,将 KN 转换为 N 后去掉 AE,举例:KNAACK => NACK,KNIGHT => NAT
  4. 将字符串中的 EV 和 E 抛弃,将 AY 转换为 Y,举例:BALEY => BLY,MARY => MERY
  5. 将字符串中的 PH 和 PF 替换为 F,将 SCH 替换为 S,将 H 从字符串中移除,举例:PHOENIX => FENIX,SCHAFER => SAFER
  6. 将字符串中的 EO、IA、IO、IE 替换为 Y,将 SH、SCH 替换为 S,将 EE、IE、DT、RT、RD 替换为 D,将 OH、OK、U、OO、LE 替换为 A,将 ANY、ERY、ARY、OR、UR 替换为 Y,将 AU、AW 替换为 A,举例:MACDONALD => MCCDNALD;DU BOIS => DABAS;KNIGHT => NAT;SCHAFER => SAFER;BOWIE => BAY;TURPIN => TARPN;CONNOLLY => CONALY;CAGLE => CAAL;MCCARTHY => MCCARTY;SCHULTZ => SULTS;MADRIZ => MADRAS
  7. 舍去字符串末尾的 S 或 Z,并在字符串末尾添加 A,直到代码长度达到 7 为止

NYSIIS 算法的代码输出具有如下特点:

  1. 同音字将有相同的代码输出(如 write 和 right 输出的代码都为 RAT)
  2. 姓名相似的人,其代码输出有相似之处

指导意义

nysiis-phonetics 是一款将英文单词翻译为代码的 npm 包,适用于语音识别、拼音输入、歌曲歌词对照等场景。对于同音字的处理,可以将其代码输出作为比对参考。对于姓名相似的人,可以通过比对其代码判断是否为同一人。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f9b3d1de16d83a66e0d

纠错
反馈