Project Icon

budoux

独立小巧且多语言支持的机器学习换行工具

BudouX 是一款独立且小巧的机器学习换行整理工具,无需依赖第三方分词器,支持日语、简体中文、繁体中文和泰语。它占用空间小,约15KB,可用于客户端,并支持与HTML输入的集成。使用者可以通过提供数据集训练任何语言的模型,适用于Python、JavaScript和Java编程语言。该工具旨在解决CJK语言在网页排版中的分行问题,提高可读性。

BudouX 项目介绍

BudouX 是一个由机器学习驱动的换行组织工具,其前身是 Budou。相比于 Budou,BudouX 更加独立、小巧并且具备语言中立性,是在网页应用中优化文字排版的出色工具。

项目特点

  • 独立性:BudouX 不依赖于任何第三方词语分词器,如 Google 云自然语言 API。因此,它可以不受外部工具的限制独立运行。
  • 小巧精悍:BudouX 的整个机器学习模型仅大约 15 KB,使得它即使在客户端使用,也十分合理。
  • 语言中立性:用户可以通过向 BudouX 的训练脚本提供数据集来为任意语言训练模型。

除此之外,BudouX 还支持 HTML 输入,这进一步扩大了其应用范围。

支持的自然语言

预训练模型支持以下语言:

  • 日语
  • 简体中文
  • 繁体中文
  • 泰语

对于使用空格分隔单词的韩语用户,可以通过 CSS 属性 word-break: keep-all 来避免单词在行内断开的情况。因此,BudouX 并未专门研发韩语支持,但若需求增大,团队愿意进行探索。

支持的编程语言

BudouX 支持多种编程语言,包括:

  • Python
  • JavaScript
  • Java

Python 模块使用指南

安装

BudouX 可以通过 pip 安装:

$ pip install budoux

使用示例

  • 解析句子:可以通过将一个句子传递给解析器来获得短语列表。

    例如,解析日语句子:

    import budoux
    parser = budoux.load_default_japanese_parser()
    print(parser.parse('今日は天気です。'))
    # 输出: ['今天是', '晴天。']
    
  • HTML 不换行标记:将 HTML 字符串转换为包含不换行标记的 HTML。

    print(parser.translate_html_string('今日は<b>とても天気</b>です。'))
    # 输出: <span style="word-break: keep-all; overflow-wrap: anywhere;">今日は<b>\u200bとても\u200b天気</b>です。</span>
    

    在上述示例中,\u200b 表示零宽空格,实际上输出是一个不可见字符。

  • 使用自定义模型:如果用户拥有自定义的模型文件,也可通过以下方式使用:

    with open('/path/to/your/model.json') as f:
      model = json.load(f)
    parser = budoux.Parser(model)
    

BudouX 还能在终端使用,通过命令行输入来分割句子。

背景

英语文本中,通常有许多有助于排版的线索,如空格和连字符,这使得文本更易于分行。然而对于某些复杂字符集语言(如日语、中文),这些线索相对缺乏,导致行中的换行可能出现在词语中间,影响可读性。BudouX 的前身 Budou 便是为解决这一长期存在的问题而设计的,但由于依赖于外部分词器,使用上存在一些局限性。

BudouX 则以其独立性和足够小的内存使用率,适合嵌入到客户端代码中,改善了这种情况。

工作原理

BudouX 使用AdaBoost算法,通过将分词任务视为一个二分类问题来预测字符间的换行点。它考虑了字符的上下文、Unicode 块以及这些特征的组合,以便做出预测。训练产生的模型以 JSON 文件形式保存,包含特征及其重要性分数的对应关系。BudouX 使用此模型来组织输入句子,将其转换为短语列表。

自定义模型的构建

用户可以通过准备目标语言的训练数据集来构建自定义模型。训练数据集是由短语分隔符 "▁" 分隔的句子组成的文本文件。通过一系列命令行操作,用户可以生成并训练属于自己的模型。

致谢

BudouX 由 Shuhei Iitsuka 开发,感谢他的贡献。需要注意的是,这并不是一个官方支持的谷歌产品。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号