我目前正在翻译层上,将众多独特的颜色名称转换为通用的颜色名称。例如金属红色将是红色,海军蓝色将是蓝色。我有一个要翻译的来源中的颜色列表,以及一组我希望将其标识为的基本颜色名称。目前,当构建模型时,在有监督或无监督的情况下,fasttext我将model.words设为[''],无论是否标记行。我尝试删除单词中的所有特殊字符等。我正在使用fasttext库和
我试图将数据集转换为包括数据框中的标签:
__label__beige beige
__label__black black
__label__blue blue
__label__brown blue
__label__gold gold
__label__gray gray
__label__green green
__label__orange orange
__label__purple purple
__label__red red
__label__silver silver
__label__white white
__label__yellow yellow
__label__other other
我也尝试过删除标签。
import joblib
import fasttext
import numpy as np
from pyfasttext import FastText
from tensorflow.keras.preprocessing.text import Tokenizer
model = fasttext.train_unsupervised('base_colors.txt')
显示我列出的所有基色。
我希望在运行model.words时得到:
米色 黑色 蓝色 棕色 金 灰色 绿色 橙子 紫色 红色 银 白色 黄色 其他
相反,我得到了:
['</s>']
我要翻译的数据集示例:
ultra silv met
sunrise orange
polo grn met
red jewel tint
charcaol
cream ivory
lt driftwd met
blue mist
silvermist
charoal
3gcpkte77dg146719
blue granilte met
steele green
cosmic silv
whitwe diamond
blue granit
解决方案。将预先训练的向量与带有多种颜色的输入一起使用。
./fasttext supervised -input base_colors.txt -output model -pretrainedVectors cc.en.300.vec -dim 300
答案 0 :(得分:0)
您似乎没有正确使用快速文本。
a。首先,我的建议是使用official fasttext python binding(不再提供pyfasttext)。
b。为了您的目的,我认为您必须提供一个训练语料库,该语料库的编写方式如下:
__ label__basecolor your_color_expression
(例如:__ label__红色金属红色)
...然后训练监督模型(遵循this tutorial)。因此,分类器(模型)将学习复杂颜色名称与基色之间的关系。
c。 。如果您的训练数据集很小,则可以从FastText pretrained vectors开始,使分类器以一些已有的知识开始。
因此,您可以按照以下步骤操作:
c.1。 从fasttext.cc/docs/en/crawl-vectors.html下载预训练向量(.vec);
c.2。 使用以下方法训练模型:./fasttext监督-input base_colors.txt-输出模型-pretrainedVectors cc.en.300.vec -dim 300
c.3。 现在您的模型更好了!