从网页中提取发布日期
date-guesser的Python项目详细描述
从网页中提取出版日期的库,以及准确度的度量。 这是作为mediacloud project的一部分产生的,以便从内容中准确地提取日期。
快速启动
日期猜测器同时使用url和html来工作,并使用一些启发式方法来确定许多可能的日期中哪一个可能是最好的。
fromdate_guesserimportguess_date,Accuracy# Uses url slugs when availableguess=guess_date(url='https://www.nytimes.com/2017/10/13/some_news.html',html='<could be anything></could>')# Returns a Guess object with three propertiesguess.date# datetime.datetime(2017, 10, 13, 0, 0, tzinfo=<UTC>)guess.accuracy# Accuracy.DATEguess.method# 'Found /2017/10/13/ in url'
如果有两个值得信赖的日期来源,date_guesser
更倾向于更精确的来源
html=''' <html><head> <meta property="article:published" itemprop="datePublished" content="2017-10-13T04:56:54-04:00" /> </head></html>'''guess=guess_date(url='https://www.nytimes.com/2017/10/some_news.html',html=html)guess.date# datetime.datetime(2017, 10, 13, 4, 56, 54, tzinfo=tzoffset(None, -14400))guess.accuracyisAccuracy.DATETIME# True
但是date_guesser
不会被更准确、更不可信的信息来源误导
html=''' <html><head> <meta property="og:image" content="foo.com/2016/7/4/whatever.jpg"/> </head></html>'''guess=guess_date(url='https://www.nytimes.com/2017/10/some_news.html',html=html)guess.date# datetime.datetime(2017, 10, 15, 0, 0, tzinfo=<UTC>)guess.accuracyisAccuracy.PARTIAL# True
未来工作
语言
这部代码在国外新闻来源上做得很差。这一页是乌克兰的,上面有一个日期 非乌克兰人可以识别,但未提取:
importrequestsguess=guess_date(url='https://www.dw.com/uk/коментар-націоналізм-родом-зі-східної-європи/a-42081385',html=requests.get(url).text)guess.date# Noneguess.accuracyisAccuracy.NONE# Trueguess.method=='Did not find anything'# True
鲁莽模式
我们跟踪提取日期的准确性,但不跟踪提取日期的可信度
日期准确。这可能是在给定特定用例的情况下进行更多优化的一种方法。例如,一个
我们所采用的策略not是我们所识别的所有日期模式的正则表达式,因为这也太过分了
容易出错。在某些情况下,这种方法可能比返回None
更好。
性能
我们使用从mediacloud
系统中的四个非常不同的主题中的每一个主题收集的100个url,将精确性与美妙的newspaper
库进行对比。这包括博客和新闻文章,以及许多没有日期的url(在这种情况下,只有当猜测返回None
时,猜测才被标记为正确)。
疫苗
date_guesser | newspaper | |
---|---|---|
1 days | 57 | 48 |
7 days | 61 | 51 |
15 days | 66 | 53 |
印度的aadhar卡
date_guesser | newspaper | |
---|---|---|
1 days | 73 | 44 |
7 days | 74 | 44 |
15 days | 74 | 44 |
唐纳德·特朗普2017年
date_guesser | newspaper | |
---|---|---|
1 days | 79 | 60 |
7 days | 83 | 61 |
15 days | 85 | 61 |
甜点和巧克力食谱
date_guesser | newspaper | |
---|---|---|
1 days | 83 | 65 |
7 days | 85 | 69 |
15 days | 87 | 69 |