(Python)ArxivのAPIでハッピーな論文を探してWordCloud
前回
前書き
前回([(Python)Arxivの論文情報からWordCloudを作成する])までの内容で、Arxivの論文情報からWordcloudを作成することができました。
Wordcloudは一目である文章中のキーワードの傾向を見ることができます。前回の結果では、Arxivで「mouse」と検索したときにはネズミではなくコンピュータ機器としてのマウスが多くヒットしました(関連記事5件の要旨の結果)。
何かと暗い話題の多い昨今なので、今回は「happy」について検索を行いWordCloudを作成します。
方法
実行環境
Environment
Google Colaboratory Ver:2021/05/22
Python 3.7.10
Google ドライブのマウント
- Google ドライブのマウントを行います。
from google.colab import drive
drive.mount('/gdrive')
- 上記のコードを実行後に得られるURLへアクセスし、移動先に従って各種の許可をした後にコードを取得します。
- 得られたコードをボックスに入力してEnterします。
API
import urllib.request, csv
import xml.etree.ElementTree as ET
keyword = 'happy'
size = 10
with open('/gdrive/My Drive/output.csv', 'w', encoding='UTF-8', newline='') as csv_file:
writer = csv.writer(csv_file)
fieldnames = ['Title', 'Link', 'Abstract']
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
writer.writeheader()
url = 'http://export.arxiv.org/api/query?search_query=all:'+keyword+'&sortBy=submittedDate&start=0&max_results='+str(size)
req = urllib.request.Request(url)
with urllib.request.urlopen(req) as res:
xmlres = res.read()
root = ET.fromstring(xmlres)
size_int = int(size)
for i in range(size_int):
try:
title = root[7+i][3].text
link = root[7+i][0].text
abst = root[7+i][4].text
writer.writerow({'Title':title, 'Link':link, 'Abstract':abst})
except (KeyError, IndexError, UnicodeEncodeError) as e:
print(e)
pass
&sortBy=submittedDate
をクエリに追加し、提出された日付で結果がソートされます。search_query=abs
をクエリに追加し、要旨の中から検索します。
WordCloud
import os
from os import path
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = open('/gdrive/My Drive/output.csv').read()
wordcloud = WordCloud().generate(text)
def color_func(word, font_size, position, orientation, random_state, font_path):
return 'black'
wordcloud = WordCloud(
max_font_size=None,
color_func=color_func,
background_color="white",
width=800,
height=600).generate(text)
plt.figure(figsize=(12,10))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
結果
得られたタイトルを以下に示します。
(例のウィルス)は現在流行しているウィルスです。本ページが機械的にそのウィルスに関する情報ページとして処理されるのを防ぐためにぼかしています。
タイトルはGoogle Translateにまかせてから部分的に修正しています。
- ヒンディー語 - 英語のコードの混在テキストデータにおける感情の検出
- 重力波の波面は、部分的に超小型の星の中に閉じ込め
- 単層グラフェンFETのバイアス依存性真性RF熱雑音モデリングおよび特徴付け
- 「私はマッドではない」:否定と矛盾の常識影響
- ソフトウェア工学の人間的側面:課題の調査
- Eコマース製品のQAのためのDistantly Supervised Transformer
- 必然的なロボットサウンドを探る:私たちはロボットをQuietでKawaii-etにすべきか?
- グローバル(例のウィルス)の間に開発を分散
- 青色はぐれ星の星の若者の万能薬の秘密
- 私はあなたがトラブルを知っていた:テイラー・スウィフトのレパートリーで感情的な動向
感想
- 心理、機械、言語が目立ちます。
- 人間よりもロボットやモデルが前面に出てきています。
今後気になる論文は読み進めてみようと思います。
関連記事