[英]How do I write a Python code for partial fraction decomposition without using “apart”?
[英]How do I reverse Unicode decomposition using Python?
使用Python 2.5,我有一些文本存儲在unicode對象中:
Dinis e Isabel,umadifı'cilrelacóa~oconjugalepolı'tica
這似乎是分解Unicode 。 Python中是否有通用的方法來反轉分解,所以我最終得到:
Dinis e Isabel,umadifícilrelaçãoconclarationepolítica
我想你正在尋找這個:
>>> import unicodedata
>>> print unicodedata.normalize("NFC",u"c\u0327")
ç
不幸的是,我的文本中似乎實際上有(例如)\\ u00B8(cedilla)而不是\\ u0327(結合cedilla)。
呃,討厭! 您仍然可以自動執行此操作,但該過程不會完全無損,因為它涉及兼容性分解(NFKD)。
將U + 00B8標准化為NFKD,您將獲得一個空格,然后是U + 0327。 然后,您可以掃描字符串,查找任何空格跟隨組合字符的情況,並刪除空格。 最后重新組合到NFC,將組合字符放到前一個字符上。
s= unicodedata.normalize('NFKD', s)
s= ''.join(c for i, c in enumerate(s) if c!=' ' or unicodedata.combining(s[i+1])==0)
s= unicodedata.normalize('NFC', s)
我無法真正給你一個明確的答案,因為我從未嘗試過。 但是標准庫中有一個unicodedata模塊 。 它有兩個函數decomposition()
和normalize()
,可以幫助你。
編輯:確保它確實是分解的unicode。 有時會有奇怪的方法來編寫無法在編碼中直接表達的字符。 就像"a
被人類或某個專門程序精神解析為ä
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.