有没有一种方法可以编写一个基于规则的系统来从合同文本中捕捉开始/结束日期之类的内容。这里有几个真实的例子。我是加粗日期实体,我想斯帕西自动检测。如果你有不同于spacy的其他想法也可以!在
本租约的初始期限为五(5)年,自
February 1, 2012
(即“租赁开始日期”)并于January 31, 2017
到期
(“初始租赁期”)。
期限:一(1)年,从January 1, 2007
(“开始日期”)起至结束
December 31, 2007
(“到期日”)。
本租赁协议有效期为15年,从January 1, 2014
开始,到December 31, 2028
结束。
您可以使用CoreNLP中的SUTime来轻松完成操作:https://github.com/FraBle/python-sutime
我认为你必须明确区分两种方法:
1)统计模型/机器学习,也称为NER模型。当试图弄清楚一个特定的标记或多个连续的标记是否是日期时,将考虑句子的上下文。spaCy有预先构建的NER模型,您可以下载来测试您的特定数据。您需要查找那些拥有
ent.label_ == DATE
的实体(在doc.ents
)中。一旦有了这些实体,就可以通过日期解析器运行它们,以了解实际日期是什么。有关详细信息,请参见here。在2)基于规则的实体识别。在这里,您必须自己定义规则,指定日期的外观,例如
XX/XX/XXXX
,其中X
是一个数字。但是,正如user1558604所指出的,如果您想识别日期的不同表示,就必须编写多个不同的规则。您可以找到spaCy基于规则的匹配方法的概述here。在相关问题 更多 >
编程相关推荐