python - 如何为货币重新训练现有的 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')] }),...
]
谁能帮我解决一下数据格式、培训规模或任何其他相关信息?
解决方案
文档中的示例应该适合您。我对其进行了一些更改以匹配您的变量名。
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')
推荐阅读
- javascript - Flask-SocketIO 部署时拒绝连接
- regex - 使用正则表达式查找与特定函数关联的注释
- python - 打印时更改文本颜色
- react-native - 如何通过 React Navigation 5 在 navigationOptions 中使用参数
- swift - 如何从录制的音频中为 Swift 中的 API 获取 m4a 文件?
- c# - 在不同位置打印元组的元素
- python - AWS Elastic Beanstalk 上的 GeoDjango:OSError:libcrypto.so.1.1:无法打开共享对象文件
- admob - Admob 可以集成到 Android TV 中吗
- python - 为 Linked-List 类实现递归 Add 方法时遇到问题
- flutter - 如何在 z 方向上赋予小部件厚度?