Python - 相同字母但不同 font/ascii code/encoding?
Python - Same letter but different font/ascii code/encoding?
我正在尝试制作一个简单的算法,该算法采用一些文本并预测一些概率。在将文本作为单个单词处理的方式中,我意识到我有 words/characters 具有不同的 ascii 代码,即使它们对 me/my 算法的含义应该是相同的。例如,我找到了这个 'are'
和 'are'
。第一个似乎有不同的字体或类似的东西。如果我在 Python 中得到他们的哈希码也是不同的:
hash('are') #5179570038677318294
hash('are') #-5669913536749823475
如果我检查单个ascii码:
ord('a') #65345
ord('a') #97
所以,我想知道是否有人知道这是为什么,当然,还有任何解决方法。我想要的理想结果是将 'are'
和 'are'
视为同一个词,以便我可以将它们分组。 (数据存储在虚拟机中的.csv文件中)
感谢您的帮助!
编辑:
如果这有用,对我来说最好的解决方案是:
from unidecode import unidecode
unidecode(text)
因为这也可以很容易地去除口音。
您可以使用 unicodedata.normalize
:
规范化字符串
import unicodedata
ord(unicodedata.normalize('NFKC', 'a')) # 97
我正在尝试制作一个简单的算法,该算法采用一些文本并预测一些概率。在将文本作为单个单词处理的方式中,我意识到我有 words/characters 具有不同的 ascii 代码,即使它们对 me/my 算法的含义应该是相同的。例如,我找到了这个 'are'
和 'are'
。第一个似乎有不同的字体或类似的东西。如果我在 Python 中得到他们的哈希码也是不同的:
hash('are') #5179570038677318294
hash('are') #-5669913536749823475
如果我检查单个ascii码:
ord('a') #65345
ord('a') #97
所以,我想知道是否有人知道这是为什么,当然,还有任何解决方法。我想要的理想结果是将 'are'
和 'are'
视为同一个词,以便我可以将它们分组。 (数据存储在虚拟机中的.csv文件中)
感谢您的帮助!
编辑:
如果这有用,对我来说最好的解决方案是:
from unidecode import unidecode
unidecode(text)
因为这也可以很容易地去除口音。
您可以使用 unicodedata.normalize
:
import unicodedata
ord(unicodedata.normalize('NFKC', 'a')) # 97