RobPruzan commited on
Commit
31d6a08
·
1 Parent(s): 33a9b02

adding rectangles on chart showing steep derivatives

Browse files
Files changed (1) hide show
  1. app.py +49 -1
app.py CHANGED
@@ -7,6 +7,7 @@ import argparse
7
 
8
  import gensim.downloader as api
9
  import matplotlib.pyplot as plt
 
10
  import nltk
11
  import numpy as np
12
  import pandas as pd
@@ -183,6 +184,47 @@ def stats(text):
183
  results = readability.getmeasures(text, lang='en')
184
  return results
185
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
 
187
  def predict(text, tokenizer=tokenizer):
188
  model.eval()
@@ -391,8 +433,14 @@ def sliding_window(text):
391
  plt.suptitle('Difficulty Score Across Text', fontsize=14, fontweight='bold')
392
  plt.style.use('ggplot')
393
  ax.set_facecolor('w')
394
- fig = plt.gcf()
395
 
 
 
 
 
 
 
396
  mapd = [('', 0)]
397
  maxy = max(inter_scores)
398
  miny = min(inter_scores)
 
7
 
8
  import gensim.downloader as api
9
  import matplotlib.pyplot as plt
10
+ import matplotlib.patches as patches
11
  import nltk
12
  import numpy as np
13
  import pandas as pd
 
184
  results = readability.getmeasures(text, lang='en')
185
  return results
186
 
187
+ def derive(x:list, y:list):
188
+ all_derivs = []
189
+ for idx, point in enumerate(x):
190
+ if idx != len(x) - 1:
191
+ next_x = x[idx + 1]
192
+ next_y = y[idx + 1]
193
+ h = next_x - point
194
+ if h != 0:
195
+ deriv = (next_y - y[idx])/h
196
+ else:
197
+ deriv = 0
198
+ all_derivs.append(abs(deriv))
199
+ return all_derivs
200
+ #(f(x+h) - f(x))/h
201
+
202
+
203
+ def generate_patches(x:list, y:list, range, deriv_threshold=2):
204
+ derivs = derive(x,y)
205
+ print('derivs', derivs)
206
+ in_patch = False
207
+ patches = []
208
+ start = []
209
+ end = []
210
+ for idx, der in enumerate(derivs):
211
+ if der > deriv_threshold:
212
+ if not in_patch:
213
+ start.append(x[idx])
214
+ in_patch = True
215
+ else:
216
+ if in_patch:
217
+ end.append(x[idx])
218
+ in_patch = False
219
+ else:
220
+ continue
221
+
222
+ print(start, end)
223
+ if len(start) != len(end):
224
+ #not doing len(x)-1 because the derivitive can't be taken at ending point so in derive() the x length is already -1 of original
225
+ end.append(len(x))
226
+ return list(zip(start,end))
227
+
228
 
229
  def predict(text, tokenizer=tokenizer):
230
  model.eval()
 
433
  plt.suptitle('Difficulty Score Across Text', fontsize=14, fontweight='bold')
434
  plt.style.use('ggplot')
435
  ax.set_facecolor('w')
436
+ shaded_areas = generate_patches(x, y, .42)
437
 
438
+ for area in shaded_areas:
439
+ print(range_chart[0], range_chart[1])
440
+ ax.add_patch(patches.Rectangle((area[0],range_chart[0]), area[1]-area[0], range_chart[1]-range_chart[0], alpha=0.2))
441
+
442
+ fig = plt.gcf()
443
+
444
  mapd = [('', 0)]
445
  maxy = max(inter_scores)
446
  miny = min(inter_scores)