首页 > 解决方案 > 如何为货币重新训练现有的 spacy NER 模型

问题描述

我正在尝试使用“欧元”、“卢比”、“欧盟”、“卢比”、“印度卢比”等一些不同的国家货币来更新现有的 spacy 模型“en_core_web_sm”。我该如何实现?spacy 教程对我没有太大帮助,因为将诸如“horses”之类的固定字符串训练为“ANIMAL”似乎与我的要求不同。原因是我可以有不同格式的货币价值:“100 万欧元”、“10,000 卢比”、“1000 印度卢比”等。我的样本数据集包含大约 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')] }),...
]

谁能帮我解决一下数据格式、培训规模或任何其他相关信息?

标签: pythonnlpspacynamed-entity-recognition

解决方案


文档中的示例应该适合您。我对其进行了一些更改以匹配您的变量名。

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')

链接到文档


推荐阅读