如何重新培训现有的spacy NER模型用于货币

时间:2018-05-05 12:06:26

标签: python nlp spacy ner

我正在尝试用一些不同的国家货币更新现有的spacy模型“en_core_web_sm”,例如“euro”,“rupees”,“eu”,“Rs。”,“INR”等。我怎样才能实现这一目标? spacy教程并不能帮助我,因为训练固定字符串如“马”作为“动物”似乎与我的要求不同。原因是我可以使用不同格式的货币值:“100万欧元”,“10,000卢比”,“1千卢比”等。我的样本数据集包含大约1000个样本,格式如下:

TRAIN_DATA = [      
 (" You have activated International transaction limit for Debit Card ending XXXX1137 on 2017-07-05 12:48:20.0 via NetBanking. The new limit is Rs. 250,000.00", {'entities' : [(140, 154, 'MONEY')] }),...
]

有人可以用数据格式,培训规模或任何其他相关信息帮助我吗?

1 个答案:

答案 0 :(得分:1)

文档中的示例应该适合您。我稍微修改了它以匹配您的变量名称。

optimizer = nlp.begin_training()

for itn in range(100):
    random.shuffle(train_data)
    for raw_text, entity_offsets in TRAIN_DATA:
        doc = nlp.make_doc(raw_text)
        gold = GoldParse(doc, entities=entity_offsets)
        nlp.update([doc], [gold], drop=0.5, sgd=optimizer)
nlp.to_disk('/model')

Link to Documentation