{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "\n# Using frequency\n\nUsing a dictionary of word frequency.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "collapsed": false
      },
      "outputs": [],
      "source": [
        "import multidict as multidict\n\nimport numpy as np\n\nimport os\nimport re\nfrom PIL import Image\nfrom os import path\nfrom wordcloud import WordCloud\nimport matplotlib.pyplot as plt\n\n\ndef getFrequencyDictForText(sentence):\n    fullTermsDict = multidict.MultiDict()\n    tmpDict = {}\n\n    # making dict for counting frequencies\n    for text in sentence.split(\" \"):\n        if re.match(\"a|the|an|the|to|in|for|of|or|by|with|is|on|that|be\", text):\n            continue\n        val = tmpDict.get(text, 0)\n        tmpDict[text.lower()] = val + 1\n    for key in tmpDict:\n        fullTermsDict.add(key, tmpDict[key])\n    return fullTermsDict\n\n\ndef makeImage(text):\n    alice_mask = np.array(Image.open(\"alice_mask.png\"))\n\n    wc = WordCloud(background_color=\"white\", max_words=1000, mask=alice_mask)\n    # generate word cloud\n    wc.generate_from_frequencies(text)\n\n    # show\n    plt.imshow(wc, interpolation=\"bilinear\")\n    plt.axis(\"off\")\n    plt.savefig('frequency.png', format=\"png\")\n\n\n# get data directory (using getcwd() is needed to support running example in generated IPython notebook)\nd = path.dirname(__file__) if \"__file__\" in locals() else os.getcwd()\n\ntext = open(path.join(d, 'alice.txt'), encoding='utf-8')\ntext = text.read()\nmakeImage(getFrequencyDictForText(text))"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.13.5"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}