我有一组文本文档,其中包含多种语言的文本。
对于我读过的每一行,我必须找出它所写的语言。这仅限于三种语言,即英语,印地语(U + 0900-U + 097F)和泰卢固语(U + 0C00-U) + 0C7F)。
如何让程序过滤不同脚本的行?
答案 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'