Python langdetect:选择一种语言还是只选择另一种语言

2024-09-22 22:36:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用langdetect来确定一组字符串的语言,我知道这些字符串要么是英语,要么是法语。

有时,langdetect告诉我,我知道的一个字符串是法语,所以语言是罗马尼亚语。

我怎样才能让langdetect在英语和法语之间做出选择,而不是所有其他语言?

谢谢!


Tags: 字符串语言langdetect
2条回答

我这样做的方法是使用detect_langs,它返回一个具有概率的Language对象列表,然后遍历这个列表,如果其中一个选项是英语或法语,则返回语言;如果不是这样,则返回None。此功能在以下方面运行良好:

from langdetect import detect_langs

def englishOrFrench(string):
    res = detect_langs(string)
    for item in res:
        if item.lang == "fr" or item.lang == "en":
            return item.lang
    return None

print(englishOrFrench("Bonjour"))              # fr
print(englishOrFrench("The quick brown fox"))  # en
print(englishOrFrench("Hallo, mein Freund"))   # None

选项1

一个选项是使用包langid。然后可以通过方法调用简单地限制语言:

import langid
langid.set_languages(['fr', 'en'])  # ISO 639-1 codes
lang, score = langid.classify('This is a french or english text')
print(lang) # en

选项2

如果您真的想使用langdetect包,可以复制包文件夹(如果您不确定它在哪里,请使用python -m site --user-site)),并从文件夹langdetect\profiles中删除不需要的配置文件。

不过,这不是一个非常动态的解决方案。

相关问题 更多 >