美文网首页iOS程序猿
Swift 基于词库的汉字转拼音

Swift 基于词库的汉字转拼音

作者: 琳川 | 来源:发表于2021-01-01 12:17 被阅读0次

很多时候我们都会遇到把汉字转换为拼音的需求,其实iOS就提供了把汉字转拼音的API,但是在对于多音字转换来说,我们还是需要有一个自己的词库来提高我们转换的准确率,所以我就自己简单写了一个,PinYinSwift(https://github.com/hlc0000/PinYinSwift)请各位大佬批评指正。

关于多音字

想要准确得识别每一条语句中的多音字有两个关键因素,一个是能否准确得给语句进行分词,还有一个就是我们的词库的丰富程度。

关于PinYinSwift中的一些介绍:

因为PinYinSwift原来是我自己工作中所需要使用到的,然后我把它整理了之后向外部提供了几个接口,目前功能比较当一,就是单纯得转换为拼音而已,也没有提供带声调的转换或者是首字母排序等等,这些以后如果有时间我会再添加进去。

PinYinSwift内部的转换方式分为两种:

1:默认模式:通过最大匹配方式进行转换,比如:
北京奥运会这样一句需要转换为拼音的语句,我的unicode_sentenceto_pinyin这个词库中最长的词是4个字
判断 北京奥运 是否在词库中,不在;
判断北京奥是否在词库中,不在;
判断 北京是否在词库中,在,得到bei3 jing1
判断 奥运会 是否在词库中,不在;
判断 奥运 是否在词库中,在,得到ao4 yun4
判断是否在词库中,在,得到 hui4

2:采用系统分词方式进行转换,比如说:
北京奥运会这样的语句采用系统分词可能会被分成北京/奥运会
判断北京是否在词库中,在,得到bei3 jing1
判断 奥运会 是否在词库中,不在;
判断奥运是否在词库中,在,得到ao4 yun4
判断是否在词库中,在,得到hui4

说明:采用系统API进行分词后转换的,标点符号会被丢弃

使用方法:

手动导入:

1、下载PinYinSwift文件夹内所有内容
2、将PinYinSwiftDemo中的PinYinSwift文件夹添加到你的工程

几个开放接口的使用介绍:

可以直接穿入一个String类型数据转换为拼音,isDefaultParticiple默认为true,默认使用最大匹配算法,如果设置为false,即使用系统API进行分词

static func hanyuPinyinString(content:String,
isDefaultParticiple:Bool=true)->String{}

可以传入一个[String],然后内部会循环把[String]中的语句转换为拼音

static func hanyuPinyinStringArray(array:Array<String>,
isDefaultParticiple:Bool=true)->[String]{}

可以传入一个[AnyObject]类型数据,并且指定要转换为拼音的属性名称,内部会创建一个transformationModel的对象,并且把外部传递进来的[AnyObject]中的模型作为transformationModel中的一个属性

外部class需要继承NSObject以及在class前面加上@objcMembers

static func hanyuPinyinAnyArray(array:Array<AnyObject>,
propertyName:String,isDefaultParticiple:Bool=true)->[transformationModel]?{}
class transformationModel{

  var pinyinName:String = "" 

  var model:AnyObject   

  init(model:AnyObject) {       

      self.model = model   

    }

}

希望各位小伙伴多多提出宝贵意见,交流学习~

相关文章

  • Swift 基于词库的汉字转拼音

    很多时候我们都会遇到把汉字转换为拼音的需求,其实iOS就提供了把汉字转拼音的API,但是在对于多音字转换来说,我们...

  • Python 拼音汉字互转

    汉字转拼音:pypinyin拼音转汉字:Pinyin2Hanzi Python汉字转拼音-拼音转汉字的效率测评

  • swift 汉字转拼音

    swift中提供了这样一个方法: 注释的大意是转换制定的字符串,并修改传进来的参数,只有指定范围内被修改,范围制定...

  • swift中汉字转拼音

    做搜索或者通讯录匹配时,常需要将汉字信息转成拼音来方便搜索 通过对String的扩展,我们就可以轻松做到 最近也在...

  • python汉字转拼音

    场景说明 把中文汉字、转成汉语拼音,包括: 纯汉字转拼音 汉字里面加有字母转拼音 转加声调的拼音 转用数字表示声调...

  • iOS知识小积

    1.iOS 拨打电话的三种方式 -swift 2.iOS 汉字转拼音 -swift 3.iOS self.navi...

  • 发布 | 汉字转拼音工具

    通过查找汉字拼音库实现实时汉字转拼音的功能。 实现 加载汉字拼音对照文件pinyin.txt(4万+汉字拼音对照)...

  • 发布 | 汉字转拼音工具

    通过查找汉字拼音库实现实时汉字转拼音的功能。 实现 加载汉字拼音对照文件pinyin.txt(4万+汉字拼音对照)...

  • 汉字转拼音

    汉字转拼音有很多种方法, 在这里推荐一个在线的免费转拼音的网站。 点击访问??汉字转拼音??

  • Python 中拼音库 PyPinyin 的使用

    ython 中提供了汉字转拼音的库,名字叫做 PyPinyin,可以用于汉字注音、排序、检索等等场合,是基于 ho...

网友评论

    本文标题:Swift 基于词库的汉字转拼音

    本文链接:https://www.haomeiwen.com/subject/rthjoktx.html