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。如果 strict和replace都设置为True,替换在 检查是否符合规范。
diphtongs:如果设置为True,则函数将非音节组合在一起 元音与其音节邻接(例如aɪ̯将形成一个 代币)。如果设置为False(默认值),元音就不会标记在一起。 除非有连接拉杆(例如a͡ɪ)。
tones:如果设置为True,则在 输出(重音标记作为变音符号,朝鲜语字母作为单独的标记)。如果 设置为False(默认值),这些将被忽略。
unknown:如果设置为True,则输出包括(作为单独的令牌) 不能归类为字母、变音符号或超节段符号的符号 (例如-,/,$)。如果设置为False(默认值),则此类符号 被忽略。如果strict设置为True,则它不起作用。
merge:期望在每个 一对连续的令牌;那些输出为True的令牌被合并 一起。你可以用这个,例如,插入你自己的双通检测 算法:
>>> tokenise(string, diphtongs=False, merge=custom_func)
tokenize是tokenise的别名。
其他功能
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数据集的错误 以及前后矛盾。
许可证
麻省理工学院。为所欲为,赞美蛇神。