问题描述
我正在使用fasttext(v = 0.9.1)来检测文本的语言(请参见this)。
使用此模型时,挪威语文字被检测为丹麦语。
!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]))
有帮助吗?
解决方法
似乎很难区分挪威语和丹麦语(见this)。
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