如何为TextCategorizer培训创建GOLD数据? [英] How do I create gold data for TextCategorizer training?
本文介绍了如何为TextCategorizer培训创建GOLD数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要使用以下(text, label)
对训练TextCategorizer模型。
标签颜色:
- 门是棕色的。
- 谷仓是红色的。
- 花是黄色的。
标签动物:
- 马在奔跑。
- 鱼在跳跃。
- 鸡睡着了。
我正在复制documentation for TextCategorizer中的示例代码。
textcat = TextCategorizer(nlp.vocab)
losses = {}
optimizer = nlp.begin_training()
textcat.update([doc1, doc2], [gold1, gold2], losses=losses, sgd=optimizer)
文档变量可能只有nlp("The door is brown.")
,依此类推。gold1
和gold2
中应该包含什么?我猜它们应该是GoldParse对象,但我不知道如何在这些对象中表示文本分类信息。
推荐答案
根据本例train_textcat.py,如果要训练多标签模型,则应该类似于{'cats': {'ANIMAL': 0, 'COLOR': 1}}
。此外,如果您只有两个类,则只需使用{'cats': {'ANIMAL': 1}}
表示标签动物,使用{'cats': {'ANIMAL': 0}}
表示标签颜色。
您可以为单类别文本分类使用以下最小工作示例;
import spacy
nlp = spacy.load('en')
train_data = [
(u"That was very bad", {"cats": {"POSITIVE": 0}}),
(u"it is so bad", {"cats": {"POSITIVE": 0}}),
(u"so terrible", {"cats": {"POSITIVE": 0}}),
(u"I like it", {"cats": {"POSITIVE": 1}}),
(u"It is very good.", {"cats": {"POSITIVE": 1}}),
(u"That was great!", {"cats": {"POSITIVE": 1}}),
]
textcat = nlp.create_pipe('textcat')
nlp.add_pipe(textcat, last=True)
textcat.add_label('POSITIVE')
optimizer = nlp.begin_training()
for itn in range(100):
for doc, gold in train_data:
nlp.update([doc], [gold], sgd=optimizer)
doc = nlp(u'It is good.')
print(doc.cats)
这篇关于如何为TextCategorizer培训创建GOLD数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文