データ分析-(学術最前線トレンド分析)-task 2
データ分析-(学術最前線トレンド分析)-task 2
ぶんせき
論文の著者は統計して、すべての論文の著者の出現評価率Top 10の名前を統計します.
インテリジェントポイントデータセットを入手し、まず特徴量を見て、著者に関連する特徴を見つけた.抽出(dict) pandasでデータ構造を見ます(前の行を示し、大まかな輪郭があります). 可視化(matplotlib図) 個人的に補足すべき点今回の作業は比較的簡単で、pythonのpandas、matplotlibライブラリの使い方 を熟練しています.
Q&A sum用法,綴じ作者の場合,pd形式の[[Paal,Mahesh,]]綴じ後[‘Pal’,‘Mahesh’,’]となり,処理後はlistリスト となる.
sum(data2[‘authors_parsed’],[])リスト内のコンテンツの抽出、接合 [’ '.join(x)for x in all_authors] [x[0] for x in all_authors] [x[0] for x in authors_lastname[0]]
code
ぶんせき
論文の著者は統計して、すべての論文の著者の出現評価率Top 10の名前を統計します.
インテリジェントポイント
Q&A
sum(data2[‘authors_parsed’],[])
code
import json
import pandas as pd
import matplotlib.pyplot as plt
# TOP10
data = []
pre = []
with open('arxiv-metadata-oai-2019.json','r') as f:
for idx, line in enumerate(f):
d = json.loads(line)
pre.append(d)
d = {
'authors:':d['authors'],'categories':d['categories'],'authors_parsed':d['authors_parsed']}
data.append(d)
data=pd.DataFrame(data)
# Top10
# Top10
#
# , cv
data2 = data[data['categories'].apply(lambda x:'cs.CV' in x)]
### , sum , []sum , all_authors list
all_authors = sum(data2['authors_parsed'],[])
authors_names=[' '.join(x)for x in all_authors]
authors_names = pd.DataFrame(authors_names)
plt.figure(figsize=(10,6))
authors_names[0].value_counts().head(10).plot(kind='barh')
names = authors_names[0].value_counts().index.values[:10]
_ = plt.yticks(range(0,len(names)), names)
plt.ylabel('Author')
plt.xlabel('Count')
#
authors_lastname = [x[0] for x in all_authors]
authors_lastname = pd.DataFrame(authors_lastname)
plt.figure(figsize=(10,6))
authors_lastname[0].value_counts().head(10).plot(kind='barh')
names = authors_lastname[0].value_counts().index.values[:10]
_ = plt.yticks(range(0, len(names)), names)
plt.ylabel('Author')
plt.xlabel('Count')
#
authors_lastname1 = [x[0] for x in authors_lastname[0]]
authors_lastname1 = pd.DataFrame(authors_lastname1)
plt.figure(figsize=(10, 6))
authors_lastname1[0].value_counts().head(10).plot(kind='barh')
names = authors_lastname1[0].value_counts().index.values[:10]
_ = plt.yticks(range(0, len(names)), names)
plt.ylabel('Author')
plt.xlabel('Count')