Skip to content

Instantly share code, notes, and snippets.

@moshanATucsd
Created June 9, 2020 19:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moshanATucsd/3551e51c39ca35cef394618b0e7b2fc3 to your computer and use it in GitHub Desktop.
Save moshanATucsd/3551e51c39ca35cef394618b0e7b2fc3 to your computer and use it in GitHub Desktop.
word_cloud.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "word_cloud.ipynb",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/moshanATucsd/3551e51c39ca35cef394618b0e7b2fc3/word_cloud.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "pWeuPSSj69nd",
"colab_type": "text"
},
"source": [
"references: [ref1](https://github.com/jackzhenguo/python-small-examples), [ref2](https://www.cnblogs.com/lsdb/p/9199037.html)"
]
},
{
"cell_type": "code",
"metadata": {
"id": "7xp-e1_I6uy5",
"colab_type": "code",
"outputId": "44743856-7d11-4383-b14c-8f25f874c902",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 187
}
},
"source": [
"!pip install pdfminer3k"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Requirement already satisfied: pdfminer3k in /usr/local/lib/python3.6/dist-packages (1.3.1)\n",
"Requirement already satisfied: pytest>=2.0 in /usr/local/lib/python3.6/dist-packages (from pdfminer3k) (3.6.4)\n",
"Requirement already satisfied: ply>=3.4 in /usr/local/lib/python3.6/dist-packages (from pdfminer3k) (3.11)\n",
"Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.6/dist-packages (from pytest>=2.0->pdfminer3k) (19.3.0)\n",
"Requirement already satisfied: py>=1.5.0 in /usr/local/lib/python3.6/dist-packages (from pytest>=2.0->pdfminer3k) (1.8.0)\n",
"Requirement already satisfied: pluggy<0.8,>=0.5 in /usr/local/lib/python3.6/dist-packages (from pytest>=2.0->pdfminer3k) (0.7.1)\n",
"Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.6/dist-packages (from pytest>=2.0->pdfminer3k) (1.12.0)\n",
"Requirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from pytest>=2.0->pdfminer3k) (42.0.2)\n",
"Requirement already satisfied: atomicwrites>=1.0 in /usr/local/lib/python3.6/dist-packages (from pytest>=2.0->pdfminer3k) (1.3.0)\n",
"Requirement already satisfied: more-itertools>=4.0.0 in /usr/local/lib/python3.6/dist-packages (from pytest>=2.0->pdfminer3k) (8.0.2)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "SsuOgFvL3rPk",
"colab_type": "code",
"colab": {}
},
"source": [
"from urllib.request import urlopen\n",
"from pdfminer.pdfinterp import process_pdf, PDFResourceManager\n",
"from io import StringIO\n",
"from pdfminer.layout import LAParams\n",
"from pdfminer.converter import TextConverter\n",
"import matplotlib.pyplot as plt\n",
"from wordcloud import WordCloud"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ZbkckIAJ4wa6",
"colab_type": "code",
"colab": {}
},
"source": [
"class MyWordCloud():\n",
" def __init__(self):\n",
" pass \n",
"\n",
" def getPdfText(self, pdf_url):\n",
" pdf_file_obj = urlopen(pdf_url)\n",
" pdf_rm = PDFResourceManager()\n",
" ret_str = StringIO()\n",
" lap = LAParams()\n",
" tc = TextConverter(pdf_rm, ret_str, laparams=lap)\n",
"\n",
" process_pdf(pdf_rm, tc, pdf_file_obj)\n",
" tc.close()\n",
" pdf_text = ret_str.getvalue()\n",
" ret_str.close()\n",
"\n",
" return pdf_text\n",
"\n",
" def genWordCloud(self, pdf_url_list):\n",
" pdf_text = ''\n",
"\n",
" for pdf_url in pdf_url_list:\n",
" pdf_text += self.getPdfText(pdf_url)\n",
"\n",
" wc = WordCloud(\n",
" background_color=\"white\", \n",
" max_words=10, \n",
" min_font_size=50,\n",
" max_font_size=200,\n",
" width=1000 \n",
" ).generate(pdf_text)\n",
"\n",
" plt.imshow(wc, interpolation=\"bilinear\")\n",
" plt.axis(\"off\")\n",
" plt.show()"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "xHYHgWWS3vos",
"colab_type": "code",
"outputId": "66566e38-f7e9-4e4b-d47b-12baaa0ce99d",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
}
},
"source": [
"if __name__ == '__main__':\n",
" pdf_url_list = []\n",
"\n",
" pdf_url = 'https://arxiv.org/pdf/1703.10125.pdf'\n",
" pdf_url_list.append(pdf_url)\n",
"\n",
" pdf_url = 'https://arxiv.org/pdf/1707.02069.pdf'\n",
" pdf_url_list.append(pdf_url)\n",
"\n",
" pdf_url = 'https://moshanatucsd.github.io/pdfs/paper/scr2019.pdf'\n",
" pdf_url_list.append(pdf_url)\n",
"\n",
" pdf_url = 'https://moshanatucsd.github.io/pdfs/presentation/vio_project.pdf'\n",
" pdf_url_list.append(pdf_url)\n",
"\n",
" pdf_url = 'https://www.ece.nus.edu.sg/stfpage/eleclf/Block-sparse%20RPCA%20for%20Consistent%20Foregroud%20Detection.pdf'\n",
" pdf_url_list.append(pdf_url)\n",
"\n",
" mwc = MyWordCloud()\n",
" mwc.genWordCloud(pdf_url_list)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='ULEUIZ+CMSY10'>, 12\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='ULEUIZ+CMSY10'>, 12\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='YQJSDJ+CMEX10'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='YQJSDJ+CMEX10'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='YQJSDJ+CMEX10'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='RCGGIU+CMSY10'>, 12\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='RCGGIU+CMSY10'>, 12\n",
"WARNING:root:Cannot locate objid=20\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='LLTSVC+CMSY10'>, 55\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='DBWFZV+CMEX10'>, 80\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='DBWFZV+CMEX10'>, 80\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='DBWFZV+CMEX10'>, 80\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='DBWFZV+CMEX10'>, 80\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='DBWFZV+CMEX10'>, 80\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='DBWFZV+CMEX10'>, 80\n",
"WARNING:root:Cannot locate objid=127\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 16\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 17\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 18\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 19\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 0\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 1\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 0\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 1\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 12\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 12\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 12\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 12\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 0\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 1\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 0\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 1\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 16\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 17\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='ICBUOU+CMSY10'>, 39\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 0\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 1\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='CHEAYR+MSAM10'>, 44\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 0\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 1\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 2\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 3\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 90\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 90\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 18\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 19\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 18\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 19\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 16\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 17\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EDMYPP+CMMI8'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 0\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 1\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 20\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 21\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 20\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 21\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 20\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='INFNXT+CMEX10'>, 21\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='EJTPVS+CMMIB10'>, 96\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='KMWLYI+CMSY8'>, 62\n",
"WARNING:root:Cannot locate objid=244\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='WAXMEH+CMEX10'>, 112\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='TAILUD+CMEX9'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='TAILUD+CMEX9'>, 88\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='QQXACN+CMSY9'>, 104\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='QQXACN+CMSY9'>, 105\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='TAILUD+CMEX9'>, 40\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='WAXMEH+CMEX10'>, 112\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='TAILUD+CMEX9'>, 112\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='TAILUD+CMEX9'>, 112\n",
"WARNING:pdfminer.converter:undefined: <PDFType1Font: basefont='TAILUD+CMEX9'>, 112\n"
],
"name": "stderr"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment