如何在Python中检测unicode字符范围?

时间:2013-10-31 10:42:47

标签: python unicode

我有一组文本文档,其中包含多种语言的文本。

对于我读过的每一行,我必须找出它所写的语言。这仅限于三种语言,即英语,印地语(U + 0900-U + 097F)和泰卢固语(U + 0C00-U) + 0C7F)。

如何让程序过滤不同脚本的行?

1 个答案:

答案 0 :(得分:11)

使用max()选出最高的代码点,然后将其与您的范围匹配:

def detect_language(line):
    maxchar = max(line)
    if u'\u0c00' <= maxchar <= u'\u0c7f':
        return 'telugu'
    elif u'\u0900' <= maxchar <= u'\u097f':
        return 'hindi'
    return 'english'

演示:

>>> detect_language(u'Hello world!')
'english'
>>> detect_language(u'తెలుు')
'telugu'
>>> detect_language(u'हिन्दी')
'hindi'