首页 > 其他分享 >LangSegment:多语言(97种语言)的混合文本自动分词工具

LangSegment:多语言(97种语言)的混合文本自动分词工具

时间:2024-05-09 14:48:10浏览次数:16  
标签:语言 text 标签 文本 LangSegment 分词 97

项目简介

它是一个强大的多语言(97种语言)的混合文本自动分词工具。[中日英韩:已测试]
主要用途:它非常适合各种 TTS 语音合成项目,多语种混合文本的前端推理,和预处理后端训练。
LangSegment:多语言%2897种语言%29的混合文本自动分词工具-0
它基于 py3langid 的扩展实现(>=python3.6)。
LangSegment It is a multi-lingual (97 languages) text content automatic recognition and segmentation tool.
The main purposes are: front-end for various TTS (Text-to-Speech) synthesis projects, preprocessing of multilingual text mixing for both training and inference.

Implementation based on py3langid,See LICENSE file for more info.
https://github.com/adbar/py3langid

功能:将文章或句子里的例如(中/英/日/韩),按不同语言自动识别分词,使文本更适合AI处理。
本代码专为各种 TTS 项目的前端文本多语种混合标注区分,多语言混合训练和推理而编写。

完全可控:支持

  • (1)自动分词:“韩语中的오빠读什么呢?あなたの体育の先生は誰ですか? 此次带来了四款iPhone 15系列机型”
  • (2)手动分词:“你的名字叫佐々木?吗?”

语言标签:支持

分词语言标签:它和html类似,它需要成对出现 内容 或者 内容
本处理结果主要针对(中文=zh , 日文=ja , 英文=en , 韩语=ko), 实际上可支持多达 97 种不同的语言混合处理。

安装方法:Install (推荐使用官方源)

# 首次安装:官方源(推荐)
pip3 install LangSegment -i  https://pypi.org/simple
# 后续版本升级或更新:
pip3 install LangSegment -i  https://pypi.org/simple --upgrade


# 或者,国内镜像(国内镜像同步慢几天,可能会导致您无法极时获得最新版本!!!):
# pip3 install LangSegment -i https://pypi.mirrors.ustc.edu.cn/simple

使用示例:Example Input

示例中的句子,同时包含中日英韩4种语言,接下来将对它们按不同语种进行分词,以方便各种TTS项目进行语音合成。

# pip3 install LangSegment -i  https://pypi.org/simple
    import LangSegment


    # input text example 示例:
    text = "你的名字叫<ja>佐々木?<ja>吗?韩语中的오빠读什么呢?あなたの体育の先生は\
    誰ですか? 此次发布会带来了四款iPhone 15系列机型\
    和三款Apple Watch等一系列新品,这次的iPad Air采用了LCD屏幕" 


    # example
    langlist = LangSegment.getTexts(text)


    # output list : {'lang': 'zh', 'text': '...'}
    print("=================================")
    for line in langlist:
        print(line)
    print("=================================")

处理结果:Example Output

综上所述,“自动分词”已经极大的提高了我们的工作效率,但还是建议您对分词结果进行人工校对。
特别是中文与日文,存在大量汉字互用,这对自动分词是极具挑战性的,“分词纠错” 解决方案如下:

  • (1)自动分词纠错:在中文与日文句子之间,打上空格来辅助分词(自动上下文分词)。
  • (2)手动分词纠错:您可手动添加语言标签,,,等来辅助进行强制分词。

以下是语言标签分词详细示例:

# 手动分词标签的应用示例,例如针对中日汉字有重叠,而需要在 TTS 中混合发音的情况:
    # 分词标签内的文本将识别成日文ja内容,也可以写成<ja>内容</ja>
    text = "你的名字叫<ja>佐々木?<ja>"  
    # 或者:
    text = "你的名字叫<ja>佐々木?</ja>"  
    # 以上均能正确输出:
    # 处理成中文-- {'lang': 'zh', 'text': '你的名字叫'}
    # 处理成日文-- {'lang': 'ja', 'text': '佐々木?'}

自动分词能力目前主要针对中文(zh)/日文(ja)/英文(en)/韩文(ko),进行了特别优化。
它特别适合各种 TTS 前端文本多语种内容的混合分词(自动/手动),训练和推理使用。

# 手动分词标签规范:<语言标签>文本内容</语言标签>
    # ===========================================================================
    # 如需手动标注,标签需要成对出现,如:“<ja>佐々木<ja>”  或者  “<ja>佐々木</ja>”
    # 错误示范:“你的名字叫<ja>佐々木。” 此句子中出现的单个<ja>标签将被忽略,不会处理。
    # ===========================================================================

项目链接

https://github.com/juntaosun/LangSegment

标签:语言,text,标签,文本,LangSegment,分词,97
From: https://www.cnblogs.com/luckzack/p/18182210

相关文章

  • 09. C语言内嵌汇编代码
    C语言函数内可以自定义一段汇编代码,在GCC编译器中使用asm或__asm__关键词定义一段汇编代码,并可选添加volatile关键字,表示不要让编译器优化这段汇编代码。内嵌汇编代码格式如下:__asm__(  "汇编代码"  :输出描述  :输入描述  :修改描述);汇编代码部分......
  • C语言函数备忘
    strdup()函数是C语言中的一个标准库函数,它接受一个字符串(字符数组)的指针作为参数,并返回一个指向新分配内存区域的指针,这个新分配的内存区域包含了输入字符串的副本。在内部,strdup()使用malloc()函数来为新字符串分配内存,如果内存分配成功,它会将原字符串的内容复制到新分配的空间中......
  • C语言调用C++的共享库SO
    C语言调用C++的共享库SO今天在项目中,遇到了一个问题,对方提供给我们一个.h的声明文件(使用的是cpp语言),和一个动态库so。但是我们项目中用的是C语言,我们如何来调用so库中的方法呢?我们都知道,C++在设计时,兼容C语言,可以直接调用C语言库中的接口,但是C语言调用C++的接口就会比较困难,比如C......
  • c语言程序设计——实验报告七
    实验项目名称:实验7数组的基本使用实验项目类型:验证性实验日期:2024年4月22日一、实验目的1.熟练掌握数组的定义格式和数组元素的表示方法2.熟悉数组的初始化方法和赋值方法3.掌握字符数组存放字符串的方法和字符串函数的使用4.熟悉数组元素的操作,特别是输入与输出操作5.......
  • 08. C语言函数
    【函数基础】函数用于将程序代码分类管理,实现不同功能的代码放在不同函数内,一个函数等于一种功能,其它函数可以调用本函数执行。C语言规定所有的指令数据必须定义在函数内部,比如之前介绍的程序执行流程控制语句,另外修改全局变量的操作也是通过指令进行的,所以全局变量只能在函数内......
  • 【译】下一个大型编程语言是英语(自然语言)
    来源:every.to/chain-of-thought/i-spent-24-hours-with-github-copilot-workspacesGitHubCopilot就像程序员的自动完成功能。当你输入时,它猜测你想要完成什么,并建议它认为你将要编写的代码块。如果它猜对了——而它经常猜对——你只需按下Tab键,它会为你填写剩下的部分。......
  • R 语言 scRNA学习
    scRNA批量导入从数据库中下载的scRNA数据点击查看代码library(Seurat)#从数据库里下载并解压的文件路径path<-'./GSE221575_RAW/'fs=list.files(path,pattern='^GSM')samples<-substr(fs,1,10)lapply(unique(samples),function(x){y=fs[grepl(x,fs)]f......
  • 编程语言和Python语言介绍
    编程语言和Python语言介绍一、【编程语言介绍】【1】机器语言(1)机器语言是什么机器语言就是计算机可以理解的语言,可以直接通过机器语言操作我们的硬件计算机是基于电工作的,高频是0,低频是1计算机通过控制高低频变化来工作(2)机器指令通过制高低电频的变化组成一系列的指令......
  • 2024-05-08:用go语言,给定一个由正整数组成的数组 nums, 找出数组中频率最高的元素, 然后
    2024-05-08:用go语言,给定一个由正整数组成的数组nums,找出数组中频率最高的元素,然后计算该元素在数组中出现的总次数。输入:nums=[1,2,2,3,1,4]。输出:4。答案2024-05-08:chatgpt题目来自leetcode3005。大体步骤如下:1.创建一个空的字典cnt用于存储每个元素的出现次数。2......
  • C语言,实现数字谱到简谱的转换(二)
    C语言,实现数字谱到简谱的转换(二)前言:本文初编辑于2024年5月8日CSDN:https://blog.csdn.net/rvdgdsva博客园:https://www.cnblogs.com/hassle前言结合前文https://blog.csdn.net/rvdgdsva/article/details/138285230使用之前的程序默认C调4/4拍,自己用的很难受,很多时候还是需要......