van*_*ath 7 python nlp language-detection
我langdetect用来确定一组字符串的语言,我知道这些字符串是英语或法语.
有时,langdetect告诉我语言是罗马尼亚语,因为我知道这是一个法语字符串.
我怎样才能langdetect选择英语或法语,而不是所有其他语言?
谢谢!
我执行此操作的方法是使用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
Run Code Online (Sandbox Code Playgroud)
选项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
Run Code Online (Sandbox Code Playgroud)
选项2
如果您确实要使用该langdetect软件包,则可以复制该软件包文件夹(如果不确定该文件夹在哪里,请使用python -m site --user-site)并从该文件夹中删除不需要的配置文件langdetect\profiles。
但是,这不是一个非常动态的解决方案。
| 归档时间: |
|
| 查看次数: |
6054 次 |
| 最近记录: |