pinyin: 把汉字转换成拼音的R包 |
您所在的位置:网站首页 › 跷跷板的拼音声调 › pinyin: 把汉字转换成拼音的R包 |
更新:2017-06-19,‘pinyin 1.0.2’ 在 CRAN 正式发布。 今天新写了个R包,粗暴地取名为 pinyin,作用是把汉字转换成拼音。 安装方法: 稳定版: install.packages("pinyin") devtools::install_github("pzhaonet/pinyin")安装时可能会出现一些关于 locale 的警告,净吓唬人,无视。 使用方法: pinyin 0.0.0版包含3个函数.pinyin()是主函数,可以把一个带汉字的字符串转换成拼音。可以选择: 转换成标准的全拼 (默认 method = 'quanpin'),或 以数字表示声调 (method = 'tone') , 或 不含声调(method = 'toneless'), 也可以选择仅保留每个字的首字母(only_first_letter = TRUE), 可以自定义相邻两字拼音的分隔符号(sep = '_'), 如果汉字字符串里边包含非汉字字符,可以选择将这些字符保留原样(nonezh_replace = NULL)还是转换成指定字符(如nonezh_replace = '-')。举例如下: library('pinyin') pinyin('羌笛何须怨杨柳春风不度玉门关') pinyin('羌笛何须怨杨柳春风不度玉门关', sep = ' ') pinyin('羌笛何须怨杨柳春风不度玉门关', sep = ' ', method = 'tone') pinyin('羌笛何须怨杨柳春风不度玉门关', sep = ' ', method = 'toneless') pinyin('羌笛何须怨杨柳春风不度玉门关', sep = '', only_first_letter = TRUE) pinyin('羌笛何须怨?杨柳春风,不度玉门关.', sep = '', nonezh_replace = '-')如果自变量是多个字符串的向量,那么只会转换第一个字符串: pinyin(c('羌笛何须怨杨柳', '春风不度玉门关'))这怎么行?哎,用 sapply() 嘛: sapply(c('羌笛何须怨杨柳', '春风不度玉门关'), pinyin)其他两个函数,其实是 pinyin() 的延伸和示例: file.rename2py()用来将文件名里的汉字转换成拼音。 bookdown2py()是专门为 bookdown 包服务的,作用是为章节的中文标题自动添加个对应的拼音ID {#biaotipinyin},避免在生成网页文件时文件名里出现一大堆乱码,并且解决标题里中英文混合的问题。这事儿已经让我惦记三个月了。— 当然这事儿手动完全可以处理,只是手动处理的过程毫无乐趣可言罢了。拼音库我试了好几个,最后选定了wangyanhan整理制作的42856字拼音表,直接处理文本文件,简单粗暴,转换起来可能有点慢,会顿一下,但已经够我自用了。 我写这个包的环境是 windows 7 下区域设置为中国,别的环境没测试,估计会有不少坑。我这里就有一些,比如不知道哪里设置有问题,包的函数里居然不能出现中文字符,弄得我自变量的默认值和example部分只好空着。再比如多音字的问题,目前完全没处理。所以,转换春眠不觉晓的结果会让人愣一下,再转换处处闻啼鸟…… 结果好尴尬。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |