tekintian/pinyin

完美的汉字转拼音工具,支持自定义映射、特殊字符处理和自动学习功能。

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/tekintian/pinyin

dev-main 2025-11-17 14:19 UTC

This package is auto-updated.

Last update: 2025-11-17 14:25:49 UTC


README

License Latest Stable Version Total Downloads

一个功能强大的汉字转拼音工具,支持自定义映射、特殊字符处理、自动学习功能和多音字处理。基于权威的Unihan数据库,提供完整的汉字拼音转换解决方案。

✨ 核心特性

  • 🔤 精准转换 - 支持常用字和生僻字的准确拼音转换
  • 🧠 智能学习 - 自动识别并记忆生僻字的拼音,支持自学习字典合并
  • 🎛️ 多模式处理 - 三种特殊字符处理模式:keep/delete/replace
  • 🔀 多音字识别 - 基于上下文的多音字智能处理
  • 📚 完整字典系统 - 多级字典优先级,支持懒加载和内存优化
  • ⚡ 高性能 - 多级缓存机制,支持高频字符快速转换
  • 🔧 灵活配置 - 丰富的配置选项,满足不同使用场景
  • 🔄 后台任务 - 完整的后台任务管理系统,支持守护进程模式
  • 🌐 Unihan集成 - 基于Unicode权威数据库的拼音数据

📋 快速开始

安装

使用Composer安装:

composer require tekintian/pinyin

基本使用

use tekintian\pinyin\PinyinConverter;

// 创建实例
$pinyinConverter = new PinyinConverter();

// 基本转换
$pinyin = $pinyinConverter->convert('你好,世界!');
echo $pinyin; // 输出: ni hao shi jie

// 保留声调
$pinyinWithTone = $pinyinConverter->convert('你好,世界!', ' ', true);
echo $pinyinWithTone; // 输出: nǐ hǎo shì jiè

// 生成URL Slug
$slug = $pinyinConverter->getUrlSlug('你好,世界!');
echo $slug; // 输出: ni-hao-shi-jie

🏗️ 项目架构

字典优先级系统

从高到低依次为:

  1. custom_xxx - 自定义字典(用户自定义映射)
  2. polyphone_xxx - 多音字规则字典
  3. common_xxx - 常用字典
  4. rare_xxx - 生僻字字典
  5. unihan - Unihan字典(基于权威Unicode数据库)

核心模块

  • src/PinyinConverter.php - 主转换器类,提供核心转换功能
  • src/BackgroundTaskManager.php - 后台任务管理器
  • bin/task_runner.php - 统一任务运行器(支持守护进程模式)
  • unicode/ - Unihan数据管理和处理工具
  • tools/ - 辅助工具集(自动获取、测试、解析等)

🚀 高级功能

后台任务管理

# 守护进程模式(推荐生产环境)
php bin/task_runner.php -m daemon -i 60

# 批量处理模式
php bin/task_runner.php -m batch -b 100 -l 500

# 一次性执行模式
php bin/task_runner.php -m once

Unihan数据管理

use tekintian\pinyin\unicode\UnihanDataManager;

$manager = new UnihanDataManager();

// 更新Unihan数据
$updated = $manager->updateData();

// 生成数据报告
$report = $manager->generateReport();

特殊字符处理

// keep模式:保留所有特殊字符
$result = $converter->convert('你好$世界', ' ', false, 'keep');

// delete模式:删除非安全字符
$result = $converter->convert('你好$世界', ' ', false, 'delete');

// replace模式:自定义替换
$result = $converter->convert('你好$世界', ' ', false, [
    'mode' => 'replace',
    'map' => ['$' => 'dollar']
]);

📊 数据统计

Unihan字典覆盖

区块 字符数量 说明
CJK基本汉字 20,924 常用汉字
CJK扩展A区 5,786 扩展A区生僻字
CJK扩展B区 14,614 扩展B区生僻字
CJK扩展C区 506 扩展C区生僻字
CJK扩展D区 222 扩展D区生僻字
CJK扩展E区 5,762 扩展E区生僻字
CJK扩展F区 7,473 扩展F区生僻字
CJK扩展G区 4,939 扩展G区生僻字

总计: 超过 60,000 个汉字的完整拼音覆盖

📚 详细文档

⚙️ 配置选项

$config = [
    'dict' => [
        // 字典文件路径配置
    ],
    'dict_loading' => [
        'strategy' => 'both',        // 字典加载策略
        'lazy_loading' => true,    // 懒加载开关
        'preload_priority' => ['custom', 'common'], // 预加载优先级
    ],
    'custom_dict_persistence' => [
        'enable' => true,           // 自定义字典持久化
        'delay_write' => true,      // 延迟写入
        'auto_save_interval' => 300  // 自动保存间隔(秒)
    ]
];

$pinyinConverter = new PinyinConverter($config);

🧪 测试

运行测试:

# 快速测试
php tools/quick_pinyin_test.php

# 运行完整测试套件
composer test

🔄 开发计划

已完成功能

  • 基础汉字转拼音功能
  • 多音字处理
  • 自学习字典系统
  • 后台任务管理
  • Unihan数据集成
  • 完整的工具集

🔜 计划功能

  • 更智能的多音字上下文识别
  • 分布式任务处理支持
  • Web界面管理工具
  • 更多拼音数据源集成

🤝 贡献指南

欢迎贡献代码!请阅读:

📄 许可证

本项目使用MIT许可证,详情请查看LICENSE文件。

🔗 相关链接

版本: 1.0.0
最后更新: 2025-11-16
维护者: tekintian https://dev.tekin.cn