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

Adi*_*tya 0 python unicode

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

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

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

Mar*_*ers 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'
Run Code Online (Sandbox Code Playgroud)

演示:

>>> detect_language(u'Hello world!')
'english'
>>> detect_language(u'?????')
'telugu'
>>> detect_language(u'??????')
'hindi'
Run Code Online (Sandbox Code Playgroud)