diff --git a/SWEETVIZ_REPORT (2).html b/SWEETVIZ_REPORT (2).html new file mode 100644 index 0000000..549e847 --- /dev/null +++ b/SWEETVIZ_REPORT (2).html @@ -0,0 +1,4302 @@ + + + + + + + + + + + + + + + +
+ + +
+ + + + + +
+
+ +
Tweets data
+
NO COMPARISON TARGET
+
+
+
7613
+
ROWS
+
+
+
+
0
+
DUPLICATES
+
+
+
+
2.3 MB
+
RAM
+
+
+
+
+ 5 +
+
FEATURES
+
+
+
+
+
1
+
CATEGORICAL
+
+
+
+
1
+
NUMERICAL
+
+
+
+
3
+
TEXT
+
+
+ +
+
+
+ + + +
+ +
+ 2.3.1
+ Get updates, docs & report issues here

+ Created & maintained by Francois Bertrand
+ Graphic design by Jean-Francois Hains +
+
+
+ + + +
+
+
+
+
+ + +
+ 1 +
+
+ id + +
+
+
VALUES:
+
+ 7,613 +
+
+ (100%) +
+
+
+
MISSING:
+
+ --- +
+
+ +
+
+
+
+
+
DISTINCT:
+
+ 7,613 +
+
+ (100%) +
+
+
+
+
+
ZEROES:
+
+ --- +
+
+ +
+
+
+ +
+
+
MAX
+
10,873
+
+
+
95%
+
10,356
+
+
+
Q3
+
8,146
+
+
+
AVG
+
5,442
+
+
+
MEDIAN
+
5,408
+
+
+
Q1
+
2,734
+
+
+
5%
+
548
+
+
+
MIN
+
1
+
+
+
+
+
RANGE
+
10,872
+
+
+
IQR
+
5,412
+
+
+
STD
+
3,137
+
+
+
VAR
+
9.8M
+
+
+
+
+
KURT.
+
-1.19
+
+
+
SKEW
+
0.008
+
+
+
SUM
+
41.4M
+
+
+ +
+ +
+
+
+
+
+
+ + +
+ 2 +
+
+ keyword +
+
+
VALUES:
+
+ 7,552 +
+
+ (>99%) +
+
+
+
MISSING:
+
+ 61 +
+
+
+ (<1%) +
+
+
+
+
+
DISTINCT:
+
+ 221 +
+
+ (3%) +
+
+
+ +
+
+
+
45
+
<1%
+
+
+
-
+
-
+
+
+ fatalities +
+
+
+
+
42
+
<1%
+
+
+
-
+
-
+
+
+ deluge +
+
+
+
+
42
+
<1%
+
+
+
-
+
-
+
+
+ armageddon +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ sinking +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ damage +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ harm +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ body%20bags +
+
+
+
+
7,259
+
96%
+
+
+
-
+
-
+
+
+ (Other) +
+
+
+
+ +
+
+
+
+
+
+ + +
+ 3 +
+
+ location +
+
+
VALUES:
+
+ 5,080 +
+
+ (67%) +
+
+
+
MISSING:
+
+ 2,533 +
+
+
+ (33%) +
+
+
+
+
+
DISTINCT:
+
+ 3,341 +
+
+ (44%) +
+
+
+ +
+
+
+
104
+
2%
+
+
+
-
+
-
+
+
+ USA +
+
+
+
+
71
+
1%
+
+
+
-
+
-
+
+
+ New York +
+
+
+
+
50
+
<1%
+
+
+
-
+
-
+
+
+ United States +
+
+
+
+
45
+
<1%
+
+
+
-
+
-
+
+
+ London +
+
+
+
+
29
+
<1%
+
+
+
-
+
-
+
+
+ Canada +
+
+
+
+
28
+
<1%
+
+
+
-
+
-
+
+
+ Nigeria +
+
+
+
+
27
+
<1%
+
+
+
-
+
-
+
+
+ UK +
+
+
+
+
4,726
+
93%
+
+
+
-
+
-
+
+
+ (Other) +
+
+
+
+ +
+
+
+
+
+
+ + +
+ 4 +
+
+ text +
+
+
VALUES:
+
+ 7,613 +
+
+ (100%) +
+
+
+
MISSING:
+
+ --- +
+
+ +
+
+
+
+
+
DISTINCT:
+
+ 7,503 +
+
+ (99%) +
+
+
+ +
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ 11-Year-Old Boy Charged With Manslaughter of Toddler: Report: An 11-year-old boy has been charged with manslaughter over the fatal sh... +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ He came to a land which was engulfed in tribal war and turned it into a land of peace i.e. Madinah. #ProphetMuhammad #islam +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ The Prophet (peace be upon him) said 'Save yourself from Hellfire even if it is by giving half a date in charity.' +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ #Bestnaijamade: 16yr old PKK suicide bomber who detonated bomb in ... http://t.co/KSAwlYuX02 bestnaijamade bestnaijamade bestnaijamade be‰Û_ +
+
+
+
+
5
+
<1%
+
+
+
-
+
-
+
+
+ Madhya Pradesh Train Derailment: Village Youth Saved Many Lives +
+
+
+
+
4
+
<1%
+
+
+
-
+
-
+
+
+ that horrible sinking feeling when you‰Ûªve been at home on your phone for a while and you realise its been on 3G this whole time +
+
+
+
+
4
+
<1%
+
+
+
-
+
-
+
+
+ To fight bioterrorism sir. +
+
+
+
+
7,572
+
>99%
+
+
+
-
+
-
+
+
+ (Other) +
+
+
+
+ +
+
+
+
+
+
+ + +
+ 5 +
+
+ target +
+
+
VALUES:
+
+ 7,613 +
+
+ (100%) +
+
+
+
MISSING:
+
+ --- +
+
+ +
+
+
+
+
+
DISTINCT:
+
+ 2 +
+
+ (<1%) +
+
+
+ +
+ +
+
+
+ + +
+
+
+ + Associations +
+ [Only including dataset "Tweets data"]
+ ■ Squares are categorical associations (uncertainty coefficient & correlation ratio) from 0 to 1. The uncertainty coefficient is assymmetrical, + (i.e. ROW LABEL values indicate how much they PROVIDE INFORMATION to each LABEL at the TOP). +

Circles are the symmetrical numerical correlations (Pearson's) from -1 to 1. The trivial diagonal is intentionally left blank for clarity. +
+ +
+
+ +
+
+ + Associations +
+ [Only including dataset "None"]
+ ■ Squares are categorical associations (uncertainty coefficient & correlation ratio) from 0 to 1. The uncertainty coefficient is assymmetrical, + (i.e. ROW LABEL values indicate how much they PROVIDE INFORMATION to each LABEL at the TOP). +

Circles are the symmetrical numerical correlations (Pearson's) from -1 to 1. The trivial diagonal is intentionally left blank for clarity. +
+ +
+
+ + + +
+
+ +
+
+ id +
+
+
+
MISSING:
+
+ --- +
+
+ +
+
+
+ + +
+ + + + +
+ + + + + +
+ + > +
+
NUMERICAL ASSOCIATIONS
+
+ (PEARSON, -1 to 1) +
+ +
+
+
CATEGORICAL ASSOCIATIONS
+
+ (CORRELATION RATIO, 0 to 1) +
+
+
+
target
+
0.06
+
+
+
+ +
+ +
+
MOST FREQUENT VALUES
+
+
+
1
+
+
1
+
<0.1%
+
+
+
+
7229
+
+
1
+
<0.1%
+
+
+
+
7250
+
+
1
+
<0.1%
+
+
+
+
7248
+
+
1
+
<0.1%
+
+
+
+
7247
+
+
1
+
<0.1%
+
+
+
+
7244
+
+
1
+
<0.1%
+
+
+
+
7242
+
+
1
+
<0.1%
+
+
+
+
7241
+
+
1
+
<0.1%
+
+
+
+
7236
+
+
1
+
<0.1%
+
+
+
+
7235
+
+
1
+
<0.1%
+
+
+
+
7234
+
+
1
+
<0.1%
+
+
+
+
7232
+
+
1
+
<0.1%
+
+
+
+
7231
+
+
1
+
<0.1%
+
+
+
+
7230
+
+
1
+
<0.1%
+
+
+
+
7228
+
+
1
+
<0.1%
+
+
+
+
+ +
+ +
+
SMALLEST VALUES
+
+
+
1
+
+
1
+
<0.1%
+
+
+
+
4
+
+
1
+
<0.1%
+
+
+
+
5
+
+
1
+
<0.1%
+
+
+
+
6
+
+
1
+
<0.1%
+
+
+
+
7
+
+
1
+
<0.1%
+
+
+
+
8
+
+
1
+
<0.1%
+
+
+
+
10
+
+
1
+
<0.1%
+
+
+
+
13
+
+
1
+
<0.1%
+
+
+
+
14
+
+
1
+
<0.1%
+
+
+
+
15
+
+
1
+
<0.1%
+
+
+
+
16
+
+
1
+
<0.1%
+
+
+
+
17
+
+
1
+
<0.1%
+
+
+
+
18
+
+
1
+
<0.1%
+
+
+
+
19
+
+
1
+
<0.1%
+
+
+
+
20
+
+
1
+
<0.1%
+
+
+
+
+ +
+ +
+
LARGEST VALUES
+
+
+
10873
+
+
1
+
<0.1%
+
+
+
+
10872
+
+
1
+
<0.1%
+
+
+
+
10871
+
+
1
+
<0.1%
+
+
+
+
10870
+
+
1
+
<0.1%
+
+
+
+
10869
+
+
1
+
<0.1%
+
+
+
+
10867
+
+
1
+
<0.1%
+
+
+
+
10866
+
+
1
+
<0.1%
+
+
+
+
10864
+
+
1
+
<0.1%
+
+
+
+
10863
+
+
1
+
<0.1%
+
+
+
+
10862
+
+
1
+
<0.1%
+
+
+
+
10860
+
+
1
+
<0.1%
+
+
+
+
10859
+
+
1
+
<0.1%
+
+
+
+
10855
+
+
1
+
<0.1%
+
+
+
+
10854
+
+
1
+
<0.1%
+
+
+
+
10853
+
+
1
+
<0.1%
+
+
+
+
+ +
+
+
+
+ +
+
+ keyword +
+
+
+
MISSING:
+
+ 61 +
+
+
+ (<1%) +
+
+
+ +
+
+
+
45
+
<1%
+
+
+
-
+
-
+
+
+ fatalities +
+
+
+
+
42
+
<1%
+
+
+
-
+
-
+
+
+ deluge +
+
+
+
+
42
+
<1%
+
+
+
-
+
-
+
+
+ armageddon +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ sinking +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ damage +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ harm +
+
+
+
+
41
+
<1%
+
+
+
-
+
-
+
+
+ body%20bags +
+
+
+
+
40
+
<1%
+
+
+
-
+
-
+
+
+ evacuate +
+
+
+
+
40
+
<1%
+
+
+
-
+
-
+
+
+ fear +
+
+
+
+
40
+
<1%
+
+
+
-
+
-
+
+
+ outbreak +
+
+
+
+
40
+
<1%
+
+
+
-
+
-
+
+
+ siren +
+
+
+
+
40
+
<1%
+
+
+
-
+
-
+
+
+ twister +
+
+
+
+
40
+
<1%
+
+
+
-
+
-
+
+
+ windstorm +
+
+
+
+
40
+
<1%
+
+
+
-
+
-
+
+
+ collided +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ sinkhole +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ sunk +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ hellfire +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ weapon +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ weapons +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ famine +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ explosion +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ whirlwind +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ earthquake +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ derailment +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ wreckage +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ collision +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ flames +
+
+
+
+
39
+
<1%
+
+
+
-
+
-
+
+
+ wrecked +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ ambulance +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ injury +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ hurricane +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ flooding +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ fire +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ fatal +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ blaze +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ explode +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ drowned +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ thunder +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ derailed +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ typhoon +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ deaths +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ upheaval +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ oil%20spill +
+
+
+
+
38
+
<1%
+
+
+
-
+
-
+
+
+ bombed +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ emergency +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ pandemonium +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ hostages +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ wounded +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ debris +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ ruin +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ burning%20buildings +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ sandstorm +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ wreck +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ blizzard +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ curfew +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ crush +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ fatality +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ bioterror +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ mudslide +
+
+
+
+
37
+
<1%
+
+
+
-
+
-
+
+
+ quarantined +
+
+
+
+
5,233
+
69%
+
+
+
-
+
-
+
+
+ (Other) +
+
+
+
+
+ +
+
+ +
+
+ location +
+
+
+
MISSING:
+
+ 2,533 +
+
+
+ (33%) +
+
+
+ +
+
+
+
104
+
2%
+
+
+
-
+
-
+
+
+ USA +
+
+
+
+
71
+
1%
+
+
+
-
+
-
+
+
+ New York +
+
+
+
+
50
+
<1%
+
+
+
-
+
-
+
+
+ United States +
+
+
+
+
45
+
<1%
+
+
+
-
+
-
+
+
+ London +
+
+
+
+
29
+
<1%
+
+
+
-
+
-
+
+
+ Canada +
+
+
+
+
28
+
<1%
+
+
+
-
+
-
+
+
+ Nigeria +
+
+
+
+
27
+
<1%
+
+
+
-
+
-
+
+
+ UK +
+
+
+
+
26
+
<1%
+
+
+
-
+
-
+
+
+ Los Angeles, CA +
+
+
+
+
24
+
<1%
+
+
+
-
+
-
+
+
+ India +
+
+
+
+
22
+
<1%
+
+
+
-
+
-
+
+
+ Mumbai +
+
+
+
+
21
+
<1%
+
+
+
-
+
-
+
+
+ Washington, DC +
+
+
+
+
20
+
<1%
+
+
+
-
+
-
+
+
+ Kenya +
+
+
+
+
19
+
<1%
+
+
+
-
+
-
+
+
+ Worldwide +
+
+
+
+
18
+
<1%
+
+
+
-
+
-
+
+
+ Chicago, IL +
+
+
+
+
18
+
<1%
+
+
+
-
+
-
+
+
+ Australia +
+
+
+
+
17
+
<1%
+
+
+
-
+
-
+
+
+ California +
+
+
+
+
15
+
<1%
+
+
+
-
+
-
+
+
+ New York, NY +
+
+
+
+
15
+
<1%
+
+
+
-
+
-
+
+
+ Everywhere +
+
+
+
+
15
+
<1%
+
+
+
-
+
-
+
+
+ California, USA +
+
+
+
+
14
+
<1%
+
+
+
-
+
-
+
+
+ San Francisco +
+
+
+
+
14
+
<1%
+
+
+
-
+
-
+
+
+ United Kingdom +
+
+
+
+
14
+
<1%
+
+
+
-
+
-
+
+
+ Florida +
+
+
+
+
13
+
<1%
+
+
+
-
+
-
+
+
+ Indonesia +
+
+
+
+
13
+
<1%
+
+
+
-
+
-
+
+
+ Washington, D.C. +
+
+
+
+
13
+
<1%
+
+
+
-
+
-
+
+
+ Los Angeles +
+
+
+
+
12
+
<1%
+
+
+
-
+
-
+
+
+ NYC +
+
+
+
+
12
+
<1%
+
+
+
-
+
-
+
+
+ Ireland +
+
+
+
+
12
+
<1%
+
+
+
-
+
-
+
+
+ Toronto +
+
+
+
+
11
+
<1%
+
+
+
-
+
-
+
+
+ Earth +
+
+
+
+
11
+
<1%
+
+
+
-
+
-
+
+
+ Seattle +
+
+
+
+
11
+
<1%
+
+
+
-
+
-
+
+
+ Chicago +
+
+
+
+
11
+
<1%
+
+
+
-
+
-
+
+
+ San Francisco, CA +
+
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ London, England +
+
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ Atlanta, GA +
+
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ ss +
+
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ Sacramento, CA +
+
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ New York City +
+
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ Texas +
+
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ London, UK +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ San Diego, CA +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ Dallas, TX +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ 304 +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ Nashville, TN +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ Denver, Colorado +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ World +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ US +
+
+
+
+
9
+
<1%
+
+
+
-
+
-
+
+
+ Manchester +
+
+
+
+
8
+
<1%
+
+
+
-
+
-
+
+
+ Scotland +
+
+
+
+
8
+
<1%
+
+
+
-
+
-
+
+
+ Houston, TX +
+
+
+
+
8
+
<1%
+
+
+
-
+
-
+
+
+ South Africa +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ Sydney +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ Denver, CO +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ Memphis, TN +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ Austin, TX +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ Pennsylvania, USA +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ Tennessee +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ worldwide +
+
+
+
+
7
+
<1%
+
+
+
-
+
-
+
+
+ Seattle, WA +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ Morioh, Japan +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ Pedophile hunting ground +
+
+
+
+
4,101
+
81%
+
+
+
-
+
-
+
+
+ (Other) +
+
+
+
+
+ +
+
+ +
+
+ text +
+
+
+
MISSING:
+
+ --- +
+
+ +
+
+
+ +
+
+
+
10
+
<1%
+
+
+
-
+
-
+
+
+ 11-Year-Old Boy Charged With Manslaughter of Toddler: Report: An 11-year-old boy has been charged with manslaughter over the fatal sh... +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ He came to a land which was engulfed in tribal war and turned it into a land of peace i.e. Madinah. #ProphetMuhammad #islam +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ The Prophet (peace be upon him) said 'Save yourself from Hellfire even if it is by giving half a date in charity.' +
+
+
+
+
6
+
<1%
+
+
+
-
+
-
+
+
+ #Bestnaijamade: 16yr old PKK suicide bomber who detonated bomb in ... http://t.co/KSAwlYuX02 bestnaijamade bestnaijamade bestnaijamade be‰Û_ +
+
+
+
+
5
+
<1%
+
+
+
-
+
-
+
+
+ Madhya Pradesh Train Derailment: Village Youth Saved Many Lives +
+
+
+
+
4
+
<1%
+
+
+
-
+
-
+
+
+ that horrible sinking feeling when you‰Ûªve been at home on your phone for a while and you realise its been on 3G this whole time +
+
+
+
+
4
+
<1%
+
+
+
-
+
-
+
+
+ To fight bioterrorism sir. +
+
+
+
+
4
+
<1%
+
+
+
-
+
-
+
+
+ VIDEO: 'We're picking up bodies from water': Rescuers are searching for hundreds of migrants in the Mediterranean after a boat carryi... +
+
+
+
+
4
+
<1%
+
+
+
-
+
-
+
+
+ .POTUS #StrategicPatience is a strategy for #Genocide; refugees; IDP Internally displaced people; horror; etc. https://t.co/rqWuoy1fm4 +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ Who is bringing the tornadoes and floods. Who is bringing the climate change. God is after America He is plaguing her + +#FARRAKHAN #QUOTE +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ Beware of your temper and a loose tongue! These two dangerous weapons combined can lead a person to the Hellfire #islam! +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ Hellfire is surrounded by desires so be careful and don‰Ûªt let your desires control you! #Afterlife +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ Madhya Pradesh Train Derailment: Village Youth Saved Many Lives: A group of villagers saved over 70 passengers' lives after two train... +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ Wreckage 'Conclusively Confirmed' as From MH370: Malaysia PM +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ #Allah describes piling up #wealth thinking it would last #forever as the description of the people of #Hellfire in Surah Humaza. #Reflect +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ @TinyJecht Are you another Stand-user? If you are I will have to detonate you with my Killer Queen. +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ CLEARED:incident with injury:I-495 inner loop Exit 31 - MD 97/Georgia Ave Silver Spring +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ #foodscare #offers2go #NestleIndia slips into loss after #Magginoodle #ban unsafe and hazardous for #humanconsumption +
+
+
+
+
3
+
<1%
+
+
+
-
+
-
+
+
+ @spinningbot Are you another Stand-user? If you are I will have to detonate you with my Killer Queen. +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ @aria_ahrary @TheTawniest The out of control wild fires in California even in the Northern part of the state. Very troubling. +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Caution: breathing may be hazardous to your health. +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ @_minimehh @cjoyner I must be overlooking the burning buildings? #BlackLivesMatter +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ @batfanuk we enjoyed the show today. Great fun. The emergency non evacuation was interesting. Have a great run. +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ USGS reports a M1.94 #earthquake 5km S of Volcano Hawaii on 8/6/15 @ 1:04:01 UTC http://t.co/Njd28pg9Xv #quake +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ @themagickidraps not upset with a rally upset with burning buildings businesses executing cops that have nothing to do with it etc +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Top insurer blasts lack of Australian Govt action on disaster mitigation http://t.co/sDgOUtWNtb via @smh +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ (#LosDelSonido) Obama Declares Disaster for Typhoon-Devastated Saipan: Obama signs disaster declaration for Northern Ma... (#IvanBerroa) +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Japan on Thursday marks the 70th anniversary of the atomic bombing of Hiroshima with the most senior official from Washington ever schedule‰Û_ +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ UD: Rescue (Structural Collapse) - Scott Road @ Ypres Road York (14 Trucks) +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ 320 [IR] ICEMOON [AFTERSHOCK] | http://t.co/THyzOMVWU0 | @djicemoon | #Dubstep #TrapMusic #DnB #EDM #Dance #Ices‰Û_ http://t.co/83jOO0xk29 +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ incident with injury:I-495 inner loop Exit 31 - MD 97/Georgia Ave Silver Spring +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ RT NotExplained: The only known image of infamous hijacker D.B. Cooper. http://t.co/JlzK2HdeTG +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ General News ‰Û¢åÊ'Demolition of houses on waterways begins at Achimota Mile 7 ' via @233liveOnline. Full story at http://t.co/iO7kUUg1uq +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Families to sue over Legionnaires: More than 40 families affected by the fatal outbreak of Legionnaires' disease in Edinburgh are to ... +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ wowo--=== 12000 Nigerian refugees repatriated from Cameroon +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Police investigating after an e-bike collided with a car in Little Portugal. E-bike rider suffered serious non-life threatening injuries. +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ #Newswatch: 2 vehicles collided at Lock and Lansdowne Sts in #Ptbo. Emerg crews on their way +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ 'Suicide bombing at [location named]...' #premonitions http://t.co/iIkSsJGBDn +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ @fewmoretweets all lives matter. Just not a fan of burning down buildings and stealing from your neighbors to 'protest' +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Evacuation order lifted for town of Roosevelt: http://t.co/EDyfo6E2PU http://t.co/M5KxLPKFA1 +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Warne shocked over Australia's epic collapse at Trent Bridge: Johannesburg Aug 06 (ANI): Legendary Australian... http://t.co/LwwoJXtTIV +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ abcnews - Obama Declares Disaster for Typhoon-Devastated Saipan: Obama signs disaster declaration for Northern... http://t.co/mg5eAJElul +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Traffic Collision - No Injury: I5 S at I5 S 43rd Ave offramp South Sac http://t.co/cT9ejXoLpu +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Mmmmmm I'm burning.... I'm burning buildings I'm building.... Oooooohhhh oooh ooh... +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Hellfire! We don‰Ûªt even want to think about it or mention it so let‰Ûªs not do anything that leads to it! +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ In #islam saving a person is equal in reward to saving all humans! Islam is the opposite of terrorism! +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Burning buildings? Media outrage? http://t.co/pHixZnv1YN +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ like for the music video I want some real action shit like burning buildings and police chases not some weak ben winston shit +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Swansea ‰Û÷plot hijack transfer move for Southampton target Virgil van Dijk‰Ûª http://t.co/PVmr38LnvA +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ New evacuation ordered for 25 homes in danger of Hwy. 8 fire near Roosevelt Wash. http://t.co/SQsyUeh4yI #KOIN6News http://t.co/199t7ND0pm +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ RT AbbsWinston: #Zionist #Terrorist kidnapped 15 #Palestinians in overnight terror on Palestinian Villages ‰Û_ http://t.co/J5mKcbKcov +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ #stormchase Violent Record Breaking EF-5 El Reno Oklahoma Tornado Nearly Runs Over ... - http://t.co/3SICroAaNz http://t.co/I27Oa0HISp +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ I Pledge Allegiance To The P.O.P.E. And The Burning Buildings of Epic City. ?????? +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Elem Pomo helping the displaced from the Rocky Fire. Please consider! +Elem Evacuation Center http://t.co/dYDFvz7amj via @gofundme +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Schools in Western Uganda still Burning down Buildings during Strikes....Strikes in Western Uganda always Lit literally.. +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ that exploded &amp; brought about the +beginning of universe matches what's +mentioned in the versethe heaven and Earth +(thus the universe) +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Check these out: http://t.co/rOI2NSmEJJ http://t.co/3Tj8ZjiN21 http://t.co/YDUiXEfIpE http://t.co/LxTjc87KLS #nsfw +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Hellfire! We don‰Ûªt even want to think about it or mention it so let‰Ûªs not do anything that leads to it #islam! +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ #KCA #VoteJKT48ID 12News: UPDATE: A family of 3 has been displaced after fired damaged housed near 90th and Osborn. Fire extinguished no i‰Û_ +
+
+
+
+
2
+
<1%
+
+
+
-
+
-
+
+
+ Experts in France begin examining airplane debris found on Reunion Island: French air accident experts on Wednesday began examining t... +
+
+
+
+
7,452
+
98%
+
+
+
-
+
-
+
+
+ (Other) +
+
+
+
+
+ +
+
+ +
+
+ target +
+
+
+
MISSING:
+
+ --- +
+
+ +
+
+
+ + + +
+ +
+
TOP CATEGORIES
+

+
+ +
+ +
+
+ + +
+ +
0
+ + +
+
4,342
+
57%
+
+ +
+
+ +
1
+ + +
+
3,271
+
43%
+
+ +
+
+
+
+ +
ALL
+ + +
+
7,613
+
100%
+
+ +
+
+
+ + +
+ + +
+ +
+ CATEGORICAL ASSOCIATIONS
+ (UNCERTAINTY COEFFICIENT, 0 to 1) +
+
target
+ PROVIDES INFORMATION ON...
+
+
+
THESE FEATURES
GIVE INFORMATION
+ ON target:
+
+
+ +
+ NUMERICAL ASSOCIATIONS
+ (CORRELATION RATIO, 0 to 1) +
+
target
+ CORRELATION RATIO WITH...
+
+
+
id
+
0.06
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/Untitled11.ipynb b/Untitled11.ipynb new file mode 100644 index 0000000..c7e8a5e --- /dev/null +++ b/Untitled11.ipynb @@ -0,0 +1,2333 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "authorship_tag": "ABX9TyMybgisVeyGM+2Km8f1LRds" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "f8590f16a7b843e8885d1680133c108d": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_ddbb58a283e449c2bd40a9055d55bc41", + "IPY_MODEL_6be09652ceb8407dbf5e6afc04fceb69", + "IPY_MODEL_439de7cf31694a0e8617c67d27a47737" + ], + "layout": "IPY_MODEL_68cfd1c43a5b493fbae36709c4ca8066" + } + }, + "ddbb58a283e449c2bd40a9055d55bc41": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ee9452fadb284edf86a14110412f5572", + "placeholder": "​", + "style": "IPY_MODEL_651288b0fa6c45fc8ecdedfb530aee77", + "value": "Done! Use 'show' commands to display/save. " + } + }, + "6be09652ceb8407dbf5e6afc04fceb69": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c39c495118af4d989955e873a585e8e7", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_c26cf154bf4b4350ac9b1837aa3a8875", + "value": 1 + } + }, + "439de7cf31694a0e8617c67d27a47737": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_85e76b78d076416fb7d304dca6baefcc", + "placeholder": "​", + "style": "IPY_MODEL_d3c08b99e2184af5b36f546609a31a4c", + "value": " [100%] 00:00 -> (00:00 left)" + } + }, + "68cfd1c43a5b493fbae36709c4ca8066": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "ee9452fadb284edf86a14110412f5572": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "651288b0fa6c45fc8ecdedfb530aee77": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c39c495118af4d989955e873a585e8e7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c26cf154bf4b4350ac9b1837aa3a8875": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "85e76b78d076416fb7d304dca6baefcc": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d3c08b99e2184af5b36f546609a31a4c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "cells": [ + { + "cell_type": "code", + "source": [ + "!pip install sweetviz" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uuNq22kvzi69", + "executionInfo": { + "status": "ok", + "timestamp": 1702749964141, + "user_tz": 360, + "elapsed": 10233, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "c7fcdc0c-0e19-42be-96e2-5a33ef9eba42" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Collecting sweetviz\n", + " Downloading sweetviz-2.3.1-py3-none-any.whl (15.1 MB)\n", + "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m15.1/15.1 MB\u001B[0m \u001B[31m49.8 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n", + "\u001B[?25hRequirement already satisfied: pandas!=1.0.0,!=1.0.1,!=1.0.2,>=0.25.3 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.5.3)\n", + "Requirement already satisfied: numpy>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.23.5)\n", + "Requirement already satisfied: matplotlib>=3.1.3 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (3.7.1)\n", + "Requirement already satisfied: tqdm>=4.43.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (4.66.1)\n", + "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.11.4)\n", + "Requirement already satisfied: jinja2>=2.11.1 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (3.1.2)\n", + "Requirement already satisfied: importlib-resources>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (6.1.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2>=2.11.1->sweetviz) (2.1.3)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (4.46.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (23.2)\n", + "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (9.4.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (3.1.1)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas!=1.0.0,!=1.0.1,!=1.0.2,>=0.25.3->sweetviz) (2023.3.post1)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=3.1.3->sweetviz) (1.16.0)\n", + "Installing collected packages: sweetviz\n", + "Successfully installed sweetviz-2.3.1\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import sweetviz as sv\n", + "import pandas as pd\n", + "\n", + "# Load your dataset (replace 'your_dataset.csv' with your file path)\n", + "data = pd.read_csv('/content/train.csv')\n", + "\n", + "# Analyze the dataset and generate a report\n", + "report = sv.analyze([data, 'Tweets data'])\n", + "\n", + "# Show the report in the default web browser\n", + "report.show_html()\n", + "\n", + "# Save the report as an HTML file\n", + "report.show_html('sweetviz_report.html')\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 104, + "referenced_widgets": [ + "f8590f16a7b843e8885d1680133c108d", + "ddbb58a283e449c2bd40a9055d55bc41", + "6be09652ceb8407dbf5e6afc04fceb69", + "439de7cf31694a0e8617c67d27a47737", + "68cfd1c43a5b493fbae36709c4ca8066", + "ee9452fadb284edf86a14110412f5572", + "651288b0fa6c45fc8ecdedfb530aee77", + "c39c495118af4d989955e873a585e8e7", + "c26cf154bf4b4350ac9b1837aa3a8875", + "85e76b78d076416fb7d304dca6baefcc", + "d3c08b99e2184af5b36f546609a31a4c" + ] + }, + "id": "Vb4smQHJ_BzM", + "executionInfo": { + "status": "ok", + "timestamp": 1702750001160, + "user_tz": 360, + "elapsed": 2604, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "78661997-1a1b-41c4-c14c-6468620b1f6d" + }, + "execution_count": 4, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " | | [ 0%] 00:00 -> (? left)" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "f8590f16a7b843e8885d1680133c108d" + } + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Report SWEETVIZ_REPORT.html was generated! NOTEBOOK/COLAB USERS: the web browser MAY not pop up, regardless, the report IS saved in your notebook/colab files.\n", + "Report sweetviz_report.html was generated! NOTEBOOK/COLAB USERS: the web browser MAY not pop up, regardless, the report IS saved in your notebook/colab files.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "import re\n", + "\n", + "# Load your dataset (replace 'your_dataset.csv' with your file path)\n", + "data = pd.read_csv('/content/train.csv')\n", + "\n", + "# Function to clean text data\n", + "def clean_text(text):\n", + " # Remove special characters, links, emojis, etc.\n", + " text = re.sub(r'http\\S+', '', text) # Remove links\n", + " text = re.sub(r'[^a-zA-Z\\s]', '', text) # Remove special characters except whitespace\n", + " # Add more cleaning steps as needed\n", + "\n", + " return text\n", + "\n", + "# Apply cleaning function to the 'text' column\n", + "data['text'] = data['text'].apply(clean_text)\n", + "\n", + "# Display the cleaned text data\n", + "print(data['text'].head(10))\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "oOct1hHUCa9T", + "executionInfo": { + "status": "ok", + "timestamp": 1702760696752, + "user_tz": 360, + "elapsed": 151, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "510ea92f-eca4-40d9-d8b8-a69fa7e736e6" + }, + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0 Our Deeds are the Reason of this earthquake Ma...\n", + "1 Forest fire near La Ronge Sask Canada\n", + "2 All residents asked to shelter in place are be...\n", + "3 people receive wildfires evacuation orders in...\n", + "4 Just got sent this photo from Ruby Alaska as s...\n", + "5 RockyFire Update California Hwy closed in bo...\n", + "6 flood disaster Heavy rain causes flash floodin...\n", + "7 Im on top of the hill and I can see a fire in ...\n", + "8 Theres an emergency evacuation happening now i...\n", + "9 Im afraid that the tornado is coming to our area\n", + "Name: text, dtype: object\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "data.head()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "Ulxbhu0f7TKK", + "executionInfo": { + "status": "ok", + "timestamp": 1702760699970, + "user_tz": 360, + "elapsed": 145, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "07607e8d-40ad-46b5-b7cf-9979e42be969" + }, + "execution_count": 36, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " id keyword location text \\\n", + "0 1 NaN NaN Our Deeds are the Reason of this earthquake Ma... \n", + "1 4 NaN NaN Forest fire near La Ronge Sask Canada \n", + "2 5 NaN NaN All residents asked to shelter in place are be... \n", + "3 6 NaN NaN people receive wildfires evacuation orders in... \n", + "4 7 NaN NaN Just got sent this photo from Ruby Alaska as s... \n", + "\n", + " target \n", + "0 1 \n", + "1 1 \n", + "2 1 \n", + "3 1 \n", + "4 1 " + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idkeywordlocationtexttarget
01NaNNaNOur Deeds are the Reason of this earthquake Ma...1
14NaNNaNForest fire near La Ronge Sask Canada1
25NaNNaNAll residents asked to shelter in place are be...1
36NaNNaNpeople receive wildfires evacuation orders in...1
47NaNNaNJust got sent this photo from Ruby Alaska as s...1
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 36 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "\n", + "\n", + "\n", + "# Check for missing/null values in each column\n", + "null_values = data.isnull().sum()\n", + "\n", + "# Display columns with missing/null values and their counts\n", + "print(\"Columns with Missing/Null Values:\")\n", + "print(null_values[null_values > 0])\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "UN183N9QCbJE", + "executionInfo": { + "status": "ok", + "timestamp": 1702760702621, + "user_tz": 360, + "elapsed": 156, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "3ef2e511-329a-4cc2-c27d-08297cbad104" + }, + "execution_count": 37, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Columns with Missing/Null Values:\n", + "keyword 61\n", + "location 2533\n", + "dtype: int64\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "\n", + "# Assuming 'cleaned_text' contains the cleaned text data\n", + "cleaned_text = data['text']\n", + "\n", + "# Initialize the TF-IDF Vectorizer\n", + "tfidf_vectorizer = TfidfVectorizer(max_features=5000) # Adjust max_features as needed\n", + "\n", + "# Fit and transform the cleaned text data\n", + "tfidf_features = tfidf_vectorizer.fit_transform(cleaned_text)\n", + "\n", + "# Convert to DataFrame (optional)\n", + "tfidf_df = pd.DataFrame(tfidf_features.toarray(), columns=tfidf_vectorizer.get_feature_names_out())\n", + "\n", + "# Display the TF-IDF features DataFrame\n", + "print(tfidf_df.head())\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JmcH8eYlDAi3", + "executionInfo": { + "status": "ok", + "timestamp": 1702760705324, + "user_tz": 360, + "elapsed": 620, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "6b372a9a-3001-4c86-9931-6e584e61c1ef" + }, + "execution_count": 38, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " aa aba abandon abandoned abbswinston abc abcnews abe ability \\\n", + "0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + " ablaze ... yr yrs yugvani yyc zakbagans zayn zionist zombie \\\n", + "0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + " zone zouma \n", + "0 0.0 0.0 \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "\n", + "[5 rows x 5000 columns]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "tfidf_df.head(10)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 412 + }, + "id": "TFWH41yK3seI", + "executionInfo": { + "status": "ok", + "timestamp": 1702760708278, + "user_tz": 360, + "elapsed": 138, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "26a351d8-0fac-4860-ade6-47ef53a164b1" + }, + "execution_count": 39, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " aa aba abandon abandoned abbswinston abc abcnews abe ability \\\n", + "0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "7 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + " ablaze ... yr yrs yugvani yyc zakbagans zayn zionist zombie \\\n", + "0 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "1 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "2 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "3 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "4 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "5 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "6 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "7 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "8 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "9 0.0 ... 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 \n", + "\n", + " zone zouma \n", + "0 0.0 0.0 \n", + "1 0.0 0.0 \n", + "2 0.0 0.0 \n", + "3 0.0 0.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "6 0.0 0.0 \n", + "7 0.0 0.0 \n", + "8 0.0 0.0 \n", + "9 0.0 0.0 \n", + "\n", + "[10 rows x 5000 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
aaabaabandonabandonedabbswinstonabcabcnewsabeabilityablaze...yryrsyugvaniyyczakbaganszaynzionistzombiezonezouma
00.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
10.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
50.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
60.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
70.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
80.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
90.00.00.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", + "

10 rows × 5000 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 39 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "# Count the occurrences of each value in the 'target' column\n", + "target_counts = data['target'].value_counts()\n", + "\n", + "# Define labels and sizes for the pie chart\n", + "labels = ['Not Disaster (0)', 'Disaster (1)']\n", + "sizes = [target_counts[0], target_counts[1]]\n", + "\n", + "# Define custom colors for the pie chart\n", + "colors = ['#FF6347', '#1E90FF'] # Custom colors for 0 and 1 respectively\n", + "\n", + "# Create the pie chart\n", + "plt.figure(figsize=(6, 6))\n", + "plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)\n", + "plt.title('Distribution of Tweets by Target')\n", + "plt.show()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 519 + }, + "id": "GtdkYEIM5wjh", + "executionInfo": { + "status": "ok", + "timestamp": 1702760712421, + "user_tz": 360, + "elapsed": 306, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "83d3cc09-8135-4164-a660-00fa5ae7cd9c" + }, + "execution_count": 40, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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W9i8eTNdunThgw8+sB3H5bPPPqN3794sW7aMTz/9lLi4ON555x3efPNN29HEzWk4WkRExBLtCYuIiFiiEhYREbFEJSwiImKJSlhERMQSlbCIiIglKmERERFLVMIiIiKWqIRFREQsUQmLiIhYohIWERGxRCUsIiJiiUpYRETEEpWwiIiIJSphERERS1TCIiIilqiERURELFEJi4iIWKISFhERsUQlLCIiYolKWERExBKVsIiIiCUqYREREUtUwiIiIpaohEVERCxRCYuIiFiiEhYREbFEJSwiImKJSlhERMQSlbCIiIglKmERERFLVMIiIiKWqIRFREQsUQmLiIhYohIWERGxRCUsIiJiiUpYRETEEpWwiIiIJSphERERS1TCIiIilqiERURELFEJi4iIWKISFhERsUQlLCIiYolKWERExBKVsIiIiCUqYREREUtUwiIiIpaohEVERCxRCYuI+IjZs2fz0UcfnffzkydPZvHixcWYSFTCIiKXacGCBTgcDhwOB1FRUfTo0YPt27cDkJGRQYUKFVi2bFmhfr/33nvvqu7jl19+4ZFHHqF169YAbNy4kTFjxtCoUSPXNu3ataNv375s2bLlqr6XXLoA2wFEfFl2LhxIhX2pkJQCJzIhKwcys51/ZuVA5umPrDM+Cvp8Ti6EBUJEkPMj8vRHRBBEBp9x2xl/P/NPh8P2s+F59uzZQ1paGmPHjqVNmzasW7eOqKgodu7cib+/f6F9nwULFjB37lzuv//+S9reGIPjrB/oyJEjefLJJylXrhzffPMNffv2pWrVquzZs8e1Tc2aNRk0aBCjR49m1qxZhZZfzs9hjDG2Q4h4I2PgYLqzXPelQFLquX8eSoMcN/gf6ADiw6ByCagSDZWjocrpv1eJhqhgq/HczoIFC2jXrh0pKSlERESQlpZG+fLlefHFFxk4cCCRkZHMnz+fG2+8kYceeoj//ve/hISE8Pjjj/PEE0+wf/9+hg8fzvz58ylRogSvvPIKffr0ISkpiYEDB7J06VIqVKjAxIkTWb16NWPGjAGgVq1abNq0iZ9++omHHnqIPXv20LZtW6ZOncq6deto164d7du35/jx46xYscKVd/369TRs2JDDhw8THR3NsWPHCAkJ4eOPP2b06NEcPnzYte3atWtp1KgR+/fvp2TJksX+3Poa7QmLXKVDabDhMGw4BIlH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DBhAZmYmISHO2aHdunXjo48+IiMjg/vuu4/IyEgqV67Mv//9b8D5xqB58+bExcUxa9asfFmnTp3KHXfcQWBgIBkZGSxbtowhQ4ZQqVIl7rnnHhYtWuR6jjp16sS0adMK50kvahWugW79Ycw/YOJnMOp56HgHVKoGDv13KDYOP+cVizrdASOfg4mfwpOvO9dxVgGLDwmwHcCdTZ48mVtuuYUBAwbku33KlClMnTqV77//ntTUVG677TZq167N8uXLqVevHg8//DAjR4684H03adKE/fv3c+jQoXy3P/roo1x//fV8+eWXjB49mgkTJvD3v/+defPm8eqrr9KoUSPat2/PlClTGDp0KCNGjOC9997juuuuo1+/fnz++eccOHCA6OhoPvroI26//XaeffZZ1q9fz9q1a9m0aRM9evSgQ4cOAPj5+bF8+XLKly+fL8cvv/zi2os+ePAgAJGRkQCUKFGC9PR00tPTCQsLo2nTpueUuEcICYVrmzs/AFJTYPPvsOl32Lhal1ssTA4HlKsMtRs6P2peC+GRtlOJWKcSvoDrrruOkSNHMnz4cF5++WXX7V999RU9evSgWbNmAHTs2JH58+dz99134+fnR2hoKMHBwZf0Pc4e3u7SpQsffPABlSpV4qmnnnJ9jw4dOjBu3Dh2797NiRMnSEpKIioqitatWzN16lQyMjL4+uuvqVy5suu+wsPDCQwMZM6cOSQmJtKoUSMAsrKyWLduHQA33XQTVatWPSfXgQMHiI2NvWD2vOHrkiVLcviwF0x+ioh0nmfa9Ebnv48fge2JsHPL6Y8/IPmY3YyeIjLaObxcuZrzz+r1ICradioRt6MSvogXXniBL7/8kmeffdZ1W2BgIH5nXPbsSg6rr1y5ktKlS1OqVKl8tz/77LPccccdfP311/To0YPhw4dz9913M3jwYF577TW6detG//79Xd/zp59+YuHChXz99dfUq1eP2bNnc/PNN+e7T4fDwV133cUzzzzjuq106QuvoRsUFER6unNVqvj4eACOHz8OQHJyMhEREYSGhgKQmZnp+rtXiY6Dxi2dH3mOHYYdW1TMZyoRe7pwq5/+qOGc0SwiF6USvojw8HDeffddbr31VtdtnTp14plnnmHYsGGkp6fz448/8v777wPO477btm0jOTmZqKiofPeVmZnJwYMHWbRoEa+99hpPPfVUvslQOTk5lC5dmuHDhzNs2DBWrFjBzz//TK9evcjNzaVmzZocOnSI7du3c+ONN/Lbb7/RokULPv/8cx5++GFmzpzJr7/+ys0330xQUBBbtmwhLS2Njh07Mm3aNIYOHUpoaCivvPIKU6ZMueDjrlatGklJSQCEhYXRrFkzpkyZQuXKlfnggw9o27ata9t9+/YVuDftlWLinR9nF/O+Xc6FQw7udf55YB8c3u89V4IKCIT4MlCqrHOWed5HxarOEhaRK6ISvgSdOnVi4MCBzJgxA4AhQ4awZcsWbr31VnJycnj00Ue58847Abj33nt57rnnKFeuHKNHj853P5MmTeKdd96hatWqPPfcc+ec2uPv78/06dMZNWoUr7zyCvXq1WPy5MnUq1eP0aNHc+edd1K1alUqVapEUlISTZo04bnnnmPo0KGkpaXRrl07HnjgAQDuu+8+nnrqKcqXL8/48eM5duwYXbt2xeFwcP/99190z7VDhw4sXrzYNXv7/fffZ8iQIdSpU4cmTZrkm4i1aNEi+vbtezVPsWfLK+Z6Z80Oz82FowdPl3MSHNjr/HfKCUg+DinHIT3V/rKbDgeEhkNkCedHidjThVvuf6UbU1IXvRcpAjpFSQq0bds2GjduzIYNG86ZtHWmtWvX0qFDBzZv3kx0dHTxBfQWOTnOMj6zmFNOQOoJyMyErAznlaTyPnKyITvb+WdOjvNPP38IDAT/AOefAWd8BAZCQBAEBDjXVI6M/l/Z5v09ooTz8yJS7FTCcl5vvfUWH3/8MQsXLixwoZKMjAxatmzJ+PHj6dGjh4WEIiKeTSUsF7Ro0SJat25d4OeMMSxevJibbrqpmFOJiHgHlbCIiIglmmkhIiJiiUpYRETEEpWwiIiIJSphERERS1TCIiIilqiERURELFEJi4iIWKISFhERsUQlLCIiYolKWERExBKVsIiIiCUqYREREUtUwiIiIpaohEVERCxRCYuIiFiiEhYREbFEJSwiImKJSlhERMQSlbCIiIglKmERERFLVMIiIiKWqIRFREQsUQmLiIhYohIWERGxRCUsIiJiiUpYRETEEpWwiIiIJSphERERS1TCIiIilqiERURELFEJi4iIWKISFhERsUQlLCIiYolKWERExBKVsIiIiCUqYREREUtUwiIiIpaohEVERCxRCYuIiFiiEhYREbFEJSwiImKJSlhERMQSlbCIiIglKmERERFLVMIiIiKWqIRFREQsUQmLiIhYohIWERGxRCUsIiJiiUpYRETEEpWwiIiIJSphERERS1TCIiIilvw/oh3o0DEQpB0AAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Assuming tfidf_df contains the TF-IDF DataFrame\n", + "print(tfidf_df.info())\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "chNmT5IV7JUC", + "executionInfo": { + "status": "ok", + "timestamp": 1702760716111, + "user_tz": 360, + "elapsed": 494, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "cbcdefe5-a524-4694-c447-7b2f630ce2f5" + }, + "execution_count": 41, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\n", + "RangeIndex: 7613 entries, 0 to 7612\n", + "Columns: 5000 entries, aa to zouma\n", + "dtypes: float64(5000)\n", + "memory usage: 290.4 MB\n", + "None\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "print(tfidf_df.describe())" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 339 + }, + "id": "p2wHDV7d8P9Q", + "executionInfo": { + "status": "error", + "timestamp": 1702760722867, + "user_tz": 360, + "elapsed": 5211, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "156cfa5a-8a42-4c34-f106-130b9a642a38" + }, + "execution_count": 42, + "outputs": [ + { + "output_type": "error", + "ename": "KeyboardInterrupt", + "evalue": "ignored", + "traceback": [ + "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[0;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)", + "\u001B[0;32m\u001B[0m in \u001B[0;36m\u001B[0;34m()\u001B[0m\n\u001B[0;32m----> 1\u001B[0;31m \u001B[0mprint\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mtfidf_df\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mdescribe\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/generic.py\u001B[0m in \u001B[0;36mdescribe\u001B[0;34m(self, percentiles, include, exclude, datetime_is_numeric)\u001B[0m\n\u001B[1;32m 10938\u001B[0m \u001B[0mmax\u001B[0m \u001B[0mNaN\u001B[0m \u001B[0;36m3.0\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 10939\u001B[0m \"\"\"\n\u001B[0;32m> 10940\u001B[0;31m return describe_ndframe(\n\u001B[0m\u001B[1;32m 10941\u001B[0m \u001B[0mobj\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 10942\u001B[0m \u001B[0minclude\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0minclude\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/describe.py\u001B[0m in \u001B[0;36mdescribe_ndframe\u001B[0;34m(obj, include, exclude, datetime_is_numeric, percentiles)\u001B[0m\n\u001B[1;32m 99\u001B[0m )\n\u001B[1;32m 100\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 101\u001B[0;31m \u001B[0mresult\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mdescriber\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mdescribe\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mpercentiles\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mpercentiles\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 102\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mcast\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mNDFrameT\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mresult\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 103\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/describe.py\u001B[0m in \u001B[0;36mdescribe\u001B[0;34m(self, percentiles)\u001B[0m\n\u001B[1;32m 179\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0m_\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mseries\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mdata\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mitems\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 180\u001B[0m \u001B[0mdescribe_func\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mselect_describe_func\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mseries\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mdatetime_is_numeric\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 181\u001B[0;31m \u001B[0mldesc\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mappend\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mdescribe_func\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mseries\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mpercentiles\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 182\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 183\u001B[0m \u001B[0mcol_names\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mreorder_columns\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mldesc\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/describe.py\u001B[0m in \u001B[0;36mdescribe_numeric_1d\u001B[0;34m(series, percentiles)\u001B[0m\n\u001B[1;32m 241\u001B[0m d = (\n\u001B[1;32m 242\u001B[0m \u001B[0;34m[\u001B[0m\u001B[0mseries\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mcount\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mseries\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmean\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mseries\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mstd\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mseries\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmin\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 243\u001B[0;31m \u001B[0;34m+\u001B[0m \u001B[0mseries\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mquantile\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mpercentiles\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mtolist\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 244\u001B[0m \u001B[0;34m+\u001B[0m \u001B[0;34m[\u001B[0m\u001B[0mseries\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmax\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 245\u001B[0m )\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/series.py\u001B[0m in \u001B[0;36mquantile\u001B[0;34m(self, q, interpolation)\u001B[0m\n\u001B[1;32m 2681\u001B[0m \u001B[0mdf\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mto_frame\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 2682\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 2683\u001B[0;31m \u001B[0mresult\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mdf\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mquantile\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mq\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mq\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minterpolation\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0minterpolation\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mnumeric_only\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;32mFalse\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 2684\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mresult\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mndim\u001B[0m \u001B[0;34m==\u001B[0m \u001B[0;36m2\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 2685\u001B[0m \u001B[0mresult\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mresult\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0miloc\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;36m0\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py\u001B[0m in \u001B[0;36mquantile\u001B[0;34m(self, q, axis, numeric_only, interpolation, method)\u001B[0m\n\u001B[1;32m 11319\u001B[0m \u001B[0;31m# error: Argument \"qs\" to \"quantile\" of \"BlockManager\" has incompatible type\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 11320\u001B[0m \u001B[0;31m# \"Index\"; expected \"Float64Index\"\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m> 11321\u001B[0;31m res = data._mgr.quantile(\n\u001B[0m\u001B[1;32m 11322\u001B[0m \u001B[0mqs\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mq\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0maxis\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;36m1\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minterpolation\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0minterpolation\u001B[0m \u001B[0;31m# type: ignore[arg-type]\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 11323\u001B[0m )\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001B[0m in \u001B[0;36mquantile\u001B[0;34m(self, qs, axis, interpolation)\u001B[0m\n\u001B[1;32m 1629\u001B[0m \u001B[0mnew_axes\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0;36m1\u001B[0m\u001B[0;34m]\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mFloat64Index\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mqs\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1630\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1631\u001B[0;31m blocks = [\n\u001B[0m\u001B[1;32m 1632\u001B[0m \u001B[0mblk\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mquantile\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0maxis\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0maxis\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mqs\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mqs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minterpolation\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0minterpolation\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1633\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mblk\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mblocks\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001B[0m in \u001B[0;36m\u001B[0;34m(.0)\u001B[0m\n\u001B[1;32m 1630\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1631\u001B[0m blocks = [\n\u001B[0;32m-> 1632\u001B[0;31m \u001B[0mblk\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mquantile\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0maxis\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0maxis\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mqs\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mqs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minterpolation\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0minterpolation\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 1633\u001B[0m \u001B[0;32mfor\u001B[0m \u001B[0mblk\u001B[0m \u001B[0;32min\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mblocks\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1634\u001B[0m ]\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/blocks.py\u001B[0m in \u001B[0;36mquantile\u001B[0;34m(self, qs, interpolation, axis)\u001B[0m\n\u001B[1;32m 1333\u001B[0m \u001B[0;32massert\u001B[0m \u001B[0mis_list_like\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mqs\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;31m# caller is responsible for this\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1334\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 1335\u001B[0;31m \u001B[0mresult\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mquantile_compat\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mvalues\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0masarray\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mqs\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_values\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minterpolation\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 1336\u001B[0m \u001B[0;31m# ensure_block_shape needed for cases where we start with EA and result\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 1337\u001B[0m \u001B[0;31m# is ndarray, e.g. IntegerArray, SparseArray\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/array_algos/quantile.py\u001B[0m in \u001B[0;36mquantile_compat\u001B[0;34m(values, qs, interpolation)\u001B[0m\n\u001B[1;32m 35\u001B[0m \u001B[0mfill_value\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mna_value_for_dtype\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mvalues\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mdtype\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mcompat\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;32mFalse\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 36\u001B[0m \u001B[0mmask\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0misna\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mvalues\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 37\u001B[0;31m \u001B[0;32mreturn\u001B[0m \u001B[0mquantile_with_mask\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mvalues\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mmask\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mfill_value\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mqs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minterpolation\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 38\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 39\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mvalues\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_quantile\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mqs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minterpolation\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/array_algos/quantile.py\u001B[0m in \u001B[0;36mquantile_with_mask\u001B[0;34m(values, mask, fill_value, qs, interpolation)\u001B[0m\n\u001B[1;32m 93\u001B[0m \u001B[0mresult\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mrepeat\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mflat\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mlen\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mvalues\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mreshape\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mlen\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mvalues\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mlen\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mqs\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 94\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 95\u001B[0;31m result = _nanpercentile(\n\u001B[0m\u001B[1;32m 96\u001B[0m \u001B[0mvalues\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 97\u001B[0m \u001B[0mqs\u001B[0m \u001B[0;34m*\u001B[0m \u001B[0;36m100.0\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/array_algos/quantile.py\u001B[0m in \u001B[0;36m_nanpercentile\u001B[0;34m(values, qs, na_value, mask, interpolation)\u001B[0m\n\u001B[1;32m 214\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mresult\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 215\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 216\u001B[0;31m return np.percentile(\n\u001B[0m\u001B[1;32m 217\u001B[0m \u001B[0mvalues\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 218\u001B[0m \u001B[0mqs\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/numpy/core/overrides.py\u001B[0m in \u001B[0;36mpercentile\u001B[0;34m(*args, **kwargs)\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/numpy/lib/function_base.py\u001B[0m in \u001B[0;36mpercentile\u001B[0;34m(a, q, axis, out, overwrite_input, method, keepdims, interpolation)\u001B[0m\n\u001B[1;32m 4164\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0m_quantile_is_valid\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mq\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 4165\u001B[0m \u001B[0;32mraise\u001B[0m \u001B[0mValueError\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m\"Percentiles must be in the range [0, 100]\"\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 4166\u001B[0;31m return _quantile_unchecked(\n\u001B[0m\u001B[1;32m 4167\u001B[0m a, q, axis, out, overwrite_input, method, keepdims)\n\u001B[1;32m 4168\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/numpy/lib/function_base.py\u001B[0m in \u001B[0;36m_quantile_unchecked\u001B[0;34m(a, q, axis, out, overwrite_input, method, keepdims)\u001B[0m\n\u001B[1;32m 4422\u001B[0m keepdims=False):\n\u001B[1;32m 4423\u001B[0m \u001B[0;34m\"\"\"Assumes that q is in [0, 1], and is an ndarray\"\"\"\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 4424\u001B[0;31m r, k = _ureduce(a,\n\u001B[0m\u001B[1;32m 4425\u001B[0m \u001B[0mfunc\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0m_quantile_ureduce_func\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 4426\u001B[0m \u001B[0mq\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mq\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/numpy/lib/function_base.py\u001B[0m in \u001B[0;36m_ureduce\u001B[0;34m(a, func, **kwargs)\u001B[0m\n\u001B[1;32m 3723\u001B[0m \u001B[0mkeepdim\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0;34m(\u001B[0m\u001B[0;36m1\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m)\u001B[0m \u001B[0;34m*\u001B[0m \u001B[0ma\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mndim\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 3724\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 3725\u001B[0;31m \u001B[0mr\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mfunc\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0ma\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 3726\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mr\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mkeepdim\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 3727\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/numpy/lib/function_base.py\u001B[0m in \u001B[0;36m_quantile_ureduce_func\u001B[0;34m(a, q, axis, out, overwrite_input, method)\u001B[0m\n\u001B[1;32m 4590\u001B[0m \u001B[0marr\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0ma\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mflatten\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 4591\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m-> 4592\u001B[0;31m \u001B[0marr\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0ma\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mcopy\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 4593\u001B[0m result = _quantile(arr,\n\u001B[1;32m 4594\u001B[0m \u001B[0mquantiles\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mq\u001B[0m\u001B[0;34m,\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;31mKeyboardInterrupt\u001B[0m: " + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Plot a heatmap for the TF-IDF DataFrame\n", + "sns.heatmap(tfidf_df.iloc[0:50, 0:50], cmap='viridis') # Adjust rows/columns for visualization\n", + "plt.title('TF-IDF Heatmap (Sample)')\n", + "plt.show()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 500 + }, + "id": "elLlyK7v8kmo", + "executionInfo": { + "status": "ok", + "timestamp": 1702753636438, + "user_tz": 360, + "elapsed": 784, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "d891e49b-3214-4194-c20e-ef810bba9f95" + }, + "execution_count": 22, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfkAAAHjCAYAAAAg+2YZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABqLElEQVR4nO3dd1hT1xsH8G8CkbCCgKPugRtEBfese9a996pa96zWVfesW9x7UK21rVaq1tn6c4+6J+6tdbDCCOT+/kBSI0hucgMJyffTJ89Tb3LuOQmB955zzzmvTBAEAURERGRz5JZuABEREaUNBnkiIiIbxSBPRERkoxjkiYiIbBSDPBERkY1ikCciIrJRDPJEREQ2ikGeiIjIRjHIE5GeuLg4vH371tLNSHMvX760dBOI0hyDPBHpvH79GhUqVMCKFSss3ZQ0N2rUKDRr1gwajcbSTSFKMwzypNO9e3fIZLJUH19++aXB1+bPnz/VevLnzw+ZTIYHDx4AAI4ePapX3tnZGcWLF8eECRPw7t07vbKfvvbTx9GjR1OsM+n51N73hg0bjPi0bE98fDyaNGmCsLAwdO/eXXf8l19+QbVq1eDt7Q13d3dUrlwZwcHBlmtoCh48eACZTIbSpUuLLjNy5EgcOHAA/fr1S7uGEVmYo6UbQNajTp06cHNz0/07KCgIADBgwADdscKFC+uVqV27NooVK6Z3zNvb26T6c+bMiRYtWiA2NhanTp3CtGnTEBwcjIMHD6JAgQIpvvZTuXLlMqnutJI5c2aEhYUhI6SIWLhwIc6cOYMjR44gZ86cAIBJkyZh8uTJ8PLyQqNGjaDVarF371506tQJd+/exYQJEyzcatP5+/tjxowZGDZsGDp27IjatWtbuklE5icQfQYA4XNfkW7dugkAhPXr1xt93nz58gkAhPv37wuCIAhHjhwRAAg1atTQvUar1QpjxowRAAiVK1fWHU/ptWKk1XsxxMPD47P1WpOYmBjB29tb73NVq9WCUqkUHB0dhUePHumOP3r0SHB1dRWcnJyEN2/eWKC1yd2/f18AIJQqVcqocpGRkULmzJmN/j4RZRQcrierJJPJMGnSJOTKlQsnTpzAiRMn0rX+qKgoDBs2DDlz5oRSqUTZsmXxxx9/6L3m1KlTaNCgAVQqFTw9PVGvXj38888/AIANGzZAJpMhLCxM936ShsDz588PhUKBbdu2oXjx4nByckKRIkWwe/duHDt2DOXLl4ezszMKFiyY7N74jRs30Lp1a3h5ecHd3R1VqlTB4cOHdc8n1Tts2DC0bNkSXl5eyJo1K4YNG5bqvefff/8db968QfPmzXXHIiIiEBMTA2dnZ2TPnl13PE+ePJg+fToGDhyIqKgoAMD79+8xZMgQ5MmTR3e7ZdmyZboyScPptWrVwoQJE3Sfa5UqVXDr1i2sXLkShQoVgouLCwICAnDs2DFd2aTbKUuWLEGlSpXg6uqKggULYvXq1QZ/jtu3b0eZMmWgVCqRJ08efPfdd3qfg6urK7766iv89ddfuHfvnsHzEWU4lr7KIOsFC/bkk3Ts2FEAIEyePNnga1NjzHuJj48XKleurKunW7dugpeXlyCXy4V//vlHEARBuHDhguDk5CQolUqhQ4cOQrNmzQS5XC54e3sLL1++FE6dOiUMGDBAyJQpkwBAGDBggLB582a99+/p6Sm0a9dOqFWrlgBAcHZ2Ftzc3ISmTZsK7du315U9ffq0IAiC8PTpUyFz5syCg4OD0KJFC91rnJychGvXrgmCIAjr16/XvdfAwEChU6dOQpYsWQQAwrfffvvZz2fgwIECAN37SxIYGCgAEGrVqiWcPHkyxbJarVaoWLGiAECoUqWK0LNnTyF79uwCAGHt2rWCIPzX0wYgFChQQOjatatQokQJAYCQJUsWwc3NTejatatQt25dAYCQNWtWITIyUu/nI5fLhYYNGwqtWrUSHB0dBQDCH3/8oXf+j3vyy5YtEwAIefLkEXr06KF7L8OHD9dr/6pVqwQAwrp16z77+RBlVAzy9FliAmPt2rWFAQMG6D2ePHmS6nmNCfJJQ/Z9+/bVe23OnDmT1fvzzz8bfC+pPZKC/KZNmwQAQrdu3XTlz507JwAQ2rZtKwiCIPz8889Cp06dhN9++033ml69egkAhG3btumOpTRcn/T+z5w5ozuWdFExduxY3bFx48YJAISZM2cKgiAIf/31l9CpUydh9erVutdMnTpVACDMmjVLEIT/gnyjRo0ErVYrCIIg3L59W1AoFIKrq6sQERGR4udTvXp1AYDw8uVLveOhoaG6YAxAKFiwoDBx4kTh33//1b3m1atXQqdOnYQRI0bojh07dkwAIDRo0EAQhP+CcI4cOYT3798LgiAI4eHhglKpFAAIf/75p65slSpVBAC6i4qk71rSe/z4fVavXl3v/ElBPioqSnBzcxO8vb11bU1ISBD8/f2FTJkyCe/evdOd6+jRowYvgogyKk68I0kOHTqEQ4cO6R3r3bs3nJ2dMXHiRL3jU6ZMgZeXl1HnT5oRL3wyce3Zs2e6iYFJHB0d0apVq1TP9/EkwiSHDh3CzZs3df/ev38/gMR11AMHDtSr/8qVKwCAVq1aoVmzZti9ezemTp2K169f4/LlywCAFy9eiHpvH09iLFy4ME6cOIFy5crpjhUqVEjXDgCoXr06qlWrhv3792PmzJl48eIFrl27lmKdhQsX1n12hQsXRvXq1XHo0CHcuXMHZcqUSdaWf//9F0DySZM+Pj64dOkStm3bhk2bNuHw4cOYMmUKlixZgp07d6JmzZrImjUrtmzZgosXL2L+/Pl4+vSp7nyftitbtmzw8PAAALi7uyN79ux4+PBhsvd9/PjxZOvYixYtqvv/Ll26oG/fvrh06VKKn+2JEycQGRmJLFmy4Pvvv9cdj4mJQVxcHG7fvo3y5cvrvWd72BuA7A+DPEmyfv16veVWSR48eJAsCI8cOdLoIP/w4UMA0M32TlKjRo3PLpdLzdKlS5Md6969u16QTwpM+/btS/bapOcePHiA2rVrp3gf99MLEqmSzvf+/XvUrl0bFy5cMLrOrFmzAvj8BUjSfeqUzuPo6IjOnTujc+fOePHiBaZPn46lS5eibdu2ePz4MZRKJXr27In169cb3a7UpFbWwcEBXl5eePHiBaKjo5M9//HP6dPv4cfPA4BSqTS5jUTWjhPvKE3kz58fQuLtIN3D0Pr5T8XExOgCec2aNc3fyM9QqVQAgODg4GTvIam3N336dNy7dw/dunXD48ePkZCQoNdjTAtBQUG4cOECGjRogNDQUMTHx6cYWFPy/PlzAMAXX3yR4vOZM2cGAL19CXbt2oXmzZtj7dq1umNffPEFlixZghIlSuDff//FlStXcPz4caxfvx758uXDqVOnEBMTg/v375v4LsXRaDT4999/oVKp4OzsnOz5pJ9hvXr1kv0MBUFA06ZNda998+YNAMDT0zNN20xkCQzyZJUEQcD48ePx7NkzlC1bFtWqVUu3upMuKBYtWoSYmBjd8fXr1+PJkycA/guaXbp0Qe7cuSGXy/Ho0aNk53J0TBwsM8euakl1tm7dGj4+PnBwcEixTgB6Qfb27ds4fvw43Nzcku1zkCTpAuzVq1e6YyqVCrt27cLs2bMRHh6uOx4REaELjB4eHrp2VatWDRUqVICTk9Nn2yXFx+9p8+bNiI+PT/HWAwBUrlwZTk5OOHLkCM6ePas7fuvWLezYsUPvta9fvwaAZHsxENkCDteT1bhz5w4GDhyImJgYHD9+HDdv3kSBAgWwbdu2z+5WlxZ69eqFNWvW4PTp0/Dz80P16tV1gXLo0KFYsGAB6tevj5CQEHTr1g0NGjTAjRs3dMv8Pr4wKFy4MN68eYM6deqgdevWGDRokMntql+/PoKCgjBq1CgcP34cT548wYEDB5LVCQC7d+9G1apV4ePjgz/++APx8fEYPHiw3mZHHytfvjx27NiBM2fOwNfXF0DixU7Hjh0RHByMQoUKoU6dOnBycsKhQ4fw8uVLNGnSBEWKFIGbmxvc3Nzw448/IjY2FnK5HLt3706xXVKMGjUKx44dg4ODA3777TcAwNixY1N8bZYsWTBhwgSMHz8e1atX1/Xc9+zZAw8PDzRp0kQ3AnDq1CndZ0Bka9iTJ6uRNJkuODgYcrkcEyZMwPnz5+Hj45Ou7XBxccHRo0cxYMAAqNVqbNmyBa9evcKMGTMwZ84cAMDAgQMxefJkyOVy7NixA97e3rrnbty4oTvX/PnzUbRoUZw7d043CmCqr776CsuXL4eXlxd27NgBjUajWyv+cZ0A0KFDB+TOnRt79uyBIAgYPnw4Jk+e/Nlzt2zZEjKZDEeOHNE7vmXLFqxfvx5FihTBnj17sHPnTnh6emLevHm6HnHOnDmxZ88eBAQEICQkBFevXsWGDRvg5uaGhw8fQq1WS3rfScaOHYvXr1/jjz/+QJ48ebB27VrUq1fvs68fN24c1q9fj6JFi+K3337DoUOH0LRpUxw/flxviP/QoUMoUKAAAgICzNJOImsiE8w9S4iILGbDhg3o0aMHhgwZgoULFxpVtkmTJjh8+DDu37+vt/mNpXXv3h0bN27Er7/+qrdZjzlcuHABgYGBmDNnDkaNGmXWcxNZA/bkiQhA4qiDVqtNtvTRVmm1WowZMwY+Pj4YPHiwpZtDlCYY5IkIAFCkSBGsW7cOq1evFj1rPyMbO3YsTp48iZ07d8LJycnSzSFKExyuJyI9ISEhUCqVNp+VLTg4GCVKlDAqPS1RRsMgT0REZKM4XE9ERGSjGOSJiIhsFIM8ERGRjbLYjnd15W0sVTUREWUwB7Q7DL9IAu2LImY7l/yL22Y7l1Tc1paIiOyeFlqzncuahsjTJchrNJrkCTrkAqBNv/3IiYiI7I3oIB8XF4f9e0Nw88Y1hIeHQwYZVB4eKOHnhzp1GyBTpkyfLbvr15+xc8d2vWMuReVQ33AwveVERERmkiCYrydvTUPkotfJL1uyELdu3UDZshXg7OoCAIhWq3Hh3FkULVYc/QZ8flvIlHryzVRd2ZMnIiJR0vqefPRz86Uads5x3/CL0onoC44L589h2sy5+CJHDr3jdeo1wITvvk21rEKhgEKh0D/IAE9ERJSmRM8PcHNzw82b15Mdv3rlMlzdXM3aKCIiovSkNeN/1kR0T75Dp65YHrQY69eshFKZmIs5OloNudwB36QyVE9ERGTtEmx0h3fRQb5Cpcrw9SuJu3dDER72HgDgrlLBp1BhuLur0qp9REREaU4LOw/yAODm7o5SpcukVVuIiIjIjKxppj8REZFFJLAnT0REZJtsdbjemnbfIyIiIjNiT56IiOye3c+uJyIislXWtbrdfDhcT0REZKPYkyciIrtnq7PrRfXk1Wo1tv+4FatWBOH6tav/HY+KQse2LQ2W12g0UKvVeg/IbfMDJSKijCdBMN/DmojqyS9fugiPHj5A/gIFMWfmNNSpVx+du/b48Kzhd8RUs0REROlPVJC/dvUyps+ehxw5cuLZ06eYM3MqwsPD0aVbDwCGs8k1a9EajZo00z+m6mpSg4mIiMzNrifeKZXOePPvawBAzly58P3UGXhw7y6WLpovqhKFQgEXFxe9B1PNEhGRtUiAzGwPayIqyDdo3ARzZk7D3pDfAQCenl6YOGUGoqKi0rRxRERE6UErmO9hTUQN1zdt1hIFCvjA0fG/l7u5uWH891Nx5vTJNGscERERmU70ErqS/qWSHVMqlaheo6ZZG0RERJTerG2Y3Vy4Tp6IiOyerQZ57nhHRERko9iTJyIiu6cVbLMnzyBPRER2j8P1RERElKGwJ09ERHYvwUb7vAzyRERk92z1nrxtXroQERGR6UG+d/fOuv3sDWGqWSIisma2une9qOH6jm1bIHm2OQGD+vcFAAT/9Euq5ZlqloiIrFmCYJsD26KCfPmKlXDuzGnUb9AYviX9AQhYsnAeuvX8GiqVh8HyTDVLRETWTGujd69FBfmhw7/FubNnsGHtKqjVUejcrQccHBzg5+ePLFmzGiyvUCigUCj0DzLVLBERUZoSPbu+bLny8PUrieAtGzFy2CDExcWlZbuIiIjSjbXdSzcXo5bQOTs7o9fX/VClanX89svPUGRSGC5ERERk5Sx1T/70yRMI3roRkRERCAgsh959+8PJyUn3/Pv377F86ULcunkDKpUH2nXsjCpVq4s+v0nvqljxEhgzbiI8PDKbUpyIiMjuRUSEY3nQIjRr0RrTZs7F7Vs3sX9viN5rdv36M969e4e58xejXsNGWL50MWJjY0XXYZszDYiIiIyghcxsj5SWjWs0mmR13g0NhVarRc1adZAjZy4EliuPG9ev6b1GLpNDqVTC08sbXl7ecHR0gCCIX4LOHe+IiMjumXNb25SWjbdq0w6t23bQOxYeHgYnpRIyWeJ8ABcXF0SEhycrN2rEYPTo0h7x8fHoN2AwlEql6LYwyBMREZlRSsvGk60w+5xP5v/t3LEdHioPjBo9DhcunEPw5o0oV64CXFxdRZ2OQZ6IiOyeOSfepbhsPAXu7u6IVkdDq9VCLpcjWh0NDw/9vWcuXbyAGjVrI3+BgsiZMxd2bAvGvXt34VfSX1RbeE+eiIjsnhZysz3E8ilUBA4Ochw8sA/Pnz/D+XNnUNzXD9qEBN1rcuXOgwvnz+L161c4duwvODg4IEeOHKLrYJAnIiKyAJVKhX4DBiNk9y6MHzMSRYoWQ916DTFv7iyE/L4LANC1e09kypQJo4YNxq5ffkbf/oPgncXwJnRJZIIx0/TMqK68jSWqJSKiDOiAdkeanv+Xu2XMdq6WPv+Y7VxS8Z48ERHZPXPOrrcmJgX5t2/fInjzBjx6+AAFCvqgU9ceUKlUn329RqNJvkZQLnD/eiIisgpae85CBwBzZ01H/0FD4OrqhtUrliLs/XtUq1ET586exuoVSzHi27GfLctUs0REROlPdJB/9vQJbt28gYDAcnj86BFGjRmHfPkLoGKlyhg9cliqZZlqloiIrJndD9fXqFkLa1evAAAUK+GLO3duI1/+AvjnwnlkyZIl1bJMNUtERNYsQbDNmCQ6yDdr0RphYWGYP3c2tFotTp34H4I3b4CjowLDR41OyzYSERGRCUQHeZlMhm49eqNFyzYIDb2NqMhIqDwyo3CRonBxcUnLNhIREaUpYzaxyUiMnl2v8vBAQGC5tGgLERGRRVgqn3xas813RURERNwMh4iISPtp+jcbwSBPRER2j8P1RERElKGwJ09ERHbP7jfDISJ6+l3lVJ/PNfNEOrWEyLy09r4ZDhERka2y1Z68bb4rIiIiEt+TV6vVCNn9GxwcHdC0WUv8EfI7Lv5zHrnz5EXbdh3h5u7+2bJMNUtERNbM7lPNLl+6EE+ePIGTkxNOnjiO+Ph4lC9fEVcuX8SqFUEYPmrMZ8sy1SwREVmzBHtfJ3/1ymXMmbcImT290KtbR0yeNgsFCvqg9sv6GDOKqWaJiIisjegg7+rqhsuXL8HLywvx8fG4ezcUBQr64N69UIMJaphqloiIrJndD9e3bNMOa1cth4ODAzp16Y7gzRuxddN6xMXFoXuvPmnZRiKyElwiR7bK7ofra9Wui/LlK0KAAHd3FSpVqYbbt24gZ85cyJsvfxo2kYiIiExh1Dr5j2fQe3l5oWKlKmZvEBERUXqz++F6IiIiW8UENURERJShsCdPRER2j/nkiYiIbJStDtczyBMRkd1jFroPIiLCER4eDhlkUHl4wM3NLS3aRURERBKJDvL37oZi2dJFePb06YcjAgAZ8uTNi34DBqNAgYJp00IiIqI0ZqupZkUH+TUrl8HXryQGDR2h28ZWrVbjyKEDWL18KWbMmf/ZssxCR0RE1szuh+tfvHiOEaPHwts7i97xr5o2x6ijh1Mtyyx0RERE6U90kPcpVBhrV61AtepfQumsBACoo6Lw919H4FOoSKplmYWOiIismdZCw/WnT55A8NaNiIyIQEBgOfTu2x9OTk4AgNevXmLwgL7JyvQfNBTVqn8p6vyig/w3A4Zg88Z12LRhLcLCwgAA7ip3FC/hiy5de6RallnoiIjImiVYYLg+IiIcy4MWoWuP3ihevARmTZ+C/XtD0LR5SwCAd5asWLNhi+71oXfuYP7cmShdJkB0HaKDvJe3N4YMH2VE84mIiOhz7oaGQqvVomatOpDJZAgsVx43rl/TBXm5XA5X1/9WsB0++CeqVqsBd3eV6DpEB/mnTx5DED7/fO48eURXSkREZE3MOfEupcnmKY1oh4eHwUmphEyWWLeLiwsiwsNTPOeL589x7uxpzPphoVFtER3kgxYvwIMHD5C4dO5TMgT/9ItRFRMREVkLc2ahS2myeas27dC6bQfDhT9zrRGyZxdK+JZEnjx5jWqL6CBfrUZNKDIdx8Ahw42qgIiIyJ6kNNk82bw0AO7u7ohWR0Or1UIulyNaHQ0PD49krwsPD8ffRw9jyPBvjW6L6CBfpVoNbAveDCcnJVQq8fcDiIiIrF2CGRPUpDjZPAU+hYrAwUGOgwf2oaR/aZw/dwZ16jeANiEBcof/lpj/uS8E3t5ZUCYg0Oi2iB6fUKlUWLlmI9xcXY2uhIiIyJppBZnZHmKpVCr0GzAYIbt3YfyYkShStBjq1muIeXNnIeT3XQCAuNhY/LlvLxo0aqK7d28MmSCkNp0u7dSVt7FEtURElAEd0O5I0/P3OdfNbOdaVXaj2c4llW1u1ktERETGB/lPO/7x8fH4+68jZmsQERFRetNCZraHNREd5K9euYwBfXuhW6d2WLFsCSIjIwEk3i9YEbQkzRpIRESU1hIEmdke1kR0kN+0fg0CypbD0BGj8O7tG0wY+y1ev3714VmL3NYnIiKiVIgO8i9evEDL1m0REFgOY8Z9Dz8/f0ya8B2ePXuKz67e/0Cj0UCtVus9IOeFARERWQetIDfbw5qIXiefN28+7Pp1J5o2bwUvLy/06tMPLltdMWv6ZINlmWqWiIismd3nk+/xdV8s/GE2lEol2nfsAgDo0KkLXN1csW3r5lTLMtUsERFR+jNqnbwgCIiNjYVSqZRcMdfJExGRWGm9Tr7T6a/Ndq6tFVab7VxSmSULnUwG5MrNLHRERJQx2f1wfcpZ6GQf/s0sdERERNaGWeiIiMjuWduseHNhFjoiIrJ7dj9cn5SFLlOmTGnZHiIionRnbdvRmovoIA8ASmfntGoHERERmZlRQZ6IiMgW2f1wPRERka2y1SAvaTrhiePHEBsba662EBERkRmJ7smnlDN+3eqVaNv+Hdzc3VG9Rk2zNoyIiCi92GpPXnSQXxG0GHK5HK6ubkjaCTcuLg6/7twBuVzOIE9ERBmW3Qf5UWPGYd2alShe3Bddu/eCm7s7enfvhJlz5iNL1qypltVoNNBoNPoH5QKgtc0PlYiIyBqIDvJlAspi7nw/bAvejFHDB6Nz1+4wlEc+CVPNEhGRNeM6eQBKpRLde36NKlWrY/WKIKjValHlmGqWiIismd0P13+scJGimDFnPs6ePgV3EVvcKhQKKBQK/YMcqiciIkpTklLN5smbD69fvQIA5M7DVLNERJQx2X1PnqlmiYjIVtl9kGeqWSIislV2H+SZapaIiChjYapZIiKye4K99+QBppolIiLbZKvr5CUlqCEiIiLrxVSzRERk9+x+4t2n1FFRePHiOb7IkRMuLi7mbBMREVG6svt78mFh7+HhkRkAcOb0SSxbsghxcbFQKp0xdMQo+Jcqk1ZtJCIiIhOIvic/ZEA/vH6duLvdT9uC0bBRE6xYvQHNWrTCpvVr06yBREREaU0ryMz2MMbpkycwZGBf9OrWEUGLFyA2NjbZax49fIDZM6agZ9cOCL1z26jziw7yBQr64K8jhwAAglaLipWrQOXhgSpVq+Pdu7epltVoNFCr1XoPyIVUyxAREaUXQZCZ7SFWREQ4lgctQrMWrTFt5lzcvnUT+/eG6L3m9auXmDxxLDy9vDF15lwULOhj1PsSPVzftn1HzJj6PR4/eoRs2bPjl5+3o3LV6jh0YD9KliqdalmmmiUiInuh0Wig0Wj0jqWUqO1uaCi0Wi1q1qoDmUyGwHLlceP6NTRt3lL3mpA9u5H9ixz4um9/yGTGzxsQHeSLl/DF91Nm4LdffkZo6B1ERUbh9q1bKBNYFp26dEu1LFPNEhGRNTPn7PqUOrat2rRD67Yd9I6Fh4fBSanUBW8XFxdEhIfrveb2zRtwUioxZtQwxMbEoFGTpqjXoJHothg1u75Q4SIYOXqsMUUAMNUsERFZt0+zrEqRUsc2WQz8nE9CY1RUFBSZMqFPvwEIvXMbG9athq9fSeTKLS7zq6RUsx9jqlkiIsqozLnjXYod2xS4u7sjWh0NrVYLuVyOaHU0PDw89F6j8vBA2XIV4FOoMHwKFUbwlo14/PiR+YN8yqlmkzDVLBERkTF8ChWBg4McBw/sQ0n/0jh/7gzq1G8AbUIC5A6Jc9bKBJbFsb+Pomz5Crgbegfx8fHImze/6DqYapaIiOyeJTbDUalU6DdgMLZt3YztwVsQWLY86tZriHlzZ6GErx8af9UMTb5qjrf//osJ342Cs7ML+vQbgJy5comuQyYI4u5EhIeHY9A3vbFk+RqzpJqtK28j+RxERGQfDmh3pOn5S4dMMNu5LjaearZzScVUs0RERDaKqWaJiMjumXN2vTVhFjoiIrJ7tpqghvnkiYiIbJSkIP/61UvEx8ebqy1EREQWYYm969OD6OH6q1cuYXnQYjg6OKJv/0FYt2Ylnj19AhcXFwwZ/i1K+pdKy3YSERGlGXNua2tNRPfkN65fiwoVK6NWnXqYPmUifH1LYu6CJajfoDE2bWCqWSIiImsjOsi/fvUSTZu1RLMWreDg4Ii69RsiV67cqF2vAV6/epVqWaaaJSIiayYI5ntYE9HD9fnzF8TyoEVwdXWDo6MjgrdsRI2atXD61Enkz18g1bJMNUtERNbM2u6lm4voHe+eP3uK4C0bIZfL0blbT2zesA6XL/2DXLnzoF//QciTN99ny6aUW7eZqisz0RERkShpveNdsV+mmO1cN1tONNu5pBId5M2N29oSEZFYDPKmYapZIiKye1Z2K91smGqWiIjsnq3ek2eqWSIiIhslOshXqVYD24I3w8lJaZZUs0RERFbDRsfrmWqWiIjsnt0P1wNMNUtERJSRMNUsERHZPWvbqc5cGOSJiMjucbgeQEREOMLDwyGDDCoPD7i5uaVVu4iIiEgiUUH+3t1QLFu6CM+ePv1wRAAgQ568edFvwGAUKFAw7VpIRESU1uy5J79m5TL4+pXEoKEj4OLiAgBQq9U4cugAVi9fihlz5qdaPqW96yEXuHc9ERFZBbu+J//ixXOMGD0W3t5Z9I5/1bQ5Rh09bLA8s9AREZFVs+cg71OoMNauWoFq1b+E0lkJAFBHReHvv47Ap1Bhg+WbtWiNRk2a6R9TdTWhuURERCSWqCD/zYAh2LJpPTZtWIuwsDAAgLvKHcVL+KJLt54GyysUCigUCv2DHKonIiIrYdez65XOzsie/QsonZ1RtVp1lPAtCQCIiorE1z26MjkNERFlbDY6XC8X86LlSxfhxPFjiIqMxNxZ07Fl03oAgAwy2OwnQ0RElMGJ6slfu3oZ02fPQ44cOfHs6VPMmTkV4eHh6NKtBwDbHOIgIiL7YavD9aJ68kqlM978+xoAkDNXLnw/dQYe3LuLpYtSXzpHRESUIQhmfFgRUUG+QeMmmDNzGvaG/A4A8PT0wsQpMxAVFZWmjSMiIiLTiRqub9qsJQoU8IGj438vd3Nzw/jvp+LM6ZNp1jgiIqL0YZvD9aL3ri/pXyrZMaVSieo1apq1QUREROnOyobZzYVZ6IiIiCzk9MkTCN66EZEREQgILIfeffvDyclJ9/ztWzfx/fgxemXWb/oRSmdnUec3KsgLggCZ7L8hjfj4eJw4foy9eSIiytgs0JOPiAjH8qBF6NqjN4oXL4FZ06dg/94QNG3eUvea9+/fwds7C2bPW6g7JjbAAyIn3l29chkD+vZCt07tsGLZEkRGRgIA4mJjsSJoiejKiIiIrJIgM9tDo9FArVbrPZIlaQNwNzQUWq0WNWvVQY6cuRBYrjxuXL+m95r3794hs6cnXF3ddA9jiOrJb1q/BgFly6FMQCD27w3BhLHfYuyESXB1cYXN3sggIiK7Yc4sdCklZWvVph1at+2gdyw8PAxOSqVuhNzFxQUR4eF6r3n39i1ev36Fwf37QJEpE1q2aoMq1WqIbovILHQv8N2ESfD09EKZgLJYt3olJk34DsNGjIaYGYlMNUtERPYipaRsyfK3fM4nYbFchYrw9PaCr29JnDp5AiuWLUEJv5Lw9PQSdTpRQT5v3nzY9etONG3eCl5eXujVpx9ctrpi1vTJoiphqlkiIrJqZuzJp5iULQXu7u6IVkdDq9VCLpcjWh0NDw8Pvdd4Z8mCnDlzQensjCZNm+Pnn37Es6dPzRvke3zdFwt/mA2lUon2HbsAADp06gJXN1ds27rFYHmmmiUiIqtmgW1tfQoVgYODHAcP7ENJ/9I4f+4M6tRvAG1CAuQOiZ3g9WtWISoqEv36D8KFC+fh6OiIHDlzia5D1MS7HDlyomq1GggPD8f1a1d1x+vUqS+qEoVCARcXF70Hh+qJiMieqVQq9BswGCG7d2H8mJEoUrQY6tZriHlzZyHk910AgM5de0Amk2HE0IHYs/tX9B80FF5e4nrxgMie/PKli/Do0QPkz18Qc2ZOQ5169dG5aw/T3hUREZGVkVloDnmlylVRqXJVvWOjxozT/X+WrFkxdoK4W+MpMUMWOiIiogzORheKMQsdERGRjWIWOiIiIjNuhmNNmIWOiIjIRofrmYWOiIjIRoO8qOF6IiIiyniYapaIiIg9eX0njh9DbGysOdtCRERkGfY88e7vv44kO7Zu9Uq0bf8Obu7uvC9PRERkhUQF+RVBiyGXy+Hq6gbhQz6+uLg4/LpzB+RyOYM8ERFlaJba8S6tiQryo8aMw7o1K1G8uC+6du8FN3d39O7eCTPnzEeWrFkNlmeqWSIismr2HOTLBJTF3Pl++HHrJowaPhidu3aHmDzySZhqloiIKP2Jnl2vVCrRo1cfVK1WA6tXBEGtVouuhKlmiYiI0p+oIK9Wq/H7rl8RFvYeVavVwIw583H29CnI5XJ0bNsSwT/9kmp5hUIBhUKhf5BD9UREZCVs9Z68qCV0y5cuwon//Y2oyEjMmTkN24I3o1KVqlAqlbDZGxlEREQZnBlSzbJHTkREGZyVrW83F6aaJSIiEsz4sCJMNUtERGSjQZ6pZomIiGwUU80SEZHds9XZ9cxCR0REZKNBnvnkiYiIbJRJQV4dFYV7d0ON2vWOiIjIatnzxLuwsPfw8MgMADhz+iSWLVmEuLhYKJXOGDpiFPxLlUnLNhIREaUpW70nL6onP2RAP7x+/QoA8NO2YDRs1AQrVm9AsxatsGn92jRtIBEREZlGVJAvUNAHfx05BAAQtFpUrFwFKg8PVKlaHe/evTVYXqPRQK1W6z0gt9HLJiIiyngEmfkeVkTUcH3b9h0xY+r3ePzoEbJlz45fft6OylWr49CB/ShZqrTB8kw1S0REVs1G+50yQRBEvbW7oXfw684duHXrBqIio+Dh4YEygWXRuUt3uLi6plpWo9FAo9HoHWum6spMdEREJMoB7Y40PX+h2QvMdq7Q0cPMdi6pRKeaPXf2DFQeHhg24luU8C0JAIiKikTvHl2YapaIiDI0u55493Gq2bmzpmPLpvUAABlksNkxDiIish/2vISOqWaJiMiW2XVPnqlmiYiIMh6mmiUiIrLQcP3pkycwZGBf9OrWEUGLFyA2NjbF1z18cB+d27fCzz/9aNT5mWqWiIjIAsP1ERHhWB60CF179Ebx4iUwa/oU7N8bgqbNW+q9TpuQgFUrgiByMZweppolIiIyo5SWjae0yuxuaCi0Wi1q1qoDmUyGwHLlceP6tWRB/o8/fkemTJmQL19+o9vCVLNERGT3zDnxLqUN4Fq1aYfWbTvoHQsPD4OTUgmZLHECu4uLCyLCw/Ve8+rlS+z6ZScmT5uFpYuNnwfHIE9ERGRGzVq0RqMmzfSOJdsr5nM+WbC2ZtUyNGzyFXLmymVSW0wO8q9fvYSnl7fefXoiIiJ7l+IGcClwd3dHtDoaWq0Wcrkc0epoeHh46J6/c/sWrly+hNA7txGy+zfExMTgyeNHUCgyoVmLVqLaIipCX71yCcuDFsPRwRF9+w/CujUr8ezpE7i4uGDI8G9TvF9PRESUYVhg4p1PoSJwcJDj4IF9KOlfGufPnUGd+g2gTUiA3MEB+fIXwOKglbrXz509A75+JVGnXn3RdYhaQrdx/VpUqFgZterUw/QpE+HrWxJzFyxB/QaNsWmD4VSzzEJHRETWTCaY7yGWSqVCvwGDEbJ7F8aPGYkiRYuhbr2GmDd3FkJ+34VMmTIha7bsuoejoyNcXV3h6uomug5RPfnXr16iabOWyOzpiZ07tqNu/YbIlSs3atdrgJA9uw2WZxY6IiKi5CpVropKlavqHRs1ZlyKr50xe57R5xcV5PPnL4jlQYvg6uoGR0dHBG/ZiBo1a+H0qZPIlz+/wfIpTUJopupqdGOJiIjShI0OLosaru/bfyAyZXJCQkICZs9bCEdHRyxfugivXrxA7779DZZXKBRwcXHRezALHRERWQ17TlDjkdkTuXPnQVh4GF6/eoXho8YASEw1+3WPrgZTzRIREVkzu05Qs3zpIpw4fgxRkZGYM3MaU80SERFlAEw1S0REZKP9VaaaJSIiu2eJJXTpgalmiYiIbBRTzRIREVlZD9xcmGqWiIjIRoO8qOF6IiIiyniMSiEXERGO8PBwyCCDysMDbm7i988lIiKyVtY2Yc5cRAX5e3dDsWzpIjx7+vTDEQGADHny5kW/AYNRoEDBtGshERFRWrPnIL9m5TL4+pXEoKEjErekBaBWq3Hk0AGsXr4UM+ZwKR0REZG1ERXkX7x4jhGjx8LbO4ve8a+aNseoo4cNltdoNNBoNPoH5QL3ryciIutgzz15n0KFsXbVClSr/iWUzkoAgDoqCn//dQQ+hYoYLM9Us0REZM1s9Z68TBAEg2/t7Zs32LJpPW5cv4awsDAAicnui5fwReeu3eGdJWuq5VPqyTdTdWVPnoiIRDmg3ZGm5/cbtcBs57o6d5jZziWVqJ68SqVCkWLFUMKvJOrUrY8jhw/ixvVrKFjQB56eXgbLKxQKKBQK/YMM8ERERGlKVJBftXIZrly+CIWjAmdOncDDhw9QooQf9uz+Dc+fP0OPXn3Sup1ERERpxlaH60UF+QvnzmLqjNlQeXigb69uGDthEkr4lsTjx48w9fvxDPJmdntNuVSfL9L7bDq1hIjITthokBe9411cXBxcXd2QK3cefJEjFwAgNiYGMhmH3YmIiKyRqCBfpVp1TJsyEQAw+4eF8PLywpXLlzBj6veo/iX3riciogxOMOPDiogaru/avRd8ChXWO+bh4YEevfuiarUaadIwIiKi9GKrY9KigryDg0OybHN58+VH3nz506JNREREZAZGJaghIiKySVY2zG4uDPJERGT37HoJXRJBEPRm08fHx+PE8WPJhvJJGi6RIyIicxA1u/7qlcsY0LcXunVqhxXLliAyMhIAEBcbixVBS9K0gURERGnORmfXiwrym9avQUDZchg6YhTevX2DCWO/xevXrz48a2XviIiIyFj2HORfvHiBlq3bIiCwHMaM+x5+fv6YNOE7PHv2FGIWHmg0GqjVar0H5Fb2SRARkd2SCeZ7WBNR9+Tz5s2HXb/uRNPmreDl5YVeffrBZasrZk2fLKoSppolIiJKf6KCfI+v+2LhD7OhVCrRvmMXAECHTl3g6uaKbVs3GyzfrEVrNGrSTP+YqqsJzSUiIkoDVtYDNxdRQT5f3nxo3LQZ5LLE0f2jRw7hxrWrKFDQB5t//NlgeaaaJSIia2Ztw+zmYnSq2XNnT+Phgwco4ctUs0RERFKcPnkCwVs3IjIiAgGB5dC7b384OTnpnr954zo2rFuNZ0+fIFu27OjcrQdKlwkUfX6rTTV7Z0X5VJ8v3O+M2eu0FnfnVUr1eZ8RJ9OpJUREdsICPfmIiHAsD1qErj16o3jxEpg1fQr27w1B0+Ytda9ZHrQI/qXKYMzYidi/7w8ELV6I1esN3yZPInozHKaaJSIiW2XO4XqNRgONRqN3LKXb1ndDQ6HValGzVh3IZDIEliuPG9ev6QX5RUtX6v7fzc0Njo6OyTamS42oIJ+Uanb1us2Y/cNCAMCVy5ew4IdZqF23vqiKiIiI7EFKK8patWmH1m076B0LDw+Dk1KpC9guLi6ICA9Pdr7jx/7C6pXLodHEYeyEyUZ1rplqloiIyIw9+ZRWlCWbfP45KcTvwLLlUdCnEEL27Maq5Usxb1EQHB3FDcSL2gznc6lmq1X/ksP1RESU8ZlxxzuFQgEXFxe9R0pB3t3dHdHqaGi1WgBAtDoaHh4euue1Wi1OHD+G6Jho5MiZCw0aNsGrVy/x5s2/ot+WqCBPRERE5uVTqAgcHOQ4eGAfnj9/hvPnzqC4rx+0CQkAALlcju0/bsFPP27F27dvcfL4Mbi7q+DtnUV0HQzyRERk9yyxra1KpUK/AYMRsnsXxo8ZiSJFi6FuvYaYN3cWQn7fBQAYPGwUHj96hGGD+uH8uTMYPmq06KH6xPclCCbdiThx/BgCy5bXW89njLryNiaVswehiyqm+nyhIafSqSVERNbhgHZHmp4/8OsFZjvX+dXDzHYuqURdDvz915Fkx9atXom27d/Bzd2d+eSJiChDk5nW37V6ooL8iqDFkMvlcHV1Q1LHPy4uDr/u3AG5XM4gT0REZIVEBflRY8Zh3ZqVKF7cF12794Kbuzt6d++EmXPmI0vWrAbLp7QxAOQC968nIiLrYJsdeXFBvkxAWcyd74cft27CqOGD0blrd4jJI5+EqWaJiMia2XWCGgBQKpXo0asPqlargdUrgqBWq0VXwlSzRERE6U/UErp4jQb794bg0IH9KFykKOo3bAwHBzn+97+/dOv5UpPSxgAcqiciIqthxs1wrIlRqWYdHR1x+tQJPHz4AGXLVcDB/fvw7u1bppolIqIMza6H6y2RataeuT7iHkVERCQdU80SERHZaE9eVJcxKdUsAMz+YSG8vLxw5fIlzJj6Pap/yTXyRESUsVliW9v0wFSzRERENkpUkP9cqtm8+fKnRZuIiIjSl5X1wM1FfCobIiIiG2Vtw+zmwiBPRERkzwlqPqWOisKLF8/xRY6ciRvbkFm5PdNauglERGQDRAX5sLD38PDIDAA4c/okli1ZhLi4WCiVzhg6YhT8S5VJyzYSERGlKVsdrhe1hG7IgH54/foVAOCnbcFo2KgJVqzegGYtWmHT+rVp2kAiIqI0Z6Pb2ooK8gUK+uCvI4cAAIJWi4qVq0Dl4YEqVavj3bu3BstrNBqo1Wq9B+RW9kkQERHZGFHD9W3bd8SMqd/j8aNHyJY9O375eTsqV62OQwf2o2Sp0gbLM9UsERFZM5mNToUSFeSLl/DFpKkz8evOHQgNvYOoyCjcvn0LAQFl0bFLN4PlmWqWiIismo0OLosK8vEaDULv3EbpgECMHD0WRw4fxI3r15Anbz44K50NllcoFFAoFPoHmWqWiIgoTRmValbhqMCZD6lmS5Tww57dv+H582fMQmdm71pFpfq8+4/p1BAiIjthq7PrmWqWiIjIRjfDEZ24nKlmiYiIMhammiUiIrvHVLNMNUtERLbKyoKzuTDVLBER2T1r64Gbi+h78kRERJSxMNUsERGRjc6uNznIv371Ep5e3nB05HWCubkccrd0E4iI7IqtDteLitBXr1zC8qDFcHRwRN/+g7BuzUo8e/oELi4uGDL8W5T0L5XW7SQiIiIjibonv3H9WlSoWBm16tTD9CkT4etbEnMXLEH9Bo2xaYPhVLPMQkdERFbNRlPNiurJv371Ek2btURmT0/s3LEddes3RK5cuVG7XgOE7NltsDyz0BERkTWz1HD96ZMnELx1IyIjIhAQWA69+/aHk5OT7vmXL55j1YpluHP7Fjw9PdGuY2dUrlJN9PlFBfn8+QtiedAiuLq6wdHREcFbNqJGzVo4feok8uXPb7A8s9ARERHpi4gIx/KgRejaozeKFy+BWdOnYP/eEDRt3lL3mmVLF0Gl8sCCJcvw99EjWL50EcoElIWzs+HkcIDI4fq+/QciUyYnJCQkYPa8hVAoHLF86WK8evECvft8Y7C8QqGAi4uL3oNZ6IiIyGpoBbM9UrpFrdFoklV5NzQUWq0WNWvVQY6cuRBYrjxuXL+m9xpfv5Jo064DvL2zILBsOcTHx0MdFSn6bYnqyWfNmg2+JUvC0VGBrFmzoXRAWTgpnVGwoA9y5cotujIiIiKrZMbh+pRuUbdq0w6t23bQOxYeHgYnpVKXA8bFxQUR4eF6r2nbvpPu//eG/I5ixX3hnSWr6LYw1awVcm/5LPUXLE+fdhARkfFSukWtUCjEFf7MIPfu337BuXNnMG3GHKPawlSzRERk98w58U6hUIgK6u7u7ohWR0Or1UIulyNaHQ0PD49krzt4YD9+++VnjJs4Gdm/yGFUW5hqloiISBDM9xDJp1ARODjIcfDAPjx//gznz51BcV8/aBMSdK85cfwYNq1fiwGDh+KLHDkQFRWJuLg40XUw1SwREdk9S6SaValU6DdgMEJ278L4MSNRpGgx1K3XEPPmzkLI77sAANu2boZGE4cfZs9A7+6d0bt7Z+z+bacR70swfNmRkJCA4//7Wy8T3aOHD/Dw4QNUrVbDpN58XXkbo8vYi9gD+VN93qnug3RpBxGRtTig3ZGm569Zf7bZznVk/2iznUsqppolIiKysp3qzIXZZYiIyO7JmIUuUVxcHGQymfjlAGQ0DscTEZE5iAryr16+xPq1q3DzxjXExibO6lMqlSjh64duPXoha7bsadpIIiKiNKW1dAPShqggvzxoMdzd3TFg8PDELWkBqNVqHPvrCJYHLcbEydPTtJFERERpya6H6x8+uIe5C5bA2zuL3vECBQti1LBBBstrNJrk+/bKBe5fT0RElIZEBflcufPg159/wpe16kCpTMx8o1ZH4fDBP5Ezp+G965lqloiIrJptduTFrZN//OghVi5fint3Qz8uioIFfdDnmwEGl9Kl1JNvpurKnjwREYmS1uvka385w2znOnR0rNnOJZWonnyevPkwbeZcaDQahIeHAYKAoYO+wdAR3yJLVsPZcFLcx5cBnoiIKE2JCvId27ZASqlxBg/oCwAI/ukXszaKiIgoPZkzQY01ERXky1eshHNnTqN+g8bwLekPQMCShfPQrefXUKmSZ8whaV4OrZzq89kXnkinlhAR2Ql7nl0/dPi3OHf2DDasXQW1Ogqdu/WAg4MD/Pz8RQ3XExERWTOZja6TF51qtmy58pi7YAkcFQqMHDbIqFR3RERElP6M2tbW2dkZvb7uhypVq+O3X36GIhO3tiUiIhtgz8P1nypWvATGjJto7rYQERFZhm3GePHD9URERJSxMNUsERHZPbveu/5ztAkJuHXrJoqX8DVXewiA8q1tftmIiKyWjQZ5UcP1Dx8+wKTx32HYoG+wc8d2xMfHAwBiYmIwddKENG0gERERmUZUkF+9IgjuKnc0aNQEp0+dwLRJExAVFfnhWdu8+iEiIjuiNePDiogK8o8fPUTPr/uhfsPGmDZzLlzdXDH1+/EIC3uPlLa7/ZRGo4FardZ7QM6LAyIisg4yQTDbw5qIuiefNVt2HPvrKBo0bIxMTk4YMeo7LAtajBnTJomqhKlmiYiI0p+oIN+5aw8smj8HanUU2nfsArmDAwYOHoZ1a1bi4J/7DJZv1qI1GjVppn9M1dW0FhMREZmblfXAzUVUkC9dJgBBK9YiJiZGd6x3986YNXcBmjVvabA8U80SEZFVs+cgn3KqWYGpZomIyDZY2YQ5c2GqWSt0ataKVJ+vv6lUOrWEiIgyMqaaJSIiu2dts+LNhalmiYiIBMF8DyvCVLNEREQ2iqlmiYiIrKwHbi7MQkdERGSjQZ755ImIiGyUyT3527duomBBHzh+uskNSeY//5tUn8+BE+nUEiIiO2GhdfKnT55A8NaNiIyIQEBgOfTu2x9OTk665wVBwI3rV/H30SMAgH4DBht1flFB/sb1a8mOzZ01DX2+GQgPj8zMJ09ERBmaJZbQRUSEY3nQInTt0RvFi5fArOlTsH9vCJp+tJPsj1s34fixv+Hg4IACBX2MrkNUkJ86aTz+2/Huvw9i8YIfAMi44x0REdEHGo0GGo1G71hK27vfDQ2FVqtFzVp1IJPJEFiuPG5cv6YX5Bs1booOnbpiRdBiva3lxRIV5Lv3+ho//RiMGl/WQovWbeHo4ICB3/TG5Gmz4J3F8GY4Kb1hyAXuX09ERNbBjD35lDKvtmrTDq3bdtA7Fh4eBielEjJZYix0cXFBRHi43msye3pKaouoIF+vfiOULVsB69asxKTxY/B1vwEAZHByUkKpVBosz1SzRERk1bTmC/IpZV5NlqTtc8zc9xU98c7L2xsjR4/FyeP/w8L5cxAdrRZdCVPNEhGRVTNjTz7FzKspcHd3R7Q6GlqtFnK5HNHqaHh4mDcfjNFL6CpVqYq585fAwcERanWUqDIKhQIuLi56Dw7VExGRPfMpVAQODnIcPLAPz58/w/lzZ1Dc1w/ahASz1SEh1SwwZtQwcOKd+eX4gUvkiIjSlQVm16tUKvQbMBjbtm7G9uAtCCxbHnXrNcS8ubNQwtcPjb9qZvgkBjDVLBERkYV2vKtUuSoqVa6qd2zUmHHJXvfNwCEmnZ+pZomIiGwUU80SERFpBfM9rAhTzRIREQkW2tc2jTHVLBERkY1iqlkiIiIbTTXLIE9ERGRl99LNxeQgHxERDnd3lTnbQh88H1E51edzzOM6eiIiMszoIH/zxnUsWTgP7969g3cWbwwbMRoFfQqlRduIiIjSh40O14taQte7e2e8ffsWALBp/RqULFUaU2fMRkBgOaxdvSJNG0hERJTmBMF8DysiKshny54d586cAgBEqaPQuElT+BQqjGbNW+H5s6cGy2s0GqjVar0H5Nb1QRARkR2z0SAvari+Rcs2WLJoHl69eom8efPjwJ/78GXN2ti3NwSFChcxWJ6pZomIiNKfqCBfrkJFDBoyAj/v2IbHjx4CAA4d2A9fv5Lo+81Ag+WZapaIiKya1s43wylXoSLKVaiImOhoREVFYtjg/ujTbyC8sxjeuz7F3LpMNUtERNbCyobZzUVSqtnBA/oCAFPNmlm8i6VbQEREtoCpZomIiOy5J89Us0REZNNsdMc7ppolIiKyUUw1S0REdk9gqtn/MNUsERHZFHsfriciIqKMxeQsdIIgQCbjWnciIrIB9jy7/uGD+9iwbjUcHBzQ6+t+2LBuDa5euYQcOXJiwOBhKFDQJ63baVfyTGUqWSKidGWjO96JGq5fvWIZPDJnRo6cufDdt8OhVDph1JjxKFykKLPQERFRxmfPCWqePHmEkaPHIrOnJ/46cght2nVC7jx5kC9/fgwb1N9geY1GA41Go39QLnBrWyIiojQkKsh/8UUObPtxC1QqFbRaLf4I2Y06devjxPFj+OKLLwyWZxY6IiKyZoKNDtfLBMHw2MLtWzexbvUKyOVy9OrzDdauWo4HDx5ApVJhyPBRKF7CN9XyKfXkm6m6sidPRESiHNDuSNPz13c1X2bU/VGbzHYuqUQF+ZR079wOc+cvRtZs2U2quK68jUnliIjI/jDIm0ZSFrohA78BwCx0RESUwdnoZjjMQkdERGTP29oyCx0REVHGI3rHu7LlysPXrySCt2xkFjoiIrIpgj0P1ydhFjoiIrJJ9jxc/ylmoSMiIpLu9MkTCN66EZEREQgILIfeffvDyclJ93xUVCRWLQ/ClcuXkDlzZnTt0RulywSIPj+z0BERkd0TtILZHmJFRIRjedAiNGvRGtNmzsXtWzexf2+I3mt2/boTr169xKy5C1C9Zi0ELV6A2NhY0XUwyBMREQlasz00Gg3UarXeI9nW7gDuhoZCq9WiZq06yJEzFwLLlceN69f0XnPj+jVUqFQZ2bJnR716DREZGYEnjx8Z8b6sQFxcnLBje7AQFxeX7uUtWTfL82fP8vzZs7zt2bE9WGjfupneY8f24GSv++voYaF3j8565caNHqn3msH9+wj7/tij+3f71s2EC+fPim6LVfTkNRoNdu7YnuKVTlqXt2TdLM+fPcvzZ8/ytqdZi9ZYuzFY79GsRWtxhUXs9i6Tid8S3qSJd0RERJQyhUIBhcLw6jN3d3dEq6Oh1Wohl8sRrY6Gh4fHJ69RIUodBQBQq9UAYNQmdFbRkyciIrI3PoWKwMFBjoMH9uH582c4f+4Mivv6QZuQoHtN8RK+OHXiOF6+eI6DB/ZBpfJA7jx5RdfBnjwREZEFqFQq9BswGNu2bsb24C0ILFsedes1xLy5s1DC1w+Nv2qGZi1b4+XLF/ju2+HInNkT/QcNRaZMmUTXYRVBXqFQoFWbdqKGN8xd3pJ1szx/9izPnz3L27dKlauiUuWqesdGjRmn+383NzcMHzXG5PObnGqWiIiIrBvvyRMREdkoBnkiIiIbxSBPRERkoxjkiYiIbBSDPBERkY1ikLeQN/++tnQTiMhI1vB7q01IwMuXL/Q2TCH6HIsuoXtw/x7ev3+HpCa8f/cONWvXFV3+6dMniAgPw8fvoHgJ33QpHx8fjzOnT6JylWq4fu0KQu/cQe269eDq6iaqfMe2LVG0WHFUrVYdFSpVgZubuHIfO3f2NO7fvYvGXzXDu/fv4JnZEy6urgbLaRMScPnypcT3/tHx6jVqpnndQGJ6xb+PHkFY2Ht8/PXr1KW76PovX7qIggV94OLqiov/nEdAYDnRZbt1aouVazZC6ewMAHj+/BkmfDcKazZsFVVe6s/+z/1/JDvm4OCI/AUKwsenkOj3YQn37oZi168/Y9jIMVi1Igi3bt5Atx694V+qdLrU/+rlS+wN+R3devbGb7/swM0bN9CuQycUKOgjqrylfm+3bt6Q6vNiv/uXL13E0kXzERUViUVLV2Lnjm0oUNAH9Ro0ElVeqls3b6BoseJ4/uwpHty/j3IVKsLRUdx2K7t3/YJGjZvqXh8dHY3DB/9E46+apWWT7Z7FNsP5cetm/L7rFyTuxp/4h97NzV10kF+5bAn+Onr4k6MyBP/0S7qVf/jgPooWLYa5s6ZD5eGB27duYuTosaLKj50wCf+cP4eQ33dh4/o1KFU6AFWqVUdAYDlRuxlt3rgOp04cR1hYGGrWrot9IXsQGRmBIcNHGSw7d/YMXLl8ES4u/wVlmUwmOshLqRsA5s6cjjdv/sUXOXJ8dFR8woVtwZux748QzJw7H0pnZwQtXoDGXzVDy9btUi33+65fsWf3b9BoNBg8oK8uyUNsbAy8s2QVXb/Un/3ePb/j3bt3UKlUAIDw8HAoFApER0ejc7fuaNCwSYrlBvfvk2piikVBKz/7XMe2LfC5z1gmA7ZuF/e9X7NyGQoWKoybN67h1s0bKFW6DDZtWIsfFiwRVb5Pz67J3oODgwPyFyiIHr37IGvWbKmWXx60GCqVO+7fu4sD+/ehcJGiWLNqOabP+kFU/Zb6vb13N1TU+Q3ZtH4N2nfqgi0b1wMAatSshSWL5qca5M31s9+8cR3Onj6FabN+wLgxIwHIcOniBfQbMDjVcnfvhuJu6G1s27oFDnIHKDIlboDz6uVLHDqwn0E+jVksyB8++CemTJ+NWdOnYOacebh16yZOnzwuuvypk8cxfNR38Cvpb1L9UstfOH8Wk6bOxPlzZ1GnbgPUb9gYo4YPEl3er6Q//Er6o3zFSvh91684f+4MLl28ACcnJXr16YeKlaqkWv5/f/+FSVNnYMLYbwEATZo1x5iRQ0XVffPGNUydMUd078ecdQPAkyePMWvuAmTLnt2k+g8fPIDx309Bjhw5AQDjJk7BjKmTDAZ5/1KloVKpsHL5UrRp1wGZnJwAJO6+5etXUnT9Un/2mT090bf/QBQrnjhqdP3aFfz80zY0bd4Ka1ct/2yQb9K0OQDg9KmTcHNzha9f4nf36pXLEARtqnWOHD0OgID9e0PwRY6cKFU6AICAfy6cR0R4uOi2P3v2FMNGjsbhQwdRt34DlCtfEQf/3C+6fLHiJaB0dtZ93lcvX8Lbt28gl8uxZuUyfDd+Uqrl79+7iznzFuH4//5G/YaNUbX6lxg2qJ/o+i31ezth0jTRdaTmzZt/USYgEMEfRgZc3dwRGxOTahlz/ez/PnoEo8aMw/mzp1G5anU0atwUE8aOMhjkb9+8gb0hvwMQsO+PPbqLPIVCgRat24qun0xjsSCvUCjg5OQEd5UKz58/R8GChbBu9QrR5fPmy48vvsgBpVJpUv1SyyuVzggNvYMTx4+hbfuOePTogS5oiLFqRRD+OX8OUVGRKFU6AENHfIuAgLI4fPgA1q1eaTDIy+VyREdHA5BBJkv8RXJzcxdVd9FiJSSleJRSNwCULVceV69eRtXM1fVuFziJ/Pw+HR5MSEjQ9Q5Sky9/AeTLXwCZMjmhQsVKkDs4iG7zx6T+7B8+eACl0ln3bxcXVzx8cB958+VHRMTn/+gm9dZ++fknTJs5F1myJo4+BASWw/jvUh9FCQgsCyCxJ9znm4Hw9s4CAMiXLz/GjBouuu158+bHhnWrce/eXUyeOgs7d2xHrty5RZe/dfMGZsz+QTdy4udXEmNHj8SMOfMwcuhAg+WzZc+O3b/txJXLlzBy9FgcOrAfXh/eixiW/r19/PgRfvpxC969e5c0gImwsPdYsny1qPr9S5XGhrWrkJCQgKNHD+Hk8f+hpH/pVMuY62cvk8kQExODM6dPoX7DRoiMjIBMZnhaV8PGX6Fh468wYuhATJ/1g8l/c8k0FgvylapURcjvu1C+fEUsnDcbTkolihYrLrq8o6Mj5s6ahgI++r3RocO/TZfyzVu2xuoVy1C8hC+KFfdF145t0bZ9R3GNB/D40UO0aNUGlapUhbu7Sne8WvWaiIlO/cocAL5q3gIzp01GTEwMZs+YiidPnqBLtx6i6n7/7i3mzpqO7Nm/0Ds+bdZcUeWT6o6NNb5uAMidJy/WrFyGNSuXfzgiwJhbJXXrN8SMqd+jaLESAIBbN6/jq2YtRdevVkehf99eCP+kFyO2fqk/+8Cy5TBz+mSULVseMrkc58+eQUBgOZw/e1rXO0+Nk5MTDvy5Dw0bNQFkMhw8sA9OSnGBKnNmT2wP3oK69RtCJpPhz/174enpKbrtffsPxI7tP6Jdh87Ilj077t0Nxdf9Bogu7+zsjD9CfkeTps0hgwz7/giBi4sL3r97p/d78Dk9e/fB5o3rUe3LmsiTNx+mTpqA/oOGiq7f0r+3K4IWI1u27Hj86CFq162P+/fuIW++/KLr/7rfQGxYtxpyuRz7Qn5HSf/S6Pl1X1Flpf7s69ZviFnTJyNX7jzw8/NH397dUKNmbYPlkuag1G/YCH//9ektUqBe/fSZT2CvLDbxLiEhAY8ePUTY+3eIjIxEZEQE5HK56AkkK4IWp3jc0NCRucoDiRNHnD9M3rp//x4KFCgouuzsGVMwbMRoXS8iLOw91qxchhHfirs3CABXLl/ChfNnIZPJ4F+qNEqXCRRV7ucd21I83rpN+zSvG0i8L9ugUWPdcHWSEr5+os/xy8/bcfbMacgAtG7XEWHvxU/a7N29M2rXqYeixUvoHU/q8Ygh5Wev0Wiwf18Ibt24AblchqLFS6BuvYaIioqCIGjh6emVavmL/5zH8qWLP/T6ZVCpVOg/aKioyW9374ZiRdBiPH3yGACQN28+9B0w2Oj2KxQKCIKAsLAwZM6cWXTZy5cuImjJAkSERwAQ4OGRGf0HDcX79++g0WhQy4iJtwB0ebiNYcnf2x5d2mP+4mUY++0ITJw8DTKZHFMnj0fQirWiyofeuY2CPoV071mj0eDhg/soVLiIwbLm+Nk/fvwI2bNlRyYnJ5w9fQply1dIdZ4IkDiX5HNkMlmqc0lIOosF+W3Bm7H7t+QT71at2yT6HNHR0Xj44B4AoKBPYaPS70kt37dXt8T7c/6l4O9fSvTErVMnj+PUyeM4c+oUAsuWg4Nj4pDx+3fv8PzZM6xcuzHV8k8eP071+dx58ohqx6uXL3Hr5nUAicHVmIlnmzesQ+Wq1eBTqLDoMh8bMWQAvhs/STfcbKzk3x0Z3NzcRH93hg7sh/HfTzW5fqmz8wEgNjYWkRHheis7jGlPXFwcHj96CEeFAjlz5jI6m5c6KgqQyeDi4mJUuWN/H8XPP/2IeQuWYvTIoXj+/Dk6delm1OQpjUaDZ0+fQCaTIYeRbb9w/ix+3bkD4eFh+Phej9hA8frVS2zasA4P7t/D5GmzcPx/f8OnUCGU8E19TobU39skE8Z+iyrVquPs6dPwzpIFWbNkxeFDB7B89fpUy4WHhyM8LAzfjhiCKdNn6W73PH36GMuXLsaGLSlfuH8qISEBDx/cxxc5chr9s4+MjMTRwwfRpGlzHPv7KG7fvImmzVsgazbT5tZQ+rDYcP2hA9Im3l2/dhUL5s1GVGQUAAFubu4YPmp0st5hWpXv3utr3L51Ewf/3Id1q1cgW7bs8PMvhR69Pn/VCiTeJlA6KQEIcHJy0t1fzp0nL9q0Mzxs+O2Iwfj4wijRf8FOzJDz6ZMnsHTxfDh9aEdcnAYDhwxD+QqVDJYFgDt3bmHf3j3IkiUrKlaqgkpVqiK/Eb2BLFmzIWjJQhQqrH+RIHYZkdTvTqHCRbB+7SqUKlNG77ihYUNzzc7fsS0Yu37bCa026Wdo3O2K+/fvYWXQYjx58hgLl6zATz9uhU/hwqneD54/dxaGjRyNaZMnIKWZ1hMmTRVV90/btuKrpi1w4cI5ZMmaFa3bdcDmDetEB/mXL1/g8IE/Ef7J8s1+/cVNflu1PAh+/qVQrfqXol7/qRXLliBbtuyIiIiAVquFysMDG9atwZx5i1ItJ/X3Nkm3Hr3xz/lz6NCpC5Yumo9L0RfQvdfXBsv9uf8P/LJjOwAZJo4brfdcYFlxy0c/XX63ecNao5bfLVuyENHR0QgILIeN69YgV+7cWB60GBMnTxdVfuqkCcmOyWTA+O/FfffINBl24t2m9WvwZc3aaNGyDbSCgN93/Yp1q1dizvyUh+HNXb5S5arwK+mPfy6cx4n/HcOVyxfh5m548lnZchVQtlwFKBSZ0LVHL6N7YOYY2tr+4xZ07NwNDRt/BQD4c98fCN68UXSQnzJ9NiIiwnHxwnmcP38W47/7FtmzZ8e8RUGiysfHayCXyz5ZViR+CZ3U787tWzcBJN5f1dUukxkM8uaanb/3jz3o2r0Xihtxe+Jjq1cEIbBcBbx69RIAUNzXF5vWr001yBctVhwymQwFCvpAZsRn/anIiAj4lyqDPb//hqrVv0T+/AUQFRUpuvy82TOQoNUiT568JtUvl8vRsVNXeHl7m1T+3t1QDBo6EmfPnAIA+PqWxPo1qwyWk/p7m6RQ4SK6ofWFS8V/Zxs1+go1atTEkIH9MGvuAjh/6IUrHBXILPK+uinL7z524/pVzJgzH+fPnkH9ho1Ru259DB/8jej3UPCT1Tw3b17X3TahtGOxIF+5arVkE++KFBU/8e7Fi+cY9d143QYs9Ro0xJ/7QtKt/Pfjx+BuaChKlS6NChUrod+AwaLuTW7esA5duveERhOHtSkEJkM9mqR1xHGxsdi3LwSht29DEAQUKVoM9UX+sr59+xblylfU/btMYFlsC94iqiyQOFR85/Yt3Lp5A7dv3oRS6YTCRYqKLl+ufEXUql3XqFnNH5P63Vm8LHF28r+vXyFL1mxwEDnL3lyz87NkzYpSZQKSTXwU69nTpxg9dgL2790DAMiVK3fi8HUqknranbv2kLSRkH+pMpg6aTzi4+PRvkNnzJo+xahlqG/fvsHsHxYaNfLxsdJlAvDrzh0IKKs/f6JMgLj5FDlz5cbfH/bHePr0CQ4f/BP58uc3WE7q722SFPc6kAGLlqZ+8e7i6goXV1cMGjICkZGRiIqK0j33/PkzUZt4mbL87mMeHplx4n/HcOb0SXzdtz/+OX/WqFU1nbp21/v306dPMHemeZYW0udZLMh36NQVjx89RL78BZA7b15ER6tRvbr4Hdd8ChXB5o3r0KhxU8hkMuz9Y4+oySf/lS8sqXzxEr6IiYnBvbt3oVJ5wF2lQkn/0gaXgWm1ieuZY4z45UpJ0JKFCL1zO/EPtAzYvzcEd0PvYOgIw6sDSvqXQtCSBahTrwFkMhkO/rkPJf3F/6H+ukdnODg4ICCwHHr16YdSpcrA0YiezZ7dv8G/VBnkzJVLdJmPSf3uXLl8CUsWzjN51zCps/OzZ8+OJQvmobiv/h9msbcrfAoVxi8//wStVsCVyxfx19HDKFykmKiypm4klOSbgUPw99HDKFK0GNzc3VG4aFG0aCV+rXOVajVw+fIlVKlSzaTlk0ePHAIAHDr48dp88bc6+vQbgHlzZkKtVmP2jCnw8vLGCBEb4Zjr9zZpr4Mkly9dNKr8kkXzkh2Ty+XYsm2nwbKmLL/7WMcu3bBm5XIEBJZFocJFMOX78ejVR/weBZ/OJ7p29TIiI8WPApFpLLqtrRSvX73EkoXzERp6GwBQuEhR9B80VHTvKKXyAwYNM3qDliePH+OnbVtx7uxpODoqsCn4J+PeiIl6du2IqTNmI1fuPLp2fD9+NNZuDDZYNiIiHOvXrsbFC+fh4OiAUqXKoGuP3rod2Aw5feoEygSUNXqiY5JvRwxBXGws8hfUv48vdvmiVCOHDkSjr5phy8b1mDNvEf799xWWLJoveoaz1Nn5UyeNT/G42A1T/n39GksXzcft24m3HQr6FMKQYSNFTYDq07MrRo0Zpxt5uXc3FDOmTsKaDeJHcqRM2uzUruWHrYyTerPGzUcwB61Wi0cPH0AmkyFXrtxGXaCeO3sGpcsEiN7K1ZCXL55jyvfjEbRS3HdP7yJDEHDixP9w/dpVDBw8zGDZyMhIbFi3Gv98WBVT0r80evTuK/r3PklCQgIcHBwQHhYGlYeH6HL/7byXGHLkcjnatu+Eps3FL38l41msJy9V1mzZMWXGbERGRsLRwUE301mssLAwTJqWeEXv6OAAB0dHPHxwX3SQX792FW7dvIEnjx/B09MLNb6sBT//UgbLpbSt58fEztItUrQYXr9+rQvyr169FD1k7e6uwuChI0S9NiW+fv7YsHYVrl27AgAoVToA7Tt2ET1b99N7c+lN6rClm5sb6tZvaPLsfKm7n2XJmhWTps1EVFQkZJCJzhkAJE4g+/j7J3YjoSRSJ22OmzhFdF0piYqKxNZNG0z+7iWtjEiaKPri+XOM/26k6JURixfMRaZMmVC2XAVUqlINJUv6G3Xb5p8L5/T+feP6NcTHx4su/+lGMr5+JXX32A1xc3MTdTHwOZ9O+Ny/N8TghM+PfTyfSPZh6aept+xIvAwX5BN7QZ8PkoZmCSctRZk4boykpSjv371F7Tr14OdfSre9qhidunRLnFJqoqSLBI0mDteuXtbtPx8VFQUvr9TXV48dPQLTZ/2AIR/NDP+Y2El9a1ctx5Mnj9GgYRMIgoC/jh7GmpXLMHjYSFHl+w0YLHn5oxRShy1NnZ2f6ucv4r5sko+TxKxeEYSbRiSJkbqRkKmTNs+eOYVy5SviX4lZ3FavXIanT54Y/d0z18qIVWs34fLli/jn/DmsWLYYCfEJKF+xEnr3ETcBbe4s/ZnomTN7ovMn96pTs3D+HL1/P3706JMcEMlJ/ZuZxJQJnwCwc8f2VJ9v1UbcrSIyTYYL8gULJmbpunXzBiADin7ovd66eUM34zQ15liKAgADh4zAgT/34tedO9ClWw88fvQI2bNnN/gHo2SpMvDy8sK/r037Y/fx5JWoyEg4Khx1q+kMzfht1rwVZDJZsvuCxrp08R/MmD1P98clILAcvvtWfA9B6vJFqVLaNaxHb3G7hgGmz85P+vwbf9XM4AYiqfk4ScxNI5PEtGjVBoKg1W0kNHDICIS9fye6blMnbe7csR1ly1VIsddpTHKkK5cuYvos47975loZkbTvviYuDjExMTh75hSuXL4ouvyyVev1JuhqExLwPiz1SZN69Tt91JOXyVC+fEXUqVc/1TJS/2YmMWXCJ5C4twEAhIeFISY2Btk+3FZ69fIlvLy9GeTTWIYL8klBbnD/PpgwaaruPuTLF88xbcpEg+XNsRQFSPxD+/DhAzx7+gRt23XEpX8u4MGDewYTbIwbMwLLVq7D4AF9oH91Le7eZI0vawFIKYtf4oYwqe36VqFSZQCJu1Z17f7fMqDIyEjs/EncCAYAuLsnZgFL+kP74ME9eHhkFl1e6vJFqaQOW5o6O9+nUGH8+/o1AsuWN7luQFqSmE83Evph9gyD35uPmTppc9bcBQCAOfMXJw9y79+LqhtI3DDLlO9eaisjjMnjMHniONy5fQuZM2dGhUqVMWnqTFETdhMSEqDRaNC/T08sW7lW93fn8aOHmDH1e6zb9KOo+vsNGJxsdYShjoXUv5lJTJ3wmZQhcMLYb9G959e6TbRC79zGhrXi9uwn02W4IJ9EE6/BhfPnUL9hYwDApUv/ICE+wWC5pKUoy1auw8uXL5A3X348f/YUobdvG5Ub+fy5s5g1dwHGjBoKIHEYdOQwwwk2ps2YA5lMhtkGNt8wxJQsflcuX8LlS//g0IE/4ejgmDgKAODNv//i0sUL6Nazt6i6W7frgKAlC/DT9mDIZTK8fPkS3wwQn8lL6vJFU5lr2NLU2fnJL+z0iZ18JiVJjNSNhPp8MwDr167G2lUr9CZtGmKuICf1u+eROTPGjh6Bd+//SxCjVkdh848/iyqfN18+tOvQCcU+mXRpyK+/7Pgwggj079vro2cEFCokflWPlNURpv7NTPLNgMFYung+YmKisXrlMhT0KYQBRmQAfP7sKRIS/qtPq9XixYvnosuTaTJskG/XoTPWrV6BrZs3Qi6XQRAE0ffFAOD33b+alBs5iYuLC168eIakTGzH/3cMXl6GN+hIuurOni27yevcAdM2hHn79s2HDWgE3L9/V9cDdXRUoKcRw9XVqn+JAgV8cPnSP3BwcIBfSX/dBEAxpC5fNJW5hi03rltt0qYis+ctAgQBP27djCLFiiX26AUB586ewZPHj0TX3+ebgfj5px/Rtn2n/5LE9O0vqqzUjYSOH/sb/b4ZaPSEKXMFOanfvXWrV6BUmQAcOrAfrdt1QOid2/qbR35G0pwCn0KF8erVS9196SSGbjfU+LIWSpTwxbTJEzFy9FjdBDqFQmHUbpGHDx7AuImTjU6zDEj/mxmljsLESdMQHRNt9IRPIHH5ZOJ8kOKQyeS4eeM6atUxLlcBGS/DBvkva9ZGqdJlcDf0DgAZChUuYlSiDFNzIydp17Ezfpg9AxqNBqNHDkNMTAz6Dxoiun4p69wB0zaEqfFlLdT4shZmTZ+C4SNHmzyzNS42FhcunNVdoMTFxSFr1myiz9ev/yAsWTgfkyZ8B+C/5YtpzVzDlqbOzk/a5e32rRvo2buvbna+s7MLRo8U/93JnSeP3vckaShcDKkbCZm6x4HUIJcUZP/+6wgA6HaXvHs3FHfvhoq+p//27Vs0/qo5Tp04jlKlA1C+fCVMGGv4d07qnIKsWbMha9ZsmDJ9NtRqNfLmzacbbjdm9zwpqyOk/s2cMnEs5s5fYvJug917fo0sH/bqd1Yq0bvvN9DExZl0LhIvwwb5T/fAPnf2NADxO0+Zmhs5SZWq1VGggA8uXjwPGWTwK+mPPHnziS5/5fIl/XXuDRLXuYslZUOYG9evQh0dbXKQl3qBInX5olRShy2lzs7PkTMXVixbjFp16kEGGY4cPmBUb/S/9cb/kcmArdsND/dL3UjIxdUVc2ZONXqPA6lBzlwT93wKFcLRIweRv0ABbNm4Hl5eXqLym5trTsG5s6clbUZkyuqIz81uf/jgPgDxs9vz5MmHDetWw++TORhiU8Vu/3GL3nyQZUsWGTUfhEyTYYO81D2wTc2NnESbkIBXr17C3c0dAhLXkN6/f0/0Hxsp69wBwMHBQdcDMjZZh0+hwvh1508oXSZA77jYrUFNvUAx1/JFqaQOW0qdnT9oyAhsWLf6wzC5DMVLlBA93A4AI0ePxcebyVw4d1b0zmFSvjeA9D0OTA1y5gqyPb/uh0sXL6Bzt55Yt3oFHj96hL79Dc+lMdecAinD7YBpqyPMNbv9zdt/8fbtGzy4f093TMyqkiRS54OQaTJskJe6B3abdh1QsXIVZM+WHY4KBfr1H4xyFSoaLvjB3NkzcOXyRd06dUBcj0LKOndzuXnjOm7euI4D+/d+dFT8rmOmXqCYa/miVFKHLaXOzr9w/iyGDh9l8kjKp3vN58mTF+O/S5/dAlOa3W3M3vemBjlzBdmnT56gTt0GcHR0NGpjHnPNKZC6GZEpqyPMNbt9yTJpM+Glzgch02TYIC91D+yoqEjcvHEdZ0+f1OX0fvz4oegr6ps3rmHqjDkoYGTPRso6d3MJ/ulXk8pJvUAx1/JFU+0N+R0NG3+VbPhS7LCluWbnS927/8/9f+j9+/bNm+n23ZG6972pQc5cQdbUHevMNXFO6mZEUnrDps5uT+17b0yqWKnzQcg0GTbIH/xzHwRBwOoVyz4cMW4P7NkzpuL582e6oSsgcatFsX+sihYrYdT62iRS1rmbi6lbg0q9QDHX8kVTXbt6BQ0aNdENX35MBpnBIG+u2fmm3tdOsmfXb/+1WyZDZk9P9PnG8JCzOUgdbjY1yJkryK5atxmXL/1j9I515po4J3UzIim9YVNnt5vrey91PgiZJsMGeal7YD95/Fhv1zZjvX/3FnNnTU+WEGfarLmiypuyzt1cTN0a1FwXKFKXL5pq5IdsY9Nn/YCY6Gg4ODpCoVAgMiJCN1s7NeaanS/1vvbiZatMar85SB1uNjXImSvIKpVKSTvWSZ04J3UzIim9YVNnt5vrey91PgiZJsMG+eIlfHHu7Gm8f/cOwofu5Pt371DC109U+YDAsnj27KnJQb6sEffvU2LJ+1Ombg2aROoFitTli1KdOnkcy5cuwpQZc5AzZy7079sTQ0eMFp1FTursfKl790ttvxRSh5ulBjmpQdbUHeuSSB3JkDr5TEpvWOrsdqnfe7KMDBvkVy5firOnTyImJgaZPT0RFRkJLy9vtG3fSVT569eu4vSpE3oT5wDxWeBatGyDo0cOITCwHFQqFQ78uQ916zUQ3X5L3p8ydWvQJFIvUKQuX5Tqxy2b0LlrD+TNmw8ymQy9vu6H9WtWig6SUmfnS927X2r7pZA63Cw1yEkNsqbuWJdE6kiG1N8dKb1hqZ+91O89WUaGDfJnT5/EtJlzMXHcGEyaMgNPnz7F7t92ii7frmNnSfWvWbkMly9dhH+p0hAAhPy+C8+ePUWPXn1Elbfk/SmpW4NKvUCRunxRqqioKJQuE6D7Y128hB+io9Wiy0udnS91736p7ZdCak9capAzNchK3bEuidSRDEte3Ev97KV+78kyMmyQd3F1RXh4ODwyZ8a9u3eR/Ysv9NZvfs7du6Hw8SmkN+HOFGfPnMLkabOQNWs2AMCYcd9j3JgRooO8Je9PSd0aVOoFim75YvYvdMsXy5avYMpbMUmZgEAs+GE2KlWpBgA4efyYqD0CpM7OTyJ1735T228OUnuD5rhANCXImmszHakjGZa8uDf1szfXZjpkGRk2yNep2wCHDuzHl7VqY9GCH+Do6IAKFSsbLLdg7iwsWb76w7KQT4mfne/i4orXr1/pguPLl8/h7q4y5i1YjNRtaaVeoMTFxuKfC+d09RcuWhSauDiT140bq9fX/bBzx3acOH4MAODrVxKt2rQ3WE7q7PwkPoWKSNq739T2m4PU3qDUIGdqkDXXZjpSRzIseXFv6mfPVLEZm0wQBMHwy6zT2zdv4OXtjVs3b0CtjkKp0gGQy1O/t6vRaKBQKBATHZ24yPMTYra4BIAjhw9i7arl+OLDvcEXz5+jV59+qFmrjvFvJJ0t+GG23ra0/5w/h0KFi4jeljaj1w8Aly9dRIGCBeHq6mb0hi4AJM1uf/3qJZYsnI/Q0NsAEvfu7z9oaLKVGmnZflNt2bQekRER8PDIjAN/7oWTUol8+QpgzDjxs6yl+DTIJq3sWLVuU6rlkjbT6dm1o6TNdL7u0QWjx05INpIx4tux0t5YBvC5zXTErigiy8iwPfm42Fj8739/6WVx8/UtabA3mLTcZsjAfvAr6Q8//1Lw9y9l9M55NWvVgY9PIVy/dhUAUNzXD/ny5TfpvaQ3qfvmZ/T6P97QxdnZxegZ2lJnt2fNlh1jJ0xCdEw0nJXOiI+PN+oiQWr7pbD0WmdTbxeYazMde961jaliM6YMG+SlJknp3utr3L51Ewf/3Id1q1cgW7bs8PMvJfqeelxsLC5evKC7yNBoNMjxRY50G3KWQuq++Rm9fqkztKXObv/4IsHNzR19enU16iJBavulsPRaZ1ODrLk207HnXduYKjZjyrBBXmpvsFLlqvAr6Y9/LpzHif8dw5XLF43qTUm9yLAES++bb+n6k0hdBiV1drvUiwSp7c/ITA2y5tpMx9IjGZbEVLEZU4YN8lJ7g9+PH4O7oaEoVbo0KlSshH4DBhu1HMTSQ86msPS++ZauP4nUZVBSZ7dLvUiQ2v6MTGqQlbqZjqVHMiyJqWIzpgwX5M3VGyxewhcxMTG4d/cuVCoPuKtUKOlfWnSCG0sPOZvC0vvmW7r+JFKXQUmd3S71IkFq+zMyqUHWkrc6Mjqmis2YMlyQN1dvsH3HLmjfsQuePH6Mn7Ztxfy5s+DoqMCm4J9SLWctQ85SWHLffGuoX+oyKKWzM0qWKo2mLVrqZrc7OzuLrl/qRYLU9tsze77VIZU9TzrMyDJckDdXb3D92lW4dfMGnjx+BE9PL9T4shb8/EsZLGctQ85SWPqX1dL1S+2RSJ3dLvUigT0q09nzrQ6p7HnSYUaW4YJ8Eqm9wffv3qJ2nXrw8y+lG7oTw1qGnKWw9C+rpeuXepEhdchX6kWCpS+SMjJ7vtUhlT1POszIMmyQl/qHbtCQEThz5hRy5MiJ69euIPTOHdSuWw+urm6iylt6yFkKS/+yWrp+qRcZUod8pV4kWPoiKSPjrQ7T2fOkw4wswwZ5qX/oVq0IwoP791C0aDHMnTUdKg8P3L51U5dz3JCM3Juy9C+rpeuXepEhdchX6kWCpS+SMjLe6iB7k2GDvNQ/dOfPncGkqTNx/txZ1KnbAPUbNsao4emXiY0sR+pFhtQhX6kXCZa+SMrIMvLFOZEpMmyQl/qHTql0RmjoHZw4fgxt23fEo0cPjNqtjr0p+yV1yJf3hS2HF+dkbzJskJeqecvWWL1iGYqX8EWx4r7o2rEt2rbvKLo8e1P2yxyz83lf2DJ4cU72xm6DfN36DVG1+pe6pUtTZ85BASP2sCb7JXXIl/eFLYcX52Rv7DbIh4eFYcdPPyL0zn9Z7LzbtIfKw8PSTSMrJ3XIl/eFiSi9ZOh88lJMnzIREeHhqFy1OiADTh7/H9zc3DBu4hRLN42sXEJCgm7I93/H/tIN+SpFbmhj6ZzsRGQ/7DbI9+zaEbPmLkC27NkBAC9fvsB3o4Zj3aZgC7eMbJ3UiwQiIrHsbrg+NjYWAOBX0h83rl+Fx4fMc9evXkFg2XIWbBnZC94XJqL0Ync9+Y5tW+C/rWjx4f8BQECmTJmwYct2yzSMiIjIzOwuyF+/djXV50v4+qVTS4iIiNKW3QX5JHGxsdi3LwSht/+bXV+/QSOjNsQhIiKyZnJLN8BSli1dhP1/hMDDIzMye3pi/94QLFu6yNLNIiIiMhu7m3iX5PKli5g6YzZy5c4DAHjS4DG+Hz/awq0iIiIyH7vtyRcpWgyvX7/W/fvVq5fcw5qIiGyK3fXk+/TsCplMBo0mDteuXoaLiysAICoqCl5eXhZuHRERkfnYXZDv1LW77v+jIiPhqHDUraZTKMTn9CYiIrJ2dju7/setm/H7rv8ygQEyuLm5YdW6TRZuGRERkXnY7T35wwcTM4G5uLhg0dIV6D9oCIoWK2bpZhEREZmN3Qb5lDKBXbt6xdLNIiIiMhu7uyefRGq6UCIiImtnt/fkmQmMiIhsnd0GeSIiIltnt/fkiYiIbB2DPBERkY1ikCciIrJRDPJEREQ2ikGeiIjIRjHIExER2SgGeSIiIhv1fyNtrO2ir1w6AAAAAElFTkSuQmCC\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.decomposition import PCA\n", + "\n", + "# Assuming 'tfidf_df' is your TF-IDF DataFrame\n", + "# Create PCA object specifying the number of components\n", + "n_components = 100 # Example number of components (adjust as needed)\n", + "pca = PCA(n_components=n_components)\n", + "\n", + "# Fit PCA to your TF-IDF data\n", + "pca.fit(tfidf_df)\n", + "\n", + "# Transform your TF-IDF data into the reduced feature space\n", + "tfidf_reduced = pca.transform(tfidf_df)\n" + ], + "metadata": { + "id": "gxYI6pkD_q9P", + "executionInfo": { + "status": "ok", + "timestamp": 1702760744883, + "user_tz": 360, + "elapsed": 10099, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + } + }, + "execution_count": 43, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Assuming 'tfidf_reduced' is your transformed dataset after PCA\n", + "import pandas as pd\n", + "\n", + "# Convert the transformed array into a DataFrame for better inspection (if not already in DataFrame format)\n", + "df_reduced = pd.DataFrame(tfidf_reduced)\n", + "\n", + "# Display the first few rows to examine the reduced dimensions\n", + "print(df_reduced.head())\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3qw6t7B_DTC3", + "executionInfo": { + "status": "ok", + "timestamp": 1702760750127, + "user_tz": 360, + "elapsed": 141, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "3d3a7a1a-1473-46a4-df66-d623739b750a" + }, + "execution_count": 44, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " 0 1 2 3 4 5 6 \\\n", + "0 0.090500 -0.040606 0.028588 0.001397 -0.022889 -0.022007 0.005762 \n", + "1 -0.081842 -0.035420 -0.008939 0.031627 -0.031679 -0.022951 0.007635 \n", + "2 -0.028373 0.004141 0.056549 -0.100895 0.071917 0.037702 -0.005294 \n", + "3 -0.071760 -0.066717 0.056913 -0.059761 0.051206 -0.024110 0.008698 \n", + "4 -0.062248 -0.008604 -0.045037 0.028408 -0.066850 0.091550 0.143935 \n", + "\n", + " 7 8 9 ... 90 91 92 93 \\\n", + "0 -0.001022 -0.019084 0.084638 ... 0.033719 -0.036980 0.010754 0.009529 \n", + "1 -0.043015 -0.040318 -0.001499 ... -0.021709 -0.030041 -0.011191 -0.002487 \n", + "2 0.009985 -0.020544 -0.005841 ... 0.043701 0.016814 0.011782 -0.076484 \n", + "3 0.013605 -0.003424 -0.089122 ... 0.030630 -0.001283 -0.031379 0.011318 \n", + "4 0.046578 0.002926 0.040478 ... 0.043946 0.076858 -0.004490 0.052821 \n", + "\n", + " 94 95 96 97 98 99 \n", + "0 -0.030139 0.055519 0.007553 0.062215 0.082322 -0.054760 \n", + "1 -0.004505 0.003536 -0.011148 0.025443 -0.013441 -0.005027 \n", + "2 0.041769 0.054022 -0.031860 -0.047841 0.023010 -0.010721 \n", + "3 0.003456 0.013922 0.020616 -0.047895 0.026548 0.017618 \n", + "4 0.058650 0.082879 -0.035490 0.021270 0.078490 0.014967 \n", + "\n", + "[5 rows x 100 columns]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "\n", + "\n", + "\n", + "# Extracting features (all columns except the last one assumed as target)\n", + "X_features_df = df_reduced.iloc[:, :-1] # Exclude the last column\n", + "\n", + "# Extracting the target variable (last column)\n", + "y_target_df = df_reduced.iloc[:, -1] # Select the last column\n", + "\n", + "# Optionally, convert DataFrames to arrays if needed\n", + "X_features = X_features_df.values\n", + "y_target = y_target_df.values\n" + ], + "metadata": { + "id": "4GFW2IjPE-Cd", + "executionInfo": { + "status": "ok", + "timestamp": 1702760767399, + "user_tz": 360, + "elapsed": 130, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + } + }, + "execution_count": 45, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n", + "\n", + "# Splitting data into train and test sets\n", + "X_train, X_test, y_train, y_test = train_test_split(X_features, y_target, test_size=0.2, random_state=42)\n", + "\n", + "# Initialize regression models\n", + "linear_reg = LinearRegression()\n", + "rf_regressor = RandomForestRegressor()\n", + "\n", + "# Train regression models on the training data\n", + "linear_reg.fit(X_train, y_train)\n", + "rf_regressor.fit(X_train, y_train)\n", + "\n", + "# Predict using the trained regression models\n", + "linear_reg_preds = linear_reg.predict(X_test)\n", + "rf_preds = rf_regressor.predict(X_test)\n", + "\n", + "# Evaluation metrics for regression\n", + "def evaluate_regression_model(y_true, y_pred):\n", + " mse = mean_squared_error(y_true, y_pred)\n", + " mae = mean_absolute_error(y_true, y_pred)\n", + " r2 = r2_score(y_true, y_pred)\n", + " return mse, mae, r2\n", + "\n", + "# Evaluate Linear Regression\n", + "mse_lr, mae_lr, r2_lr = evaluate_regression_model(y_test, linear_reg_preds)\n", + "\n", + "# Evaluate Random Forest Regressor\n", + "mse_rf, mae_rf, r2_rf = evaluate_regression_model(y_test, rf_preds)\n", + "\n", + "# Display evaluation metrics\n", + "print(\"Linear Regression Metrics:\")\n", + "print(f\"Mean Squared Error: {mse_lr:.4f}, Mean Absolute Error: {mae_lr:.4f}, R^2 Score: {r2_lr:.4f}\\n\")\n", + "\n", + "print(\"Random Forest Regressor Metrics:\")\n", + "print(f\"Mean Squared Error: {mse_rf:.4f}, Mean Absolute Error: {mae_rf:.4f}, R^2 Score: {r2_rf:.4f}\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "S2d_CGwMH0tX", + "executionInfo": { + "status": "ok", + "timestamp": 1702755394613, + "user_tz": 360, + "elapsed": 132832, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "74e12447-c500-4f4d-c04b-9dd00fe24fb1" + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Linear Regression Metrics:\n", + "Mean Squared Error: 0.0012, Mean Absolute Error: 0.0255, R^2 Score: -0.0405\n", + "\n", + "Random Forest Regressor Metrics:\n", + "Mean Squared Error: 0.0005, Mean Absolute Error: 0.0161, R^2 Score: 0.5482\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "from sklearn.decomposition import PCA\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.ensemble import RandomForestRegressor\n", + "from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score\n", + "import nltk\n", + "from nltk.corpus import stopwords\n", + "from nltk.tokenize import word_tokenize\n", + "from nltk.stem import WordNetLemmatizer\n", + "from sklearn.decomposition import PCA\n", + "\n", + "# Download NLTK resources (if not downloaded)\n", + "nltk.download('punkt')\n", + "nltk.download('wordnet')\n", + "nltk.download('stopwords')\n", + "\n", + "\n", + "# Assuming 'tfidf_df' is your TF-IDF DataFrame\n", + "# Create PCA object specifying the number of components\n", + "n_components = 100 # Example number of components (adjust as needed)\n", + "pca = PCA(n_components=n_components)\n", + "\n", + "# Fit PCA to your TF-IDF data\n", + "pca.fit(tfidf_df)\n", + "\n", + "# Transform your TF-IDF data into the reduced feature space\n", + "tfidf_reduced = pca.transform(tfidf_df)\n", + "\n", + "# Convert the transformed array into a DataFrame for better inspection (if not already in DataFrame format)\n", + "df_reduced = pd.DataFrame(tfidf_reduced)\n", + "\n", + "# Assuming 'pca_df' is your DataFrame after PCA transformation\n", + "# 'pca_df' contains both features and target variable\n", + "\n", + "# Extracting features (all columns except the last one assumed as target)\n", + "X_features_df = df_reduced.iloc[:, :-1] # Exclude the last column\n", + "\n", + "# Extracting the target variable (last column)\n", + "y_target_df = df_reduced.iloc[:, -1] # Select the last column\n", + "\n", + "# Optionally, convert DataFrames to arrays if needed\n", + "X_features = X_features_df.values\n", + "y_target = y_target_df.values\n", + "\n", + "# Splitting data into train and test sets\n", + "X_train, X_test, y_train, y_test = train_test_split(X_features, y_target, test_size=0.2, random_state=42)\n", + "\n", + "# Initialize regression models\n", + "linear_reg = LinearRegression()\n", + "rf_regressor = RandomForestRegressor()\n", + "\n", + "# Train regression models on the training data\n", + "linear_reg.fit(X_train, y_train)\n", + "rf_regressor.fit(X_train, y_train)\n", + "\n", + "# Placeholder function for preprocessing a single tweet\n", + "def preprocess(tweet):\n", + "\n", + " tokens = word_tokenize(tweet)\n", + "\n", + " # Remove punctuation and convert to lowercase\n", + " tokens = [word.lower() for word in tokens if word.isalpha()]\n", + "\n", + " # Remove stopwords\n", + " stop_words = set(stopwords.words('english'))\n", + " tokens = [word for word in tokens if word not in stop_words]\n", + "\n", + " # Lemmatization\n", + " lemmatizer = WordNetLemmatizer()\n", + " tokens = [lemmatizer.lemmatize(word) for word in tokens]\n", + "\n", + " preprocessed_tweet = ' '.join(tokens) #\n", + " # Your preprocessing steps here\n", + " # Tokenization, cleaning, removing stop words, etc.\n", + " return preprocessed_tweet\n", + "\n", + "\n", + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "from sklearn.decomposition import PCA\n", + "import pandas as pd\n", + "\n", + "# Example preprocessed tweets (replace this with your preprocessed tweets)\n", + "preprocessed_tweets = [\n", + " \"this is an example tweet\",\n", + " \"another example of preprocessed tweet\"\n", + "]\n", + "\n", + "# Initialize a TF-IDF Vectorizer\n", + "vectorizer = TfidfVectorizer()\n", + "\n", + "# Fit and transform the preprocessed tweets to TF-IDF features\n", + "tfidf_features = vectorizer.fit_transform(preprocessed_tweets)\n", + "\n", + "# Convert TF-IDF features to a DataFrame (optional for visualization or inspection)\n", + "tfidf_df = pd.DataFrame(tfidf_features.toarray(), columns=vectorizer.get_feature_names_out())\n", + "\n", + "# Apply PCA transformation\n", + "n_components = 100 # Example number of components\n", + "pca = PCA(n_components=n_components)\n", + "\n", + "# Fit PCA to TF-IDF features\n", + "pca.fit(tfidf_features.toarray())\n", + "\n", + "# Transform TF-IDF features into the reduced feature space using PCA\n", + "tfidf_reduced = pca.transform(tfidf_features.toarray())\n", + "\n", + "# Now, 'tfidf_reduced' contains the TF-IDF features in a reduced dimensionality using PCA\n", + "# You can use 'tfidf_reduced' for further analysis or modeling\n", + "\n", + "\n", + "# Placeholder function for PCA transformation of a preprocessed tweet\n", + "def pca_transform(preprocessed_tweet):\n", + "\n", + " transformed_tweet = pca.transform(preprocessed_tweet)\n", + " # Your PCA transformation steps here\n", + " # Transform the preprocessed tweet into the reduced feature space\n", + " return transformed_tweet\n", + "\n", + "# Function to predict category for a given tweet\n", + "def predict_category_for_tweet(tweet):\n", + " # Preprocess the tweet\n", + " preprocessed_tweet = preprocess(tweet)\n", + "\n", + " # Transform the preprocessed tweet into the reduced feature space\n", + " transformed_tweet = pca_transform(preprocessed_tweet)\n", + "\n", + " # Predict category using the trained regression models\n", + " linear_reg_category = linear_reg.predict(transformed_tweet)\n", + " rf_category = rf_regressor.predict(transformed_tweet)\n", + "\n", + " return linear_reg_category, rf_category\n", + "\n", + "# Input a tweet from the user\n", + "user_tweet = input(\"Enter a tweet: \")\n", + "\n", + "# Get predictions for the entered tweet\n", + "linear_reg_pred, rf_pred = predict_category_for_tweet(user_tweet)\n", + "\n", + "# Display the predicted categories\n", + "print(\"Linear Regression Predicted Category:\", linear_reg_pred)\n", + "print(\"Random Forest Predicted Category:\", rf_pred)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 584 + }, + "id": "ERfAn6RMZu4G", + "executionInfo": { + "status": "error", + "timestamp": 1702761096910, + "user_tz": 360, + "elapsed": 208402, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "010ae0e9-d9e1-4749-be97-4af8064392e6" + }, + "execution_count": 46, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[nltk_data] Downloading package punkt to /root/nltk_data...\n", + "[nltk_data] Package punkt is already up-to-date!\n", + "[nltk_data] Downloading package wordnet to /root/nltk_data...\n", + "[nltk_data] Package wordnet is already up-to-date!\n", + "[nltk_data] Downloading package stopwords to /root/nltk_data...\n", + "[nltk_data] Package stopwords is already up-to-date!\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter a tweet: able\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:439: UserWarning: X does not have valid feature names, but PCA was fitted with feature names\n", + " warnings.warn(\n" + ] + }, + { + "output_type": "error", + "ename": "ValueError", + "evalue": "ignored", + "traceback": [ + "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[0;31mValueError\u001B[0m Traceback (most recent call last)", + "\u001B[0;32m\u001B[0m in \u001B[0;36m\u001B[0;34m()\u001B[0m\n\u001B[1;32m 102\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 103\u001B[0m \u001B[0;31m# Get predictions for the entered tweet\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 104\u001B[0;31m \u001B[0mlinear_reg_pred\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mrf_pred\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mpredict_category_for_tweet\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0muser_tweet\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 105\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 106\u001B[0m \u001B[0;31m# Display the predicted categories\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m\u001B[0m in \u001B[0;36mpredict_category_for_tweet\u001B[0;34m(tweet)\u001B[0m\n\u001B[1;32m 90\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 91\u001B[0m \u001B[0;31m# Transform the preprocessed tweet into the reduced feature space\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 92\u001B[0;31m \u001B[0mtransformed_tweet\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mpca_transform\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mpreprocessed_tweet\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 93\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 94\u001B[0m \u001B[0;31m# Predict category using the trained regression models\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m\u001B[0m in \u001B[0;36mpca_transform\u001B[0;34m(preprocessed_tweet)\u001B[0m\n\u001B[1;32m 79\u001B[0m \u001B[0;32mdef\u001B[0m \u001B[0mpca_transform\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mpreprocessed_tweet\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 80\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m---> 81\u001B[0;31m \u001B[0mtransformed_tweet\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mpca\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mtransform\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mpreprocessed_tweet\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 82\u001B[0m \u001B[0;31m# Your PCA transformation steps here\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 83\u001B[0m \u001B[0;31m# Transform the preprocessed tweet into the reduced feature space\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/sklearn/utils/_set_output.py\u001B[0m in \u001B[0;36mwrapped\u001B[0;34m(self, X, *args, **kwargs)\u001B[0m\n\u001B[1;32m 138\u001B[0m \u001B[0;34m@\u001B[0m\u001B[0mwraps\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mf\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 139\u001B[0m \u001B[0;32mdef\u001B[0m \u001B[0mwrapped\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mX\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m*\u001B[0m\u001B[0margs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 140\u001B[0;31m \u001B[0mdata_to_wrap\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mf\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mX\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m*\u001B[0m\u001B[0margs\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 141\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0misinstance\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mdata_to_wrap\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mtuple\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 142\u001B[0m \u001B[0;31m# only wrap the first output for cross decomposition\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/sklearn/decomposition/_base.py\u001B[0m in \u001B[0;36mtransform\u001B[0;34m(self, X)\u001B[0m\n\u001B[1;32m 118\u001B[0m \u001B[0mcheck_is_fitted\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mself\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 119\u001B[0m \u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 120\u001B[0;31m \u001B[0mX\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m_validate_data\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mX\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mdtype\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;34m[\u001B[0m\u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mfloat64\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mnp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mfloat32\u001B[0m\u001B[0;34m]\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mreset\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;32mFalse\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 121\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmean_\u001B[0m \u001B[0;32mis\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0;32mNone\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 122\u001B[0m \u001B[0mX\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mX\u001B[0m \u001B[0;34m-\u001B[0m \u001B[0mself\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mmean_\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/sklearn/base.py\u001B[0m in \u001B[0;36m_validate_data\u001B[0;34m(self, X, y, reset, validate_separately, **check_params)\u001B[0m\n\u001B[1;32m 563\u001B[0m \u001B[0;32mraise\u001B[0m \u001B[0mValueError\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0;34m\"Validation should be done on X, y or both.\"\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 564\u001B[0m \u001B[0;32melif\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0mno_val_X\u001B[0m \u001B[0;32mand\u001B[0m \u001B[0mno_val_y\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 565\u001B[0;31m \u001B[0mX\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mcheck_array\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0mX\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0minput_name\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;34m\"X\"\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m**\u001B[0m\u001B[0mcheck_params\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 566\u001B[0m \u001B[0mout\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mX\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 567\u001B[0m \u001B[0;32melif\u001B[0m \u001B[0mno_val_X\u001B[0m \u001B[0;32mand\u001B[0m \u001B[0;32mnot\u001B[0m \u001B[0mno_val_y\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py\u001B[0m in \u001B[0;36mcheck_array\u001B[0;34m(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name)\u001B[0m\n\u001B[1;32m 877\u001B[0m \u001B[0marray\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mxp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0mastype\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0marray\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mdtype\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mcopy\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0;32mFalse\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 878\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 879\u001B[0;31m \u001B[0marray\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0m_asarray_with_order\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0marray\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0morder\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0morder\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mdtype\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mdtype\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mxp\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mxp\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 880\u001B[0m \u001B[0;32mexcept\u001B[0m \u001B[0mComplexWarning\u001B[0m \u001B[0;32mas\u001B[0m \u001B[0mcomplex_warning\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 881\u001B[0m raise ValueError(\n", + "\u001B[0;32m/usr/local/lib/python3.10/dist-packages/sklearn/utils/_array_api.py\u001B[0m in \u001B[0;36m_asarray_with_order\u001B[0;34m(array, dtype, order, copy, xp)\u001B[0m\n\u001B[1;32m 183\u001B[0m \u001B[0;32mif\u001B[0m \u001B[0mxp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0m__name__\u001B[0m \u001B[0;32min\u001B[0m \u001B[0;34m{\u001B[0m\u001B[0;34m\"numpy\"\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0;34m\"numpy.array_api\"\u001B[0m\u001B[0;34m}\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 184\u001B[0m \u001B[0;31m# Use NumPy API to support order\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0;32m--> 185\u001B[0;31m \u001B[0marray\u001B[0m \u001B[0;34m=\u001B[0m \u001B[0mnumpy\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0masarray\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0marray\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0morder\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0morder\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mdtype\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mdtype\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[0m\u001B[1;32m 186\u001B[0m \u001B[0;32mreturn\u001B[0m \u001B[0mxp\u001B[0m\u001B[0;34m.\u001B[0m\u001B[0masarray\u001B[0m\u001B[0;34m(\u001B[0m\u001B[0marray\u001B[0m\u001B[0;34m,\u001B[0m \u001B[0mcopy\u001B[0m\u001B[0;34m=\u001B[0m\u001B[0mcopy\u001B[0m\u001B[0;34m)\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n\u001B[1;32m 187\u001B[0m \u001B[0;32melse\u001B[0m\u001B[0;34m:\u001B[0m\u001B[0;34m\u001B[0m\u001B[0;34m\u001B[0m\u001B[0m\n", + "\u001B[0;31mValueError\u001B[0m: could not convert string to float: 'able'" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "# Load your dataset (replace 'dataset.csv' with your actual file)\n", + "data = pd.read_csv('/content/train.csv')\n", + "\n", + "# Assuming 'text' column contains tweet text and 'target' contains categories\n", + "\n", + "# Split data into features (text) and target (categories)\n", + "X = data['text']\n", + "y = data['target']\n", + "\n", + "# Vectorize the text using TF-IDF\n", + "vectorizer = TfidfVectorizer()\n", + "X_vectorized = vectorizer.fit_transform(X)\n", + "\n", + "# Split data into train and test sets\n", + "X_train, X_test, y_train, y_test = train_test_split(X_vectorized, y, test_size=0.2, random_state=42)\n", + "\n", + "# Initialize and train a Logistic Regression model\n", + "model = LogisticRegression(max_iter=1000)\n", + "model.fit(X_train, y_train)\n", + "\n", + "# Predict on the test set\n", + "y_pred = model.predict(X_test)\n", + "\n", + "# Evaluate model performance\n", + "accuracy = accuracy_score(y_test, y_pred)\n", + "print(f\"Accuracy: {accuracy:.2f}\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "rIgb0bxbghy8", + "executionInfo": { + "status": "ok", + "timestamp": 1702761747743, + "user_tz": 360, + "elapsed": 919, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "b2450659-d4b7-4af0-9af1-8618bd6da65b" + }, + "execution_count": 47, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Accuracy: 0.80\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Assuming 'new_tweet' is the new tweet entered by the user\n", + "new_tweet = \"disaster\"\n", + "\n", + "# Preprocess the new tweet and vectorize it using the same vectorizer used during training\n", + "new_tweet_vectorized = vectorizer.transform([new_tweet])\n", + "\n", + "# Predict category of the new tweet\n", + "predicted_category = model.predict(new_tweet_vectorized)\n", + "print(f\"Predicted Category: {predicted_category[0]}\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "47HhXN_3gmOO", + "executionInfo": { + "status": "ok", + "timestamp": 1702761801049, + "user_tz": 360, + "elapsed": 140, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "75fd8d20-52ff-4385-f6cb-b7587d2867e8" + }, + "execution_count": 50, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Predicted Category: 1\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Assuming 'new_tweet' is the new tweet entered by the user\n", + "new_tweet = \"wonderful\"\n", + "\n", + "# Preprocess the new tweet and vectorize it using the same vectorizer used during training\n", + "new_tweet_vectorized = vectorizer.transform([new_tweet])\n", + "\n", + "# Predict category of the new tweet\n", + "predicted_category = model.predict(new_tweet_vectorized)\n", + "print(f\"Predicted Category: {predicted_category[0]}\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "RtCSwnJgg0Kn", + "executionInfo": { + "status": "ok", + "timestamp": 1702761921246, + "user_tz": 360, + "elapsed": 146, + "user": { + "displayName": "pavanmahaveer singara", + "userId": "17551489007904463854" + } + }, + "outputId": "f80ad5b5-3741-4690-addf-3f8121e5f9d5" + }, + "execution_count": 51, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Predicted Category: 0\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "wxlGUVyYhPl7" + }, + "execution_count": null, + "outputs": [] + } + ] +}