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第三方库


热门话题
Android Studio中的Java错误,但不是Eclipse   java如何使用jsp更新数据库中的文件?   jsoup如何在java中从较大的子字符串中提取多个子字符串?   java RestFB:当页面的URI具有页面名称时,无法获取页面帖子   java可以让Maven做我们在ANT构建中正在做的事情。xml   java如何在JasperReports中动态包含来自Servlet的图像?   java在hibernate中用新集更新旧集   从导出为可运行的Java应用程序创建、解析和管理XML文件。jar文件   在Java中使用数组的基础知识   调试从JAVA程序调用的MATLAB函数   java实现了Iterable hands错误大小的备份   JAVA木卫一。FileNotFoundException:请求的资源不可用   java Android Spring 1.0.1使用基本身份验证删除   java如何使用com解析和对象在一个数字数组中的值。fasterxml。杰克逊。数据绑定。对象映射器   比较两个字符串时发生java NullPointerException