Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Script that crawls meta data from ICLR OpenReview webpage. Tutorials on installing and using Selenium and ChromeDriver on Ubuntu.
| Date | Stars |
|---|---|
| 2026-07-24 | 388 |
| 2026-07-25 | 388 |
| 2026-07-28 | 388 |
| 2026-07-30 | 388 |
| 2026-08-06 | 388 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Crawl and Visualize ICLR 2019 OpenReview Data
<p align="center">
<img src="asset/logo_wordcloud.png" width="720"/>
</p>
## Descriptions
This Jupyter Notebook contains the data and visualizations that are crawled ICLR 2019 OpenReview webpages. All the crawled data (sorted by the average ratings) can be found [here](#Data). The accepted papers have an average rating of 6.611 and 4.716 for rejected papers. The distributions are plotted as follows.
<p align="center">
<img src="asset/decision.jpg" width="800"/>
</p>
## Prerequisites
- Python3.5
- [selenium](https://selenium-python.readthedocs.io/)
- [pyvirtualdisplay](https://pypi.org/project/PyVirtualDisplay/) (run on a headless device)
- [wordcloud](https://pypi.org/project/wordcloud/)
- [imageio](https://imageio.github.io/)
## Visualizations
The word clouds formed by keywords of submissions show the hot topics including **reinforcement learning**, **generative adversarial networks**, **generative models**, **imitation learning**, **representation learning**, etc.
<p align="center">
<img src="asset/wordcloud.png" width="720"/>
</p>
This figure is plotted with python [word cloud generator](https://github.com/amueller/word_cloud)
```python
from wordcloud import WordCloud
wordcloud = WordCloud(max_font_size=64, max_words=160,
width=1280, height=640,
background_color="black").generate(' '.join(keywords))
plt.figure(figsize=(16, 8))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
```
The distributions of reviewer ratings center around 5 to 6 (mean: 5.15).
<p align="center">
<img src="asset/rating.png" width="640"/>
</p>
You can compute how many papers are beaten by yours with
```python
def PR(rating_mean, your_rating):
pr = np.sum(your_rating >= np.array(rating_mean))/len(rating_mean)*100
return pr
my_rating = (5+6+7)/3 # your average rating here
print('Your papar beats {:.2f}% of submission '
'(well, jsut based on the ratings...)'.format(PR(rating_mean, my_rating)))
# ICLR 2017: accept rate 39.1% (198/507) (15 orals and 183 posters)
# ICLR 2018: accept rate 32% (314/981) (23 orals and 291 posters)
# ICLR 2018: accept rate ?% (?/1580)
```
The top 50 common keywords and their frequency.
<p align="center">
<img src="asset/frequency.png" width="640"/>
</p>
The average reviewer ratings and the frequency of keywords indicate that to maximize your chance to get higher ratings would be using the keywords such as **theory**, **robustness**, or **graph neural network**.
<p align="center">
<img src="asset/rating_frequency.png" width="800"/>
</p>
## How it works
See [How to install Selenium and ChromeDriver on Ubuntu](#Install).
To crawl data from dynamic websites such as OpenReview, a headless web simulator is created by
```
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
executable_path = '/Users/waltersun/Desktop/chromedriver' # path to your executable browser
options = Options()
options.add_argument("--headless")
browser = webdriver.Chrome(options=options, executable_path=executable_path)
```
Then, we can get the content of a webpage
```
browser.get(url)
```
To know what content we can crawl, we will need to inspect the webpage layout.
<p align="center">
<img src="asset/inspect.png" width="720"/>
</p>
I chose to get the content by
```
key = browser.find_elements_by_class_name("note_content_field")
value = browser.find_elements_by_class_name("note_content_value")
```
The data includes the abstract, keywords, TL; DR, comments.
## <a id="Install"></a>Installing Selenium and ChromeDriver on Ubuntu
The following content is hugely borrowed from a nice [post](https://christopher.su/2015/selenium-chromedriver-ubuntu/) written by Christopher Su.
- Install Google Chrome for Debian/Ubuntu
```
sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_cExcerpt of 252,858 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:ca2d38ac95f2a084, topic:crawler
matched fp:ca2d38ac95f2a084, topic:tutorial