本文介绍三个本地运行,不需要联网就能识别文本中的语种的python库。
Chardet 库是 python 中的字符编码自动检测。encode 即编码
安装:pip install chardet
本地字符串语种检测使用:
import chardet
print(chardet.detect("Я люблю вкусные пампушки".encode('cp1251')))
输出:
{'encoding': 'windows-1251', 'confidence': 0.9787849417942193, 'language': 'Russian'}
检测文件xml中的语种:
import glob
from chardet.universaldetector import UniversalDetector
detector = UniversalDetector()
for filename in glob.glob('*.xml'):
print(filename.ljust(60), end='')
detector.reset()
for line in open(filename, 'rb'):
detector.feed(line)
if detector.done: break
detector.close()
print(detector.result)
非常实用的小需求python库。
安装:pip install langdetect
检测:
from langdetect import detect, DetectorFactory, detect_langs
# DetectorFactory.seed = 0
print(detect('今一はお前さん'))
输出:
ja
语言检测算法是不确定的,这意味着如果您尝试在太短或太模糊的文本上运行它,则每次运行它时可能会得到不同的结果。如果要强制执行一致的结果,可以在语言检测之前调用DetectorFactory.seed = 0:
如果想要输出排名靠前的语言的概率:
from langdetect import detect_langs
detect_langs ( "Otec matka syn." )
输出:
[ sk : 0.572770823327 , pl : 0.292872522702 , cs : 0.134356653968 ]
安装:pip install langid
检测:
import langid
print(langid.classify("今一はお前さん"))
输出:
('ja', -143.23792815208435)
以上。