(建议电脑端看)(上大学的时候在CSDN发的文章,突然有人联系我要源代码,顺便就发到这个平台分享一下)
咱直接进入正题吧!下面这个程序是我一个老师做研究,用到python来把韩文拆分。老师让我帮他做的。因为自己 所以拿出来分享一下。
首先呢! 参考这个“韩文的unicode范围及应用”文章。(为了方便,下面分隔线内是这个文章的内容)
----------------------------------
韩文的unicode范围
韩文字母 (1100–11FF) 10进制4352-4607 韩文兼容字母 (3130-318F) 10进制12592-12687 韩文音节 (AC00-D7AF) 10进制44032-55215 目前电脑可显示AC00-D7A3 10进制44032-55203 韩文字母扩展A (A960-A97F) 10进制43360-43391 韩文字母扩展B (D7B0-D7FF) 10进制55216-55295
通常用下面这段javascript正则表达式即可验证是否韩文: /^([\uAC00-\uD7AF])*$/gi
韩文是立体化的拼音,虽然像字,但却不是字,和日本平假名,片假名相同 韩文音节unicode计算公式(10进制): [{(子音)×588}+{(母音)×28}+(韵尾)]+44032 子音/声母/初声 ㄱ 0 ㄲ 1 ㄴ 2 ㄷ 3 ㄸ 4 ㄹ 5 ㅁ 6 ㅂ 7 ㅃ 8 ㅅ 9 ㅆ 10 ㅇ 11 ㅈ 12 ㅉ 13 ㅊ 14 ㅋ 15 ㅌ 16 ㅍ 17 ㅎ 18 母音/韵母/中声 ㅏ 0 ㅐ 1 ㅑ 2 ㅒ 3 ㅓ 4 ㅔ 5 ㅕ 6 ㅖ 7 ㅗ 8 ㅘ 9 ㅙ 10 ㅚ 11 ㅛ 12 ㅜ 13 ㅝ 14 ㅞ 15 ㅟ 16 ㅠ 17 ㅡ 18 ㅢ 19 ㅣ 20 韵尾/终声 无韵尾 0 ㄱ 1 ㄲ 2 ㄳ 3 ㄴ 4 ㄵ 5 ㄶ 6 ㄷ 7 ㄹ 8 ㄺ 9 ㄻ 10 ㄼ 11 ㄽ 12 ㄾ 13 ㄿ 14 ㅀ 15 ㅁ 16 ㅂ 17 ㅄ 18 ㅅ 19 ㅆ 20 ㅇ 21 ㅈ 22 ㅊ 23 ㅋ 24 ㅌ 25 ㅍ 26 ㅎ 27
例子 “한” 的 Unicode: 子音 ㅎ 值为 18 母音 ㅏ 值为 0 韵尾 ㄴ 值为 4 根据公式计算 {(18×588)+(0×28)+4}+44032=54620 即한的unicode编码是54620(10进制), 한 或者是 U+D55C (标准unicode16进制标记法)
----------------------------------
其次,因为这个这个只针对现代韩文是有效的。对很古老的韩文是无法拆分的。所以单独地,对古代韩文的拆分是放在一个txt文件中的。存放方式如下
程序思路如下:
1.先从古代韩文txt文件中读取所有的古韩文和其对应的分解,然后存放在一个字典中;
代码如下:
在这里,之所以用utf-8编码打开是因为我当时存古韩语和其分解的时候是用utf-8编码存放的。
2.从一个文件夹中读取所有的以utf-16编码的txt文件;
3.读取一个文件的一行,再对每一个字符进行处理;
如果是古代韩文,通过从先前得到的字典中查找返回相应的分解。如果是现在使用的韩文字符,通过参考文章http://www.ch2ko.com/hanguoyu/hanwen-unicode/来处理的。如果是其它字符,返回原字符。
4.得到的每一个字符的分解存放在一个临时的行temp_line中(初始为空),处理完每一个行,把temp_line加到每个文件字符串temp_file_string中(初始为空)。
5.处理完一个文件后把结果存储为一个新文件,一行分解,下一行原文的方式。
如下图
程序代码如下(这个好像不支持代码块,只能截图)
最后,如果需要源代码和测试的请到我的百度网盘下载:
链接:https://pan.baidu.com/s/1iFk52-vSb2QevPOzi1zkog
提取码:u4ug
喜欢我的文章给个关注呗!
领取专属 10元无门槛券
私享最新 技术干货