From 5e091f26ab164cf231ee7cc7fb411b3c565525f8 Mon Sep 17 00:00:00 2001 From: newt Date: Wed, 9 Oct 2024 18:02:33 +0100 Subject: [PATCH] Allow years to be input on ngrams --- .../ngrams/comparison/comparison.py | 24 ++++++++++++++---- ... round, mockingjay, aloof - 1800-2019.csv} | 0 ... round, mockingjay, aloof - 1800-2019.png} | Bin .../comparison/hallo, hello - 1500-1800.csv | 3 +++ .../comparison/hallo, hello - 1500-1800.png | Bin 0 -> 32588 bytes ...thday, acidic, bell, weed - 1800-2019.csv} | 0 ...thday, acidic, bell, weed - 1800-2019.png} | Bin ...lutzy.csv => poop, klutzy - 1800-2019.csv} | 0 ...lutzy.png => poop, klutzy - 1800-2019.png} | Bin ... tumour, milk, gelatinous - 1800-2019.csv} | 0 ... tumour, milk, gelatinous - 1800-2019.png} | Bin ...rosshair, glue, gluestick - 1800-2019.csv} | 0 ...rosshair, glue, gluestick - 1800-2019.png} | Bin .../ngrams/popularity/hallo - 1500-1800.png | Bin 0 -> 29400 bytes .../ngrams/popularity/popularity.py | 22 +++++++++++++--- ...errified.png => terrified - 1800-2019.png} | Bin 16 files changed, 40 insertions(+), 9 deletions(-) rename python/data science/ngrams/comparison/{dubious, orangutan, round, mockingjay, aloof.csv => dubious, orangutan, round, mockingjay, aloof - 1800-2019.csv} (100%) rename python/data science/ngrams/comparison/{dubious, orangutan, round, mockingjay, aloof.png => dubious, orangutan, round, mockingjay, aloof - 1800-2019.png} (100%) create mode 100644 python/data science/ngrams/comparison/hallo, hello - 1500-1800.csv create mode 100644 python/data science/ngrams/comparison/hallo, hello - 1500-1800.png rename python/data science/ngrams/comparison/{metropolis, birthday, acidic, bell, weed.csv => metropolis, birthday, acidic, bell, weed - 1800-2019.csv} (100%) rename python/data science/ngrams/comparison/{metropolis, birthday, acidic, bell, weed.png => metropolis, birthday, acidic, bell, weed - 1800-2019.png} (100%) rename python/data science/ngrams/comparison/{poop, klutzy.csv => poop, klutzy - 1800-2019.csv} (100%) rename python/data science/ngrams/comparison/{poop, klutzy.png => poop, klutzy - 1800-2019.png} (100%) rename python/data science/ngrams/comparison/{shuffle, metal, cancer, tumour, milk, gelatinous.csv => shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.csv} (100%) rename python/data science/ngrams/comparison/{shuffle, metal, cancer, tumour, milk, gelatinous.png => shuffle, metal, cancer, tumour, milk, gelatinous - 1800-2019.png} (100%) rename python/data science/ngrams/comparison/{spectacle, barrel, crosshair, glue, gluestick.csv => spectacle, barrel, crosshair, glue, gluestick - 1800-2019.csv} (100%) rename python/data science/ngrams/comparison/{spectacle, barrel, crosshair, glue, gluestick.png => spectacle, barrel, crosshair, glue, gluestick - 1800-2019.png} (100%) create mode 100644 python/data science/ngrams/popularity/hallo - 1500-1800.png rename python/data science/ngrams/popularity/{terrified.png => terrified - 1800-2019.png} (100%) diff --git a/python/data science/ngrams/comparison/comparison.py b/python/data science/ngrams/comparison/comparison.py index daef1fc..a91e4e5 100644 --- a/python/data science/ngrams/comparison/comparison.py +++ b/python/data science/ngrams/comparison/comparison.py @@ -6,13 +6,27 @@ import numpy import os import pandas +def yearInput(text): + while True: + try: + x = int(input(text + '\n')) + except ValueError: + print('You must input an integer!\n') + else: + if x > 2019 or x < 1500: + print('The year inputted is out of range. It must be between 1500 and 2019!') + else: + return x + pandas.options.display.float_format = '{:.10f}'.format +startYear = yearInput('Please enter the start year!') +endYear = yearInput('Please enter the end year!') +yearSpan = '%i-%i' % (startYear, endYear) +years = range(startYear, endYear + 1) + words = input('Please enter a list of words. Separate each word with a comma (:\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' % (words, startYear, endYear)) data = json.loads(response.content) @@ -52,7 +66,7 @@ wordList = ', '.join([f['word'] for f in frames]) while True: toSave = input('Would you like to save this data frame in a CSV? (y/n)') if toSave == 'y': - df.to_csv('%s/%s.csv' % (dirName, wordList)) + df.to_csv('%s/%s - %s.csv' % (dirName, wordList, yearSpan)) break if toSave == 'n': break @@ -63,7 +77,7 @@ while True: if toSave == 'y': plt.ticklabel_format(style='plain') plt.legend() - plt.savefig('%s/%s.png' % (dirName, wordList), dpi=100) + plt.savefig('%s/%s - %s.png' % (dirName, wordList, yearSpan), dpi=100) exit() elif toSave == 'n': exit() diff --git a/python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.csv b/python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.csv similarity index 100% rename from python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.csv rename to python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.csv diff --git a/python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.png b/python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.png similarity index 100% rename from python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof.png rename to python/data science/ngrams/comparison/dubious, orangutan, round, mockingjay, aloof - 1800-2019.png diff --git a/python/data science/ngrams/comparison/hallo, hello - 1500-1800.csv b/python/data science/ngrams/comparison/hallo, hello - 1500-1800.csv new file mode 100644 index 0000000..4a00492 --- /dev/null +++ b/python/data science/ngrams/comparison/hallo, hello - 1500-1800.csv @@ -0,0 +1,3 @@ +,word,stdev,mean,median,mode,range,q1,q3,iqr +0,hallo,9.067572402803685e-07,3.7112208955684736e-07,4.9074362859106e-08,0.0,5.638338344786982e-06,0.0,1.517606246384925e-07,1.517606246384925e-07 +1,hello,1.2565752685195384e-07,1.061839190423912e-07,9.166146648047808e-08,0.0,6.695058151048475e-07,0.0,1.4409192620031979e-07,1.4409192620031979e-07 diff --git a/python/data science/ngrams/comparison/hallo, hello - 1500-1800.png b/python/data science/ngrams/comparison/hallo, hello - 1500-1800.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f86fa40442de9a97fe77df6a1191b98bfeaeef GIT binary patch literal 32588 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 CL%n$b literal 0 HcmV?d00001 diff --git a/python/data science/ngrams/popularity/popularity.py b/python/data science/ngrams/popularity/popularity.py index 554746c..a604858 100644 --- a/python/data science/ngrams/popularity/popularity.py +++ b/python/data science/ngrams/popularity/popularity.py @@ -6,13 +6,27 @@ import statistics import os import pandas +def yearInput(text): + while True: + try: + x = int(input(text + '\n')) + except ValueError: + print('You must input an integer!\n') + else: + if x > 2019 or x < 1500: + print('The year inputted is out of range. It must be between 1500 and 2019!') + else: + return x + pandas.options.display.float_format = '{:.10f}'.format +startYear = yearInput('Please enter the start year!') +endYear = yearInput('Please enter the end year!') +yearSpan = '%i-%i' % (startYear, endYear) +years = range(startYear, endYear + 1) + 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] @@ -39,4 +53,4 @@ 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) +graph.savefig('%s/%s - %s.png' % (os.path.dirname(os.path.realpath(__file__)), word, yearSpan), dpi=100) diff --git a/python/data science/ngrams/popularity/terrified.png b/python/data science/ngrams/popularity/terrified - 1800-2019.png similarity index 100% rename from python/data science/ngrams/popularity/terrified.png rename to python/data science/ngrams/popularity/terrified - 1800-2019.png