LoginSignup
0
3

More than 1 year has passed since last update.

arxiveの論文をDeepLのAPIで翻訳する

Last updated at Posted at 2022-10-11

目的

Materials Infomaticsの最近のトレンドが把握したいけど、英語が苦手で論文のタイトルすら読むのがしんどい。そんなことを思っていると、arxivやDeepLのAPIがあることが判明。
パナソニックHD 横山氏ツイート
早速使ってみた。

結果

とても使いやすくて、結果も閲覧しやすかった。
ただし、5分で、1ヶ月上限の50万字を突破してしまった。
有料会員は、¥630+¥2500/100万文字。
このペースだと、¥30,000/時間のペースで破産しかねないので、有料会員は一旦見送り。

DeepLのAPI取得

DeepLのユーザー登録をして、APIを取得。無料版だと1ヶ月50万文字まで翻訳可能。
本人確認のため、クレジットカードの登録はあるが、自動的に有料会員への移行はないので安心。
DeepL

スクリプト

ブラウザで開くと見やすいので、.mdで保存してみる。
検索クエリは、
cs.LG:learning(学習)
cond-mat.mtrl-sci(物性物理学-材料工学)

import arxiv
import deepl

AUTH_KEY = "************"

def get_arxiv_results():
    print('getting data from arxiv"')
    search = arxiv.Search(query='cat:cs.LG AND cat:cond-mat.mtrl-sci')
    titles, abstracts, urls = [], [], []
    for result in search.results():
        titles.append(result.title)
        abstracts.append(result.summary)
        urls.append(result.pdf_url)
    return titles, abstracts, urls

def make_input(idx, title, abstract, url):
    text = f' \
# {idx}: {title} \n \
{abstract}  \n \
[URL]({url}) \n \
'
    return text

def main():
    titles, abstracts, urls = get_arxiv_results()
    with open("20221011_deepl.md", "a") as f:
        print("translating")
        translator = deepl.Translator(AUTH_KEY)
        for idx, [title, abstract, url] in enumerate(zip(titles, abstracts, urls)):
            print(f"`{idx} in {len(titles)}")
            title_ja = translator.translate_text(
                text=title.replace("\n", ""), target_lang="JA"
            )
            abstract_ja = translator.translate_text(
                text=abstract.replace("\n", ""), target_lang="JA"
            )
    
            text = make_input(idx, title_ja, abstract_ja, url)
            f.write(text)

if __name__ == '__main__':
    main()

.mdをVSCodeやブラウザで閲覧

英語で読むよりサッと理解できた...のか。
少なくとも言語の問題はない。
ブラウザで閲覧

おしまい。

0
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3