論文のアブストラクトをWordCloud化! (Word Cloud 活用編)

便利ツール

 以前、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で生成した画像が表示されるはずです!

feedparser のインストール

今回 pandas 以外に2つのライブラリを用いますが、以下のようにインストールできます!

pip install feedparser
pip install texthero

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)

コメント

タイトルとURLをコピーしました