yis*_*sky 7 python nlp spacy ner
有没有办法编写一个基于规则的系统来从合同文本中捕获诸如开始/结束日期之类的内容。这里有几个真实的例子。我正在加粗我希望 spacy 自动检测的日期实体。如果您有与 spacy 不同的其他想法也可以!
本租约的初始期限为五 (5) 年,自
February 1, 2012、(“租赁开始日期”)起至January 31, 2017
(“初始租赁期限”)届满。
期限:一 (1) 年开始January 1, 2007(“开始日期”)和结束
December 31, 2007(“到期日期”)。
本租赁协议签订期限为 15 年,自 年 月 日January 1, 2014起至 年末December 31, 2028。
我认为您必须明确区分两种类型的方法:
1) 统计模型/机器学习,又名 NER 模型。在尝试确定特定标记或多个连续标记是否为日期时,这些将考虑句子的上下文。spaCy 具有预先构建的 NER 模型,您可以下载以试用您的特定数据。您将要查找doc.ents具有ent.label_ == DATE. 拥有这些实体后,您可以通过日期解析器运行它们以了解实际日期是什么。另请参阅此处了解更多信息。
2) 基于规则的实体识别。在这里,你必须通过指定您希望如何日期将是什么样子,比如给自己定义规则XX/XX/XXXX与X是一个数字。正如 user1558604 指出的那样,如果您想识别日期的不同表示,则必须编写多个不同的规则。您可以在此处找到 spaCy 基于规则的匹配方法的概述。