python自动获取arxiv最新NLP领域论文和中文创新点

python爬取arxiv上NLP相关的论文
在开始爬取之前,我们需要进行一些准备工作。

安装依赖库

pip install arxiv
pip install beautifulsoap4
pip install requests

导入依赖库

import requests
from bs4 import BeautifulSoup
import arxiv

确定爬取的论文关键词

利用arxiv包,以Natural Language Processing为关键词,提交时间作为排序条件,获取最近提交的NLP领域最新的20篇论文。

arxiv_search = arxiv.Search(
query = "Natural Language Processing",
max_results = 2000,
sort_by=arxiv.SortCriterion.SubmittedDate
)

获取论文的基础信息

通过代码获取论文的ID、标题、摘要、第一作者、发布时间、更新时间等信息。

for result in arxiv_search.results():
    paper_id = result.get_short_id() # 文章id
    paper_title = result.title # 文章标题
    paper_url = result.entry_id # 文章url
    paper_summary = result.summary.replace("\n", "") # 文章摘要需要剔除格式
    paper_first_author = result.authors[0] # 文章的第一作者
    publish_time = result.published.date() # 文章的发布时间
    update_time = result.updated.date() # 文章的更新时间

获取论文的代码地址和github上stars

根据论文的id获取代码链接,并通过解析github链接获取代码仓库的stars数量,评估项目热度。

根据paper_id获取github代码链接

def get_paper_code_url(paper_id):
base_url = "https://arxiv.paperswithcode.com/api/v0/papers/"
code_url = base_url + paper_id
code_response = requests.get(code_url, verify=False).json()
if "official" in code_response and code_response[]:
github_code_url = code_response[]["url"]
return github_code_url

获取github上项目的stars数量

def get_stars(github_code_url):
try:
# requests访问github上代码仓库主页
code_html = requests.get(github_code_url, verify=False)
# 利用BeautifulSoup库解析主页,爬取stars
soup = BeautifulSoup(code_html.text, "html.parser")
# stargazers /network/members /watchers
a_stars = soup.find_all("a",
href=github_code_url.split("https://github.com")[-1]+"stargazers")
# 获取github上项目标星数
stars = a_stars[0].text.strip().split()[0]
except:
stars = 0
return stars

如何调用Edge浏览器的翻译API获取中文摘要
翻译论文的摘要

从Edge浏览器对一篇英文文章进行翻译时,按下F12获取鉴权与翻译的API,以及对应的headers和API的调用方式。

获取Edge浏览器的鉴权信息

def get_edge_token():
auth_url = "https://edge.microsoft.com/translate/auth"
auth_headers = {
"Content-Type": "text/plain; charset=utf-8"
}
Authorization = requests.get(auth_url, headers=auth_headers).text
return Authorization

向翻译API发送预检信息

调用Edge浏览器的翻译接口,需要发送options预检请求,开放API的POST方法,将浏览器中的options操作下的所有headers复制到请求的headers中

def url_option():
url = "https://api-edge.cognitive.microsofttranslator.com/translate?from=en&to=zh-CHS&api-version=3.0&includeSentenceLength=true"
headers = { 用户的headers }

# 发送请求
requests.options(url, headers=headers)

调用翻译API

def get_translate(token, body):
# 翻译API
translate_url =
translate_headers = {
"Authorization": "Bearer " + str(token),
"Content-Length": str(len(json.dumps(body, separators=(",", ":")))),
: "application/json",
"User-Agent": "浏览器代理"
}
res = requests.post(translate_url, headers=translate_headers, data=json.dumps(body, separators=(, )), verify=False)
return res

翻译内容

def translate_zh_to_en(contents):
trans_contents = []
trans_contents.append({"Text": contents})
token = get_edge_token() # 获取翻译API的使用Token
url_option() # 向API发送预检信息
# 翻译摘要内容
trans_text = get_translate(token, body=trans_contents).json()
return trans_text[0]["translations"][0]["text"]

翻译论文摘要

调用edge浏览器免费的英文翻译API,对摘要进行翻译:

# 翻译中文摘要
paper_zh_summary = translate_zh_to_en(paper_summary)

调用大模型提取论文创新点
调用近期最火的大模型,对中文摘要进行总结归纳,得到通俗易懂的中文创新点。

大模型选择

本文选择清华大学开源的ChatGLM2-6B模型,直接利用内测网页chatglm.cn进行创作。

设计模型的Prompt

你是一个科技领域的权威作家,你正在阅读一篇论文摘要:{paper_zh_summary} 请从摘要中分点提取出论文的关键内容,要求提取文案简洁明了、清晰易懂,符合原意。

提取论文的关键内容

以经典的transformers论文为例,提取论文的关键点:

transformers 英文摘要:

The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration.

The best performing models also connect the encoder and decoder through an attention mechanism.

We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. Experiments on two machine translation tasks show these models to be superior in quality while being more parallelizable and requiring significantly less time to train.

Our model achieves 28.4 BLEU on the WMT 2014 English-to-German translation task, improving over the existing best results, including ensembles by over 2 BLEU.

On the WMT 2014 English-to-French translation task, our model establishes a new single-model state-of-the-art BLEU score of 41.8 after training for 3.5 days on eight GPUs, a small fraction of the training costs of the best models from the literature.

We show that the Transformer generalizes well to other tasks by applying it successfully to English constituency parsing both with large and limited training data.

transformers 中文翻译摘要:

由于语言间的表达差异,简单中英文翻译后的中文摘要,无法直观看出论文的关键点:

主导序列转导模型基于编码器-解码器配置中的复杂递归或卷积神经网络。性能最好的模型还通过注意力机制连接编码器和解码器。我们提出了一种新的简单网络架构,即Transformer,它完全基于注意力机制,完全省去了递归和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上优越,同时更具并行性,并且需要更少的训练时间。我们的模型在WMT 2014英语到德语翻译任务中实现了28.4 BLEU,比现有的最佳结果有所改进,包括超过2个BLEU的合奏。在WMT 2014英法翻译任务中,我们的模型在八个GPU上训练了3.5天后,建立了一个新的单模型最先进的BLEU得分41.8,这只是文献中最佳模型训练成本的一小部分。我们通过将Transformer成功地应用于大量和有限训练数据的英语选区解析,表明它可以很好地推广到其他任务。

chatglm提取的transformers关键内容:

让我们将它送入chatglm模型,提取关键内容:

提出了一种新的简单网络架构:Transformer,完全基于注意力机制,省去了递归和卷积。

在两个机器翻译任务上的实验表明,Transformer 模型在质量上优越,具有更高的并行性和更少的训练时间。

在 WMT 2014 英语到德语翻译任务中,Transformer 模型实现了 28.4 BLEU,比现有最佳结果改进了 2 个 BLEU 以上。

在 WMT 2014 英法翻译任务中,Transformer 模型在八个 GPU 上训练了 3.5 天后,建立了一个新的单模型最先进的 BLEU 得分 41.8,训练成本远低于文献中最佳模型。

Transformer 模型成功应用于大量和有限训练数据的英语选区解析,表明其具有良好的推广能力。

在经过大模型归纳总结之后,这篇论文的创新点是不是一目了然了呢!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值