我在前两篇的文章中分享了如何手动编写python程序判断字节串是否是UTF8编码以及判断字符串是何种语言。手动编写的好处在于明白原理性的内容,但是较为麻烦,同时有的场景下效果也不是特别的好,因此本文介绍python自带的chardet来实现编码类型和语言类型的判断。
通常安装python之后也会默认安装chardet模块。如果没有该模块,可以通过pip install chardet进行安装。
由于该模块可以判断编码方式,因此通常的输入是字节流,也就是字节串。而上一篇,关于字节串和字符串区别有简单的描述,不明白字符串和字节串的可以看下,这里。代码示例如下:
def encodingAndLanguageDetect(text):
import chardet
print(chardet.detect(text)['encoding'])
print(chardet.detect(text)['language'])
print(chardet.detect(text)['confidence'])
return chardet.detect(text)
可以看到,chardet的输出包含三个方面,编码方式,概率以及语言类型。其中概率表示的是检测输入的编码方式的可能性。先判断是何种编码方式,就知道了该输入是什么样的字符串,就可以根据字符串判断是何种语言类型了。但是事实上在使用的过程中发现chardet对于语言检测的支持并不是很好,很多情况下的输出为空,因此可能满足不了一些场景的需求。可以使用google提供的语言检测模块,我将在下一篇文章继续介绍。
本文为CSDN村中少年原创文章,转载记得加上小尾巴偶,博主链接这里。