nik*_*nen 5 regex unicode perl linguistics transliteration
我需要学习如何将文本的音译更改为另一种书写系统。显然,最好的方法是以某种方式涉及正则表达式和 perl,可能是从命令行?我之前已经在 Notepad++ 和 TextWrangler 中使用过正则表达式,所以我已经了解了一些基础知识。如果有一些非常好的(并且相对简单和可定制的)方法可以在 Ruby 或其他东西中做到这一点,我也可以开始学习。在我的乌拉尔语言学领域,经常需要音译语言样本文本,其中使用了许多不同的音译系统变体。所以值得投入一些时间。
\n\n所以我现在拥有的材料由每行一个句子组成。有些行有其他数据,例如数字,但这些数据应保持原样。我想保持标点符号不变,这只是将一组 unicode 字母字符转换为另一组。我搜索了该网站,但很多都是关于从 ascii 转换为 unicode 等等 - 这不是这里的问题。
\n\n所以原文是这样的(广义的芬兰-乌戈尔语转录):
\n\nm\xc3\xb6dis ivan vel\xc3\xb6\xc4\x87\xc4\x87yny pe\xc4\x87ora\xc3\xb6 \xc5\xa1c\xcc\x8c\xc3\xb6t\xc3\xb6v\xc3\xb6dnej kurs vyl\xc3\xb6.\nRun Code Online (Sandbox Code Playgroud)\n\n我需要这样的形式:
\n\n\xd0\xbc\xd3\xa7\xd0\xb4i\xd1\x81 \xd0\xb8\xd0\xb2\xd0\xb0\xd0\xbd \xd0\xb2\xd0\xb5\xd0\xbb\xd3\xa7\xd1\x87\xd1\x87\xd1\x8b\xd0\xbd\xd1\x8b \xd0\xbf\xd0\xb5\xd1\x87\xd0\xbe\xd1\x80\xd0\xb0\xd3\xa7 \xd1\x89\xd3\xa7\xd1\x82\xd3\xa7\xd0\xb2\xd3\xa7\xd0\xb4\xd0\xbd\xd1\x8d\xd0\xb9 \xd0\xba\xd1\x83\xd1\x80\xd1\x81 \xd0\xb2\xd1\x8b\xd0\xbb\xd3\xa7.\nRun Code Online (Sandbox Code Playgroud)\n\n这持续了几千行。
\n\n使用的字符之间有明确的对应关系,但有时很复杂,需要首先处理一些二合字母和辅音 + 元音组合等。正如您从示例中看到的,在某些情况下拉丁语 i 对应于西里尔字母 \xd0\xb8 但在某些职位可以保留为 i。不同的文本有不同的解决方案,所以我需要根据每种情况调整规则。我知道我需要以非常特定的顺序运行一长串正则表达式才能使其工作。这个顺序我会自己弄清楚,但我需要知道我将这些规则输入到什么样的工具中以及如何执行。
\n\n我也经常遇到这样的情况,我希望将原始句子和音译句子用制表符分隔开,以便各行具有如下形式:
\n\nm\xc3\xb6dis ivan vel\xc3\xb6\xc4\x87\xc4\x87yny pe\xc4\x87ora\xc3\xb6 \xc5\xa1c\xcc\x8c\xc3\xb6t\xc3\xb6v\xc3\xb6dnej kurs vyl\xc3\xb6. \xd0\xbc\xd3\xa7\xd0\xb4i\xd1\x81 \xd0\xb8\xd0\xb2\xd0\xb0\xd0\xbd \n\xd0\xb2\xd0\xb5\xd0\xbb\xd3\xa7\xd1\x87\xd1\x87\xd1\x8b\xd0\xbd\xd1\x8b \xd0\xbf\xd0\xb5\xd1\x87\xd0\xbe\xd1\x80\xd0\xb0\xd3\xa7 \xd1\x89\xd3\xa7\xd1\x82\xd3\xa7\xd0\xb2\xd3\xa7\xd0\xb4\xd0\xbd\xd0\xb5\xd0\xb9 \xd0\xba\xd1\x83\xd1\x80\xd1\x81 \xd0\xb2\xd1\x8b\xd0\xbb\xd3\xa7.\nRun Code Online (Sandbox Code Playgroud)\n\n当然还有很多问题,但是在学习了这些基础知识之后我认为我可以独立前进。学习这个对我有很大帮助。提前致谢!
\n\n尼科
\n| 归档时间: |
|
| 查看次数: |
585 次 |
| 最近记录: |