我正在使用fasttext(v=0.9.1(来检测文本的语言(请参阅此(。
使用此模型时,挪威语文本被检测为丹麦语。
!curl "https://dl.fbaipublicfiles.com/fasttext/supervised-models/lid.176.bin" > lid.bin
import fastText
language_detector=fastText.load_model('lid.bin')
language_detector.predict('Hei Jeg viser til hyggelig sam', k=3)
输出:
(('__label__da', '__label__no', '__label__hu'),
array([9.16624188e-01, 8.25065151e-02, 2.37607688e-04]))
有什么帮助吗?
挪威语和丹麦语的区别很难(见此(。
fastText并不特别适合此任务。
您可以尝试使用polyglot,这是一个专门用于多语言NLP的python库。
from polyglot.detect import Detector
detector = Detector('Hei Jeg viser til hyggelig sam')
print(detector)
输出:
Prediction is reliable: True
Language 1: name: Norwegian code: no confidence: 96.0 read bytes: 1189
Language 2: name: un code: un confidence: 0.0 read bytes: 0
Language 3: name: un code: un confidence: 0.0 read bytes: 0
需要注意的是:如果你安装了polyglot,请小心依赖关系(阅读本文(。