支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
作者:ChineseUtil 发布时间:2023-11-08 10:48:13
标签:PHP,中文分词,ChineseUtil
PHP 中文工具类,支持汉字转拼音、拼音分词、简繁互转。
PHP Chinese Tool class, support Chinese pinyin, pinyin participle, simplified and traditional conversion
目前本类库拥有的三个功能,都是在实际开发过程中整理出来的。这次使用的数据不同于以前我开源过汉字转拼音和简繁互转,数据都是从字典网站采集下来的,比以前的数据更加准确。
由于中文的博大精深,字有多音字,简体字和繁体字也有多种对应。并且本类库返回的所有结果,均为包含所有组合的数组。
本类库字典数据加载后会占用 40+ MB 内存,在访问量大的接口要使用此类汉字转拼音、繁简转换功能时,推荐用 Swoole 开发一个异步服务程序,只需加载一次数据,就可以持续高效地为你提供服务。
使用说明
Composer 直接安装
composer require yurunsoft/chinese-util
Composer 项目配置引入
"require": {
"yurunsoft/chinese-util" : "~1.0"
}
功能
汉字转拼音
use \Yurun\Util\Chinese;
$string = '恭喜發財!把我翻译成拼音看下?';
echo $string, PHP_EOL;
echo '所有结果:', PHP_EOL;
var_dump(Chinese::toPinyin($string));
echo '全拼:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN));
echo '首字母:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_FIRST));
echo '读音:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND));
echo '读音数字:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER));
echo '自选 + 自定义分隔符:', PHP_EOL;
var_dump(Chinese::toPinyin($string, Pinyin::CONVERT_MODE_PINYIN | Pinyin::CONVERT_MODE_PINYIN_SOUND_NUMBER, '/'));
/**
输出结果:
array(4) {
["pinyin"]=>
array(1) {
[0]=>
string(58) "gong xi fa cai ! ba wo fan yi cheng pin yin kan xia ? "
}
["pinyinSound"]=>
array(4) {
[0]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kàn xià "
[1]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kàn xià "
[2]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kān xià "
[3]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kān xià "
}
["pinyinSoundNumber"]=>
array(4) {
[0]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[1]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[2]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
[3]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
}
["pinyinFirst"]=>
array(1) {
[0]=>
string(34) "g x f c ! b w f y c p y k x ? "
}
}
全拼:
array(1) {
["pinyin"]=>
array(1) {
[0]=>
string(58) "gong xi fa cai ! ba wo fan yi cheng pin yin kan xia ? "
}
}
首字母:
array(1) {
["pinyinFirst"]=>
array(1) {
[0]=>
string(34) "g x f c ! b w f y c p y k x ? "
}
}
读音:
array(1) {
["pinyinSound"]=>
array(4) {
[0]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kàn xià "
[1]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kàn xià "
[2]=>
string(63) "gōng xǐ fā cái bǎ wǒ fān yì chéng pīn yīn kān xià "
[3]=>
string(63) "gōng xǐ fā cái bà wǒ fān yì chéng pīn yīn kān xià "
}
}
读音数字:
array(1) {
["pinyinSoundNumber"]=>
array(4) {
[0]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[1]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan4 xia4 "
[2]=>
string(63) "gong1 xi3 fa1 cai2 ba3 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
[3]=>
string(63) "gong1 xi3 fa1 cai2 ba4 wo3 fan1 yi4 cheng2 pin1 yin1 kan1 xia4 "
}
}
自选 + 自定义分隔符:
array(2) {
["pinyin"]=>
array(1) {
[0]=>
string(58) "gong/xi/fa/cai/!/ba/wo/fan/yi/cheng/pin/yin/kan/xia/?/"
}
["pinyinSoundNumber"]=>
array(4) {
[0]=>
string(63) "gong1/xi3/fa1/cai2/ba3/wo3/fan1/yi4/cheng2/pin1/yin1/kan4/xia4/"
[1]=>
string(63) "gong1/xi3/fa1/cai2/ba4/wo3/fan1/yi4/cheng2/pin1/yin1/kan4/xia4/"
[2]=>
string(63) "gong1/xi3/fa1/cai2/ba3/wo3/fan1/yi4/cheng2/pin1/yin1/kan1/xia4/"
[3]=>
string(63) "gong1/xi3/fa1/cai2/ba4/wo3/fan1/yi4/cheng2/pin1/yin1/kan1/xia4/"
}
}
* /
拼音分词
use \Yurun\Util\Chinese;
$string2 = 'xianggang';
echo '"', $string2, '"的分词结果:', PHP_EOL;
var_dump(Chinese::splitPinyin($string2));
/**
输出结果:
"xianggang"的分词结果:
array(2) {
[0]=>
string(12) "xi ang gang "
[1]=>
string(11) "xiang gang "
}
* /
简繁互转
use \Yurun\Util\Chinese;
$string3 = '中华人民共和国!恭喜發財!';
echo '"', $string3, '"的简体转换:', PHP_EOL;
var_dump(Chinese::toSimplified($string3));
echo '"', $string3, '"的繁体转换:', PHP_EOL;
var_dump(Chinese::toTraditional($string3));
/**
输出结果:
"中华人民共和国!恭喜發財!"的简体转换:
array(1) {
[0]=>
string(39) "中华人民共和国!恭喜发财!"
}
"中华人民共和国!恭喜發財!"的繁体转换:
array(1) {
[0]=>
string(39) "中華人民共和國!恭喜發財!"
}
* /
来源:https://gitee.com/yurunsoft/ChineseUtil
0
投稿
猜你喜欢
- 在分析sIFR之前,先来快速的了解一下sIFR是什么,以及它是如何工作的。sIFR表示scalable Inman Flash Replac
- YUI Compressor 压缩 JavaScript 的内容包括:移除注释移除额外的空格细微优化标识符替换(Identifier Rep
- 相关代码如下: 1. 创建sequence: 代码如下:CREATE SEQUENCE SEQU_DATA_DATAINFO IN
- xml(可扩展标记语言)看起来可能像某种w3c标准——现在没有什么实际影响,即使以后能派上用场,也是很久以后的事。但实际上,它现在已经得到了
- 模式库在模式库里,我将列出所有电子商务网站需要的模式.以下将罗列出经典常用的模式案例,我也试图让这些模式看起来更有趣味性与实用性。(Yaho
- mysql是linux平台下最流行的数据库系统,今天介绍的是mysql的安装及简单的操作方法!groupadd mysql //建立mysq
- 先装 MYSQL 的 ODBC 驱动然后'connect to MySQL server&n
- ASP,一种最先广泛的流行在WEB行业的编程语言。严格的说,ASP还算不上的编程语言。不过,因为微软的大力支持,ASP这一路,走得非常顺利。
- 本文实例讲述了php7 图形用户界面GUI 开发。分享给大家供大家参考,具体如下:一、下载指定系统扩展http://pecl.php.net
- new fun的执行过程分析,学习面向对象的朋友可以参考下。(1)创建一个新的对象,并让this指针指向它;(2)将函数的prototype
- ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间
- Brendan Eich于1995年在Netscape发明了JavaScript语言,这个语言在过去的一些年里曾是一个最被误解的语言,随着A
- 随着3G的普及,越来越多的人使用手机上网。移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在
- 与大多数可以面向对象的编程语言不一样, PHP 是同时支持面向过程和面向对象的编程方式, PHP 开发者可以在面向过程和面向对象二者中自由选
- 1、图片防盗链在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误。简单代码:<!DOCTYP
- 每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显示方式绞合,使得代码
- 当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX
- 本文实例为大家分享了vuejs实现下拉框菜单选择的具体代码,供大家参考,具体内容如下方法一:<script type="te
- 本文实例讲述了php中fgetcsv()函数用法。分享给大家供大家参考。具体方法如下:fgetcsv是一个简单的生成excel文档的函数,从
- 我们可用一个函数来实现小数转分数,不过只能转换能够整除的分数:Public Function XtoF(str