以前、Word Cloud の作り方と題して、論文のアブストラクトをWord Cloudにすることを例にあげてまとめてみました(WordCloudでブログのアイキャッチ画像作成!)。そして、前回の記事 (arXiv API を用いて論文情報取得!(入門編 / python))では、arXiv の論文情報(アブストラクト, 著者, 発行日など)をAPI から取得する方法をまとめていきました!
そこで、今回の記事では、この2つの記事を合わせて、「arXiv API から取得した論文から Word Cloud を作る」という活用例を紹介していきます!
論文情報抽出+Word Cloud 作成
論文として取得する情報は、この記事 (arXiv API を用いて論文情報取得!(入門編 / python)) と同じく、「cs.AI (AI系のサブカテゴリ) に属する最新3論文」を取得して、そのアブストラクトを抽出。その後、抽出したアブストラクトを Word Cloud 化する流れで行います。
ちなみに、arXiv API での検索クエリを変更することで、" GAN " についての最新3記事ともできるので試してみてください!
(例 GANの場合は下の例の、cat:cs.AI → all:GAN へ)
サンプルコード
実際に、2つの記事を組み合わせて、arXiv API から論文情報を取得し、そのアブストラクトを元にWord Cloudを作成するコードを書いてみたところ下のようになりました!
実際に実行してみると、論文ごとにWord Cloudで生成した画像が表示されるはずです!
import pandas as pd
import feedparser
import texthero as hero
d = feedparser.parse('http://export.arxiv.org/api/query?search_query=cat:cs.AI&max_results=3&sortBy=lastUpdatedDate')
entries = d['entries']
for num in range(3):
title = entries[num].title
abstract = entries[num].summary
print(f'{num+1}番目の論文:{title}')
# Word Cloud 作成
s = pd.Series(abstract)
clean_text = hero.clean(s, pipeline=[
hero.preprocessing.fillna,
hero.preprocessing.lowercase,
hero.preprocessing.remove_digits,
hero.preprocessing.remove_punctuation,
hero.preprocessing.remove_diacritics,
hero.preprocessing.remove_stopwords
])
hero_img = hero.visualization.wordcloud(clean_text, colormap='viridis',background_color='white',return_figure=True)
コメント