betacode到unicode转换。

betacode的Python项目详细描述


Build StatusCoverage Status

贝塔科德

将betacode转换为unicode,反之亦然。在Python3.4上测试, 3.5和3.6。使用的定义是基于在TLG Beta Code Manual中找到的内容。只有 希腊部分受到关注。

动机

我在做一个经典研究项目,不得不用英仙座 从目录中提取一些希腊作品。但令我惊讶的是, 我唯一能找到的下载是betacode版本。一种编码 超过30岁,而不是现代,花哨,干净的Unicode。曾经 没有好的pip包,我可以很容易地去完成这个简单的任务,所以我 决定自己滚。

安装

安装很容易。使用pip或您喜欢的方法下载 从皮皮。

pip install betacode

使用量

注意,在所有示例中,字符串都是Unicode编码的。输入可以在 大写或小写。TLG的官方定义仅使用 大写,但许多资源(如英仙座目录)都是编码的 小写,所以这个包同时接受这两个。这个包裹也可以 无视希腊变音符号不必要的发音顺序 官方定义。唯一重要的是 betacode需要明确的是,每个单元必须以 *或一封信。只要遵循这些约束,呼吸 标记、口音等可以按任何顺序排列。然而,插管 从Unicode转到Betacode时将返回订单。另请注意 目前,只处理单个的非组合字符。 这意味着你不能把字母和 变音符号。只有那些在希腊语和 Unicode的扩展希腊语部分。

Betacode到Unicode
import betacode.conv

beta = 'analabo/ntes de\ kaq\' e(/kaston'
betacode.conv.beta_to_uni(beta) # αναλαβόντες δὲ καθ᾽ ἕκαστον

注意,将使用多音重音符号,而不是单调重音 标志。两者在法律上在希腊都是对等的,但贝塔科德最初是 发展成编码经典作品,使多声调变音符号 适合的。换言之,将使用牛_a而不是tónos。 oxe_a form也可以很容易地转换为现代重音形式 通过搜索和替换,或者从oxe_a开始的unicode规范化 典型分解成tónos.

使用strict标志也可以使转换更加严格。

beta_to_uni(text, strict=False)

如果设置了,在betacode中只接受发音符号的插入顺序。 如果没有设置,那么只要是大写字母,任何订单都是允许的 以*开头,小写字母以字母开头,而不是 变音。

Unicode到Betacode
import betacode.conv

uni = 'αναλαβόντες δὲ καθ᾽ ἕκαστον'
betacode.conv.uni_to_beta(uni) # analabo/ntes de\ kaq\' e(/kaston

Unicode文本可以使用多音(oxe_a)重音标记或单调 (tónos)可以使用重音符号。

速度

原始实现使用自定义的trie。这也许不是 最快的(我不确定)。所以,我对比了第三方 实现,pygtrie。pygtrie有更好的前缀方法 允许更快地处理大型文本。这改变了 将英仙座目录中的斯特拉波或希罗多德从许多 从分钟手术到3-4秒手术。我见过实现 我怀疑使用正则表达式可能更快,因为 底层实现在C中,但是这个包要小得多 如果betacode转换比cltk更简单 例子。

改性betacode

有人说我在 互联网。我从来没有找到一个明确的定义 所以我还没有实施。在一些区别中,有final sigma这个词 用法,_为长音符,大写和小写罗马字母 而不是使用*

开发

我不是古典主义者,这是在我空闲的时候做的。它是非常 可能的有几封信不见了 或者一些标点符号处理不当。如果是这样的话, 请告诉我,因为它很容易修复,或请打开一个公关为您自己 分支如果添加了功能,请编写测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无JPA的纯Hibernate ORM java SpringBoot配置   安卓会生成一组唯一的java数字   java我的自定义阵列列表每次启动时都会崩溃我不确定为什么会一直崩溃   Java继承;将子类传递给超类的抽象方法   java从没有if语句的数组中获取instanceof type   java中使用对象的温度转换   存储库接口的JavaSpringDataMongoDBeanXML配置   java JAXWS为iBM websphere、iBM web服务客户端添加寻址   数组试图返回Java中两个对象的面积之和   apache Spark java:columnNameOfCorruptRecord和badRecordsPath在加载csv时不工作   java无法创建。txt文件   java Hibernate与MySQL插入查询不一致   不考虑java Hazelcast分布式地图的最大大小   bash Java如何在父进程中设置环境变量