有没有一个库或其他简单的方法来检测Python中哪些字母字符属于?我知道我可以为此使用 unicode 代码范围,但如果已经有一个内置的方法或库或一些提供映射的东西,我宁愿不重新发明轮子。
注意:我问的是字母表而不是语言。"hello"和"hola"都将映射到拉丁字母,而"Поиск"将映射到西里尔字母。
Python 的 unicodedata 在这里非常有用,这个问题/答案也是如此
如果不编写整个模块,我找不到任何简单的方法来检测语言,我想我会遇到很多极端情况,所以我写了一个库。Github页面在这里。有了它,您可以:
pip install alphabet-detector
然后直接使用它:
from alphabet_detector import AlphabetDetector
ad = AlphabetDetector()
ad.only_alphabet_chars(u"ελληνικά means greek", "LATIN") #False
ad.only_alphabet_chars(u"ελληνικά", "GREEK") #True
ad.only_alphabet_chars(u"frappé", "LATIN") #True
ad.only_alphabet_chars(u"hôtel lœwe", "LATIN") #True
ad.only_alphabet_chars(u"123 ångstrom ð áß", "LATIN") #True
ad.only_alphabet_chars(u"russian: гага", "LATIN") #False
ad.only_alphabet_chars(u"гага", "CYRILLIC") #True
我还为主要语言编写了一些方便的方法:
ad.is_cyrillic(u"гага") #True
ad.is_latin(u"howdy") #True
ad.is_cjk(u"hi") #False
ad.is_cjk(u'汉字') #True