快速文本模型将挪威文本检测为丹麦语

问题描述

我正在使用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

注意事项:如果您安装多语言,请谨慎使用依赖项(请阅读thisthis)。