python - 如何在网页上训练我自己的自定义词嵌入?
问题描述
我在多个网页上有大量关于我有兴趣出售给客户的产品的文本数据。我尝试使用在 Wikipedia 上训练的预训练 fasttext 词嵌入,但它并没有给我的分类任务带来好的结果。可能是因为网站上的文本数据包含很多技术细节,并且与维基百科的文本数据不同。所以我想做一些词嵌入的迁移学习,保持预训练的快速文本词嵌入为基础。
- 如何使用 Keras 在这些网页上训练我自己的自定义词嵌入?
- 如何使用 fasttext 预训练嵌入和训练初始化自定义词嵌入?这种初始化真的有助于提供更好的词嵌入吗?
我更喜欢使用 Keras 来训练词嵌入的解决方案。
我知道 Embedding 有 trainable=True 选项,不知道如何使用它。
Embedding(voc_size, emb_dim, weights=[embedding_matrix], input_length, trainable=True)
应该为此 Keras 或 Gensim 推荐哪个框架,为什么?
解决方案
我建议你使用 fastText 的 gensim 实现来训练你自己的词嵌入。这应该比您自己的 Keras 实现更容易和更快。您可以从加载预训练模型开始,然后使用您自己的数据继续训练。
from gensim.models import FastText
model = FastText.load_fasttext_format('cc.en.300.bin')
data = [['Hello', 'world'], ...] # Your own training data, a list of sentences
model.build_vocab(data, update=True)
model.train(sentences=data,
total_examples=model.corpus_count,
epochs=5)
编辑:如果您想在 Keras 中实现自己的模型,您确实可以trainable = True
按照您的建议使用嵌入层(默认行为)。有一个很好的指南关于如何做到这一点here。
推荐阅读
- .net - 当请求包含波浪号 ('~') 时,IIS 8.5 - 404 响应
- docker - Kubernetes Multus:不同节点上的 pod 之间没有 macvlan 连接(无法 ping)
- google-cloud-platform - 在 Google Cloud 中具有所有者角色的用户在使用 Gmail Api 时会收到 403
- arrays - 包含整数“0”的 PowerShell 数组与“^(0|3010)$”不匹配
- react-native - 如何更改 expo-av 中的视频显示方向?
- python - 在 Thonny IDE 中注释代码的键盘快捷键
- javascript - 端点正在工作!但是在响应和数据数组中是空的(ReactJs)也在邮递员中工作正常
- php - PHP按位将数据库中的值与数组进行比较
- r - 在 Jupyter 中更改 R 的版本
- python - Pandas columnwise merge rows which satisfy condition