当前位置:   article > 正文

Python 库识别文本中的语种, 语种检测_googletrans库对比chardet

googletrans库对比chardet

本文介绍三个本地运行,不需要联网就能识别文本中的语种的python库

1. Chardet

Chardet 库是 python 中的字符编码自动检测。encode 即编码
安装:pip install chardet

本地字符串语种检测使用:

import chardet

print(chardet.detect("Я люблю вкусные пампушки".encode('cp1251')))


输出:
{'encoding': 'windows-1251', 'confidence': 0.9787849417942193, 'language': 'Russian'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

检测文件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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2. Langdetect

非常实用的小需求python库。
安装:pip install langdetect

检测:

from langdetect import detect, DetectorFactory, detect_langs
# DetectorFactory.seed = 0
print(detect('今一はお前さん'))


输出:
ja
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

语言检测算法是不确定的,这意味着如果您尝试在太短或太模糊的文本上运行它,则每次运行它时可能会得到不同的结果。如果要强制执行一致的结果,可以在语言检测之前调用DetectorFactory.seed = 0

如果想要输出排名靠前的语言的概率:

from  langdetect  import  detect_langs 
detect_langs ( "Otec matka syn." ) 


输出:
[ sk : 0.572770823327 ,  pl : 0.292872522702 ,  cs : 0.134356653968 ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3. Langid

安装:pip install langid

检测:

import langid
print(langid.classify("今一はお前さん"))


输出:
('ja', -143.23792815208435)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

以上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/571617
推荐阅读
相关标签
  

闽ICP备14008679号