From 8486f21ef97c882ee4d4ff1172d152c1d70ee70b Mon Sep 17 00:00:00 2001 From: newt! Date: Mon, 23 Aug 2021 20:45:54 +0100 Subject: [PATCH] Add word popularity checker --- .../comparison/comparison.py} | 0 ...s, orangutan, round, mockingjay, aloof.csv | 0 ...s, orangutan, round, mockingjay, aloof.png | Bin ...tropolis, birthday, acidic, bell, weed.csv | 0 ...tropolis, birthday, acidic, bell, weed.png | Bin .../comparison}/poop, klutzy.csv | 0 .../comparison}/poop, klutzy.png | Bin ...etal, cancer, tumour, milk, gelatinous.csv | 0 ...etal, cancer, tumour, milk, gelatinous.png | Bin ...le, barrel, crosshair, glue, gluestick.csv | 0 ...le, barrel, crosshair, glue, gluestick.png | Bin .../ngrams/popularity/popularity.py | 42 ++++++++++++++++++ .../ngrams/popularity/terrified.png | Bin 0 -> 34537 bytes readme.md | 4 +- 14 files changed, 45 insertions(+), 1 deletion(-) rename python/data science/{ngram comparison/ngram comparison.py => ngrams/comparison/comparison.py} (100%) rename python/data science/{ngram comparison => ngrams/comparison}/dubious, orangutan, round, mockingjay, aloof.csv (100%) rename python/data science/{ngram comparison => ngrams/comparison}/dubious, orangutan, round, mockingjay, aloof.png (100%) rename python/data science/{ngram comparison => ngrams/comparison}/metropolis, birthday, acidic, bell, weed.csv (100%) rename python/data science/{ngram comparison => ngrams/comparison}/metropolis, birthday, acidic, bell, weed.png (100%) rename python/data science/{ngram comparison => ngrams/comparison}/poop, klutzy.csv (100%) rename python/data science/{ngram comparison => ngrams/comparison}/poop, klutzy.png (100%) rename python/data science/{ngram comparison => ngrams/comparison}/shuffle, metal, cancer, tumour, milk, gelatinous.csv (100%) rename python/data science/{ngram comparison => ngrams/comparison}/shuffle, metal, cancer, tumour, milk, gelatinous.png (100%) rename python/data science/{ngram comparison => ngrams/comparison}/spectacle, barrel, crosshair, glue, gluestick.csv (100%) rename python/data science/{ngram comparison => ngrams/comparison}/spectacle, barrel, crosshair, glue, gluestick.png (100%) create mode 100644 python/data science/ngrams/popularity/popularity.py create mode 100644 python/data science/ngrams/popularity/terrified.png diff --git a/python/data science/ngram comparison/ngram comparison.py b/python/data science/ngrams/comparison/comparison.py similarity index 100% rename from python/data science/ngram comparison/ngram comparison.py rename to python/data science/ngrams/comparison/comparison.py diff --git a/python/data science/ngram comparison/dubious, orangutan, round, mockingjay, aloof.csv b/python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.csv similarity index 100% rename from python/data science/ngram comparison/dubious, orangutan, round, mockingjay, aloof.csv rename to python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.csv diff --git a/python/data science/ngram comparison/dubious, orangutan, round, mockingjay, aloof.png b/python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.png similarity index 100% rename from python/data science/ngram comparison/dubious, orangutan, round, mockingjay, aloof.png rename to python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.png diff --git a/python/data science/ngram comparison/metropolis, birthday, acidic, bell, weed.csv b/python/data science/ngrams/comparison/metropolis, birthday, acidic, bell, weed.csv similarity index 100% rename from python/data science/ngram comparison/metropolis, birthday, acidic, bell, weed.csv rename to python/data science/ngrams/comparison/metropolis, birthday, acidic, bell, weed.csv diff --git a/python/data science/ngram comparison/metropolis, birthday, acidic, bell, weed.png b/python/data science/ngrams/comparison/metropolis, birthday, acidic, bell, weed.png similarity index 100% rename from python/data science/ngram comparison/metropolis, birthday, acidic, bell, weed.png rename to python/data science/ngrams/comparison/metropolis, birthday, acidic, bell, weed.png diff --git a/python/data science/ngram comparison/poop, klutzy.csv b/python/data science/ngrams/comparison/poop, klutzy.csv similarity index 100% rename from python/data science/ngram comparison/poop, klutzy.csv rename to python/data science/ngrams/comparison/poop, klutzy.csv diff --git a/python/data science/ngram comparison/poop, klutzy.png b/python/data science/ngrams/comparison/poop, klutzy.png similarity index 100% rename from python/data science/ngram comparison/poop, klutzy.png rename to python/data science/ngrams/comparison/poop, klutzy.png diff --git a/python/data science/ngram comparison/shuffle, metal, cancer, tumour, milk, gelatinous.csv b/python/data science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous.csv similarity index 100% rename from python/data science/ngram comparison/shuffle, metal, cancer, tumour, milk, gelatinous.csv rename to python/data science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous.csv diff --git a/python/data science/ngram comparison/shuffle, metal, cancer, tumour, milk, gelatinous.png b/python/data science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous.png similarity index 100% rename from python/data science/ngram comparison/shuffle, metal, cancer, tumour, milk, gelatinous.png rename to python/data science/ngrams/comparison/shuffle, metal, cancer, tumour, milk, gelatinous.png diff --git a/python/data science/ngram comparison/spectacle, barrel, crosshair, glue, gluestick.csv b/python/data science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick.csv similarity index 100% rename from python/data science/ngram comparison/spectacle, barrel, crosshair, glue, gluestick.csv rename to python/data science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick.csv diff --git a/python/data science/ngram comparison/spectacle, barrel, crosshair, glue, gluestick.png b/python/data science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick.png similarity index 100% rename from python/data science/ngram comparison/spectacle, barrel, crosshair, glue, gluestick.png rename to python/data science/ngrams/comparison/spectacle, barrel, crosshair, glue, gluestick.png diff --git a/python/data science/ngrams/popularity/popularity.py b/python/data science/ngrams/popularity/popularity.py new file mode 100644 index 0000000..554746c --- /dev/null +++ b/python/data science/ngrams/popularity/popularity.py @@ -0,0 +1,42 @@ +import requests +import json +import matplotlib.pyplot as graph +import numpy +import statistics +import os +import pandas + +pandas.options.display.float_format = '{:.10f}'.format + +word = input('Please enter a word to research!\n') +print() +startYear = 1800 +endYear = 2019 +years = range(startYear, endYear + 1) + +response = requests.get('https://books.google.com/ngrams/json?content=%s&year_start=%s&year_end=%s&corpus=26&smoothing=3' % (word, startYear, endYear)) +data = json.loads(response.content)[0] + +frame = {} +points = data['timeseries'] + +frame['word'] = data['ngram'] +frame['stdev'] = numpy.std(points) +frame['mean'] = numpy.mean(points) +frame['median'] = numpy.median(points) +frame['mode'] = statistics.mode(points) +frame['range'] = max(points) - min(points) +frame['q1'] = numpy.percentile(points, 25) +frame['q3'] = numpy.percentile(points, 75) +frame['iqr'] = frame['q3'] - frame['q1'] + +df = pandas.DataFrame([frame]) +print(df) + +m, b = numpy.polyfit(years, points, 1) + +graph.plot(years, points) +graph.plot(years, m * years + b) +graph.title(frame['word']) +graph.ticklabel_format(style='plain') +graph.savefig('%s/%s.png' % (os.path.dirname(os.path.realpath(__file__)), word), dpi=100) diff --git a/python/data science/ngrams/popularity/terrified.png b/python/data science/ngrams/popularity/terrified.png new file mode 100644 index 0000000000000000000000000000000000000000..093f48f971c71f27d69530e8eed5857e69ff65d1 GIT binary patch literal 34537 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oXbvORsjn&)$7w1xi&qq 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