目标
在[知识路书]项目中,我们希望能够根据用户感兴趣的领域为用户推进该领域的最新文章。用户可以在浏览这些文章摘要的过程中,将感兴趣的文章加入到阅读列表中。
我们要做的主要有两个步骤:
-
获取Arxiv.org上某个领域的最新论文(由于arxiv的国内访问速度很慢,我们使用一个脚本每天凌晨获得最新论文并存储在本地数据库中);
-
将文章的标题进行机翻;
实现
获取最新文章
arixv提供了获取文章的接口api,我们直接根据感兴趣的领域调用即可,不同领域的代码可以在这里获得(如cs.AI, cs.OS)。
获取某领域最新的文章,并对结果进行解析:
query_str = 'cat:' + field
query = 'search_query=%s&sortBy=lastUpdatedDate&start=%i&max_results=%i' % (query_str,0,results_per_iteration)
with urllib.request.urlopen(base_url + query) as url:
response = url.read()
parse = feedparser.parse(response)
之后我们便能获得某篇文章的一些基本信息了:
如文章标题:
paper_title = parse.entries[0]['title']
文章摘要:
paper_summary = parse.entries[0]['summary_detail']['value']
调用有道Api机翻
这里我们调用有道的api对文章的标题进行机翻,方便用户的阅读:
有道翻译api的url为
http://fanyi.youdao.com/translate?&doctype=json&type=&i=
为了实现英文->中文转换,type
处应为EN2ZH_CN
,我们将要翻译的信息放在i
处即可;
返回信息为
{
"type": "EN2ZH_CN",
"errorCode": 0,
"elapsedTime": 1,
"translateResult": [
[
{
"src": "Knowledge Roadmap",
"tgt": "知识的路线图"
}
]
]
}