gpt4 book ai didi

python - 如何确定一段文本的语言?

转载 作者:IT老高 更新时间:2023-10-28 20:31:22 24 4
gpt4 key购买 nike

我想得到这个:

Input text: "ру́сский язы́к"
Output text: "Russian"

Input text: "中文"
Output text: "Chinese"

Input text: "にほんご"
Output text: "Japanese"

Input text: "العَرَبِيَّة"
Output text: "Arabic"

我如何在 python 中做到这一点?

最佳答案

1。 TextBlob .

需要 NLTK 包,使用 Google。

from textblob import TextBlob
b = TextBlob("bonjour")
b.detect_language()

pip install textblob

注意:此解决方案需要 Internet 访问权限,并且 Textblob 正在使用 Google Translate's language detector by calling the API .

2。 Polyglot .

需要 numpy 和一些神秘的库,不太可能让它在 Windows 上工作。 (对于 Windows,从 here 获取适当版本的 PyICUMorfessorPyCLD2,然后只需 pip install updated_wheel.whl 。)能够检测混合语言的文本。

from polyglot.detect import Detector

mixed_text = u"""
China (simplified Chinese: 中国; traditional Chinese: 中國),
officially the People's Republic of China (PRC), is a sovereign state
located in East Asia.
"""
for language in Detector(mixed_text).languages:
print(language)

# name: English code: en confidence: 87.0 read bytes: 1154
# name: Chinese code: zh_Hant confidence: 5.0 read bytes: 1755
# name: un code: un confidence: 0.0 read bytes: 0

pip install polyglot

要安装依赖项,请运行:sudo apt-get install python-numpy libicu-dev

注意:Polyglot 使用的是 pycld2,参见 https://github.com/aboSamoor/polyglot/blob/master/polyglot/detect/base.py#L72了解详情。

3。 chardet

Chardet 还具有检测语言是否在 (127-255] 范围内的字符字节的功能:

>>> chardet.detect("Я люблю вкусные пампушки".encode('cp1251'))
{'encoding': 'windows-1251', 'confidence': 0.9637267119204621, 'language': 'Russian'}

pip install chardet

4。 langdetect

需要大量文本。它在底层使用了非确定性方法。这意味着对于相同的文本样本,您会得到不同的结果。文档说您必须使用以下代码才能确定:

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

pip install langdetect

5。 guess_language

可以使用 this 检测非常短的样本带有字典的拼写检查器。

pip install guess_language-spirit

6。 langid

langid.py 提供了两个模块

import langid
langid.classify("This is a test")
# ('en', -54.41310358047485)

和一个命令行工具:

$ langid < README.md

pip install langid

7. FastText

FastText 是一个文本分类器,可用于识别 176 种语言,具有正确的 models for language classification .下载 this model ,那么:

import fasttext
model = fasttext.load_model('lid.176.ftz')
print(model.predict('الشمس تشرق', k=2)) # top 2 matching languages

(('__label__ar', '__label__fa'), array([0.98124713, 0.01265871]))

pip install fasttext

8。 pyCLD3

pycld3 是一种用于语言识别的神经网络模型。该包包含推理代码和经过训练的模型。

import cld3
cld3.get_language("影響包含對氣候的變化以及自然資源的枯竭程度")

LanguagePrediction(language='zh', probability=0.999969482421875, is_reliable=True, proportion=1.0)

pip install pycld3

关于python - 如何确定一段文本的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39142778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com