IPA令牌服务器

ipatok的Python项目详细描述


一个简单的ipa令牌服务器,如中所示:

>>> from ipatok import tokenise
>>> tokenise('ˈtiːt͡ʃə')
['t', 'iː', 't͡ʃ', 'ə']
>>> tokenise('ʃːjeq͡χːʼjer')
['ʃː', 'j', 'e', 'q͡χːʼ', 'j', 'e', 'r']

API

tokenise(string, strict=False, replace=False, diphtongs=False, tones=False, unknown=False, merge=None)接受IPA字符串并返回令牌列表。 代币通常由一个单独的字母及其伴随物组成 变音符号。如果两个字母通过拉杆连接,则也会考虑它们 一个标记。除长度标记外,超节段不包括 输出。空白也被忽略。函数接受以下内容 关键字参数:

  • strict:如果设置为True,函数将确保string符合 到ipa规范(the 2015 revision);如果有,则引发一个ValueError。 不是。如果设置为False(默认值),则非ipa字符的角色为 根据他们的Unicode类别猜测(参见下面的陷阱部分)。

  • replace:如果设置为True,则该函数将替换一些常用的 替换为与IPA兼容的对应项,例如^{TT9}$,^{TT10}$, ʦ → t͡s。有关完整列表,请参阅ipatok/data/replacements.tsv。如果 strictreplace都设置为True,替换在 检查是否符合规范。

  • diphtongs:如果设置为True,则函数将非音节组合在一起 元音与其音节邻接(例如aɪ̯将形成一个 代币)。如果设置为False(默认值),元音就不会标记在一起。 除非有连接拉杆(例如a͡ɪ)。

  • tones:如果设置为True,则在 输出(重音标记作为变音符号,朝鲜语字母作为单独的标记)。如果 设置为False(默认值),这些将被忽略。

  • unknown:如果设置为True,则输出包括(作为单独的令牌) 不能归类为字母、变音符号或超节段符号的符号 (例如-/$)。如果设置为False(默认值),则此类符号 被忽略。如果strict设置为True,则它不起作用。

  • merge:期望在每个 一对连续的令牌;那些输出为True的令牌被合并 一起。你可以用这个,例如,插入你自己的双通检测 算法:

    >>> tokenise(string, diphtongs=False, merge=custom_func)
    

tokenizetokenise的别名。

其他功能

replace_digits_with_chao(string, inverse=False)接受IPA字符串并 将数字1-5(也用上标)替换为潮音字母。如果 inverse=True,较小的数字转换为较高的音调;否则, 它们被转换成较低的音调(默认值)。等连续数字 折叠成单个chao字母(例如55 → ˥)。

>>> tokenise(replace_numbers_with_chao('ɕia⁵¹ɕyɛ²¹⁴'), tones=True)
['ɕ', 'i', 'a', '˥˩', 'ɕ', 'y', 'ɛ', '˨˩˦']

陷阱

strict=True在规范中查找每个符号时,没有 关于如何标记输入的模棱两可。

使用strict=Falseipa符号仍能正确处理。非IPA符号 将按如下方式处理:

  • 如果它是一个非修饰字母(例如Γ),则它被视为一个辅音;
  • 如果它是修饰符(例如ˀ)或组合标记(例如ə̇),则它是 被认为是变音符号;
  • 如果是modifier tone letter(例如),则认为是音调 symbol;
  • 如果两者都不是,则被视为未知符号。

不管strict的值如何,空格字符和下划线 被认为是单词边界,即没有标记分组 由这些字符分隔的符号,即使后者不是 包括在输出中。

安装

这是一个没有依赖项的标准python 3包。它是在 Cheese Shop,因此您可以使用pip安装它:

pip install ipatok

或者,您也可以克隆此repo(以后可以安全删除)并执行以下操作:

python setup.py test
python setup.py install

当然,这也可能发生在virtualenv/venv中。

其他IPA包

  • lingpy是一个历史语言学套件,它包含一个ipa2tokens 功能。
  • ipapy是一个包使用IPA字符串的年龄。
  • ipalint提供了一个命令行工具,用于检查ipa数据集的错误 以及前后矛盾。

许可证

麻省理工学院。为所欲为,赞美蛇神。

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

推荐PyPI第三方库


热门话题
java API以编程方式创建ARM模板   java是否有合适的模式或方法来遍历数据和动态构造对象?   oop((类名)InstanceName)在java中有什么用途?   接口Java类方法未初始化   Java类:静态字段在内存中的位置?   java错误:服务类没有零参数构造函数   使用JDBC模板的java参数化sql查询   安卓致命异常:主java。lang.RuntimeException:   amazon web服务使用IAM角色从java访问AWS S3   java如何在Gradle中使用ojdbc   带块的Java类实例化   java日志记录是否有很大的开销,即使它是关闭的?   java JetBrains@Contract using字段   BluetoothGattCallback中从未调用java onDescriptorWrite()   java HttpMessageConverter无效的EOF处理   java在安卓的主活动类中调用另一个类   java防止在spring hibernate中存储重复值的正确方法   java如何在JAVADOC注释中使用变量?