首页IT科技python中unicode(python 对unicode字符进行normalized)

python中unicode(python 对unicode字符进行normalized)

时间2025-09-19 03:14:46分类IT科技浏览5337
导读:参考:https://blog.csdn.net/weixin_42401159/article/details/112187778...

参考:https://blog.csdn.net/weixin_42401159/article/details/112187778

  https://cloud.tencent.com/developer/article/1406445

在处理一些自然语言文字的过程中                ,会遇到一些表面很奇怪的现象                 。 比如两个单词 人肉眼看着一模一样                         ,但是在计算机中读取出来却表示两者不相等                          。当查看它们的的编码字符的时候          ,发现两者确实也不一样        。

例如:

事实上            ,在Unicode的编码中                        ,经常会有一些特殊字符被编码成多种 Unicode 形式            。例如: 字符 U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) 也可以被表示为下面列个字符的组合: U+0043 (LATIN CAPITAL LETTER C) 和 字符U+0327 (COMBINING CEDILLA).

这种情况下多发于那些需要包含音调的字符体系中(例如印地语                、德语                         、西班牙语等)              ,如以下字符"Ç"                          。Unicode体系中        ,即可以用Compose(组合)的形式U+00C7来表示这个字符            。 也可以使用Decompose(分离)分别存储字符(U+0043)本身和音调(U+0327)本身        。

在上面的印地语中                        ,出现问题的主要是因为字符"ज़"                  ,该字符下有一个小点    ,表示印地语中的一些音调问题(具体参考 Nuqta)                          。该字符就拥有 Compose 和 Decompose 两种Unicode表示方法                        , 因此才会出现上文中字符不等的例子                。

在Python中                      ,我们可以利用 unicodedata.normalize 函数对字符进行标准化    。标准化分为两个方式:

unicodedata.normalize("NFKC", text): Normal form Composition: 将所有的文本标准化为 Compose 形式                          。

unicodedata.normalize("NFKD", text): Normal form Decomposition: 将所有的文本标准化为 Decompose 形式                    。

更标准的写法,应该为

import unicodedata def strip_accents(s): return .join(c for c in unicodedata.normalize(NFD, s) if unicodedata.category(c) != Mn)
声明:本站所有文章                    ,如无特殊说明或标注                          ,均为本站原创发布。任何个人或组织     ,在未征得本站同意时                ,禁止复制          、盗用            、采集                        、发布本站内容到任何网站              、书籍等各类媒体平台                      。如若本站内容侵犯了原著者的合法权益                         ,可联系我们进行处理                         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
远程错误(远程软件点击错位怎么办)