首页 > 解决方案 > 将挪威文本检测为丹麦语的 fasttext 模型

问题描述

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

有什么帮助吗?

标签: fasttextlanguage-detection

解决方案


似乎很难区分挪威语和丹麦语(见此

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,请注意依赖关系(阅读这个这个)。


推荐阅读