如何从dateutil解析器获取置信度指标?

时间:2018-01-11 19:25:19

标签: python python-3.x parsing datetime python-dateutil

我使用datefinder,从一段文字中提取可能的日期/时间字符串,然后将这些字符串放到dateutil.parser.parse()以产生datetime s。

在一个关键用例中,我有多个结果datetime,可能与相同日期相对应。我想发布流程(这里不是主题)来提高解析日期的准确性。

要做到这一点,我需要表明对解析值的信心。

在一个完美的世界里,我能做到:

dt, confidence = dateutil.parser.parse_with_confidence('12/12/2017')
print(confidence)
>> {'year': 1, 'month': 0.5, 'day': 0.5, 'hours': 0, 'minutes': 0, 'seconds': 0, 'tz': 0}

dt, confidence = dateutil.parser.parse_with_confidence('12/Dec/2017')
print(confidence)
>> {'year': 1, 'month': 1, 'day': 1, 'hours': 0, 'minutes': 0, 'seconds': 0, 'tz': 0}

这将允许我选择第二个,对其月和日值更有信心。

部分解决方法: 我可以拨打dateutil两次,完全不同的default日期......

dt_a = dateutil.parser.parse('Dec2017', default=datetime(2017, 1, 1, 0, 0, 0))
>> 2017-12-01 00:00:00
dt_b = dateutil.parser.parse('Dec2017', default=datetime(2018, 2, 2, 1, 1, 1))
>> 2017-12-02 01:01:01

...然后评估解析器分配的值和默认值。

这是实现我需要的一些方法,因为它允许我在(比如)字符串'dec2017''11dec2017'生成的日期之间进行选择(其中一个包含的信息多于另一个)。

但是,它粗略解析了两次,而且它在上述情况下有误导性,后者有更多的信息,但含有歧义。

那里有一个模块吗?还是我面临修改dateutils

0 个答案:

没有答案