2022-02-23

Feb 22 In-Class Exercise Thread .

Please post your solutions to the Feb 23 In-Class Exercise to this thread.

Best,

Chris

Please post your solutions to the Feb 23 In-Class Exercise to this thread. Best, Chris

-- Feb 22 In-Class Exercise Thread
[u, v] = [0, 1]
D = 1
Score = 0
J = 0

U = -inf < inf:
	d < docid(u) #False
	score = 1 / (1 - 0 + 1) = 0.5
	[u, v] = [5, 6]
	d < docid(u) #False
	score = 0.5 + 1 / (6 -5 + 1) = 1
	[u, v] = [3, 5]
	d < docid(u) #True
		j = 1
		Result[1].docid = 1
		Result[1].score = 1
		d = 2
		score = 0
	score = 0 + 1 / (5 - 3 + 1) = 0.3
	[u, v] = [7, 8]
	d < docid(u) #False 
	score = 0.3 + 1 / (8 - 7 + 1) = 0.8
	[u, v] = [inf, inf]

D < inf #True 
	j = 2
	Result[2].docid = 2
	Result[2].score = 0.8

#answer: 
Result = [
    {
        docid = 1
        score = 1
    },
    {
        docid = 1
        score = 0.8
    }
]
(Edited: 2022-02-23)
<pre>[u, v] = [0, 1] D = 1 Score = 0 J = 0 U = -inf < inf: d < docid(u) #False score = 1 / (1 - 0 + 1) = 0.5 [u, v] = [5, 6] d < docid(u) #False score = 0.5 + 1 / (6 -5 + 1) = 1 [u, v] = [3, 5] d < docid(u) #True j = 1 Result[1].docid = 1 Result[1].score = 1 d = 2 score = 0 score = 0 + 1 / (5 - 3 + 1) = 0.3 [u, v] = [7, 8] d < docid(u) #False score = 0.3 + 1 / (8 - 7 + 1) = 0.8 [u, v] = [inf, inf] D < inf #True j = 2 Result[2].docid = 2 Result[2].score = 0.8 #answer: Result = [ { docid = 1 score = 1 }, { docid = 1 score = 0.8 } ] </pre>

-- Feb 22 In-Class Exercise Thread

d1 = “All the king's horses and all the king's men"

d2 = "Which is correct: all of the people, all the people, or all people?"

rankProximity(“all”, “the”, 2)

For document 1:

[u,v] = [0,1], [1,5], [5,6]

For document 2:

[u,v] = [3,5], [5,7], [7,8], [8,11]

j = 0, d = 1, score = 0

1st score = 0 + 0.5 = 0.5

2nd score = 0.5 + 0.2 = 0.7

3rd score = 0.7 + 0.5 = 1.2

result[1].docid = 1

result[1].score = 1.2

j = 1, d = 2, score = 0

1st score = 0 + 0.33 = 0.33

2nd score = 0.33 + 0.33 = 0.66

3rd score = 0.66 + 0.5 = 1.166

4th score = 1.166 + 0.25 = 1.416

result[2].docid = 2

result[2].score = 1.416

result = [{score = 1.416, doc_id=2},{score = 1.2, doc_id= 1}]

(Edited: 2022-02-23)
d1 = “All the king's horses and all the king's men" d2 = "Which is correct: all of the people, all the people, or all people?" rankProximity(“all”, “the”, 2) For document 1: [u,v] = [0,1], [1,5], [5,6] For document 2: [u,v] = [3,5], [5,7], [7,8], [8,11] j = 0, d = 1, score = 0 1st score = 0 + 0.5 = 0.5 2nd score = 0.5 + 0.2 = 0.7 3rd score = 0.7 + 0.5 = 1.2 result[1].docid = 1 result[1].score = 1.2 j = 1, d = 2, score = 0 1st score = 0 + 0.33 = 0.33 2nd score = 0.33 + 0.33 = 0.66 3rd score = 0.66 + 0.5 = 1.166 4th score = 1.166 + 0.25 = 1.416 result[2].docid = 2 result[2].score = 1.416 result = [{score = 1.416, doc_id=2},{score = 1.2, doc_id= 1}]

-- Feb 22 In-Class Exercise Thread

The return result is doc 2, doc 1 with 1.42, 1.2 scores respectively. The detailed step-by-step analysis is shown below in images.

Resource Description for WhatsApp Image 2022-02-23 at 2.22.40 PM.jpeg Resource Description for WhatsApp Image 2022-02-23 at 2.25.54 PM.jpeg

The return result is doc 2, doc 1 with 1.42, 1.2 scores respectively. The detailed step-by-step analysis is shown below in images. ((resource:WhatsApp Image 2022-02-23 at 2.22.40 PM.jpeg|Resource Description for WhatsApp Image 2022-02-23 at 2.22.40 PM.jpeg)) ((resource:WhatsApp Image 2022-02-23 at 2.25.54 PM.jpeg|Resource Description for WhatsApp Image 2022-02-23 at 2.25.54 PM.jpeg))

-- Feb 22 In-Class Exercise Thread
d1="All the king's horses and all the king's men"
d2 = "Which is correct: all of the people, all the people, or all people?"

rankProximity processing:

'''Initially:'''
u = -infinity
nextCover("all", "the", -infinity) would give us [0:0,0:1]
Thus, [u, v] = [0, 1]
d = 0
score = 0
j = 0

'''Iterating through while loop:'''

1.
docid(u) = 0, d = 0
score += 1/(1-0+1) = 1/2
nextCover("all", "the", 0) would give us [0:1,0:5]
Thus, [u, v] = [1, 5]

2.
docid(u) = 0, d = 0
score += 1/(5-1+1) = 1/2 + 1/5 = 7/10
nextCover("all", "the", 1) would give us [0:5,0:6]
Thus, [u, v] = [3, 5]

3.
docid(u) = 0, d = 0
score += 1/(6-5+1) = 7/10 + 1/2 = 6/5 = 1.2
nextCover("all", "the", 5) would give us [1:3,1:5]
Thus, [u, v] = [3, 5]

4.
docid(u) = 1, d = 0
From if condition (d<docid(u)):
   j = 1
   Result[1].docid = 0
   Result[1].score = 1.16
   d = 1
   score = 0
score += 1/(5-3+1) = 1/3
nextCover("all", "the", 3) would give us [1:5,1:7]
Thus, [u, v] = [5, 7]

5.
docid(u) = 1, d = 1
score += 1/(7-5+1) = 1/3 + 1/3 = 2/3
nextCover("all", "the", 7) would give us [1:7,1:8]
Thus, [u, v] = [7, 8]

6.
docid(u) = 1, d = 1
score += 1/(8-7+1) = 2/3 + 1/2 = 7/6
nextCover("all", "the", 7) would give us [1:8,1:11]
Thus, [u, v] = [8, 11]

7.
docid(u) = 1, d = 1
score += 1/(11-8+1) = 7/6 + 1/4 = 17/12
nextCover("all", "the", 8) would give us [infinity, infinity]
Thus, [u, v] = [infinity, infinity]

Exiting the while loop and checking the if condition (d<infinity),
j = 2
Result[2].docid = 1
Result[2].score = 17/12 = 1.46

Sorting Result by score and returning top 2 documents:
1. {docid: 1, score: 1.46}
2. {docid: 0, score: 1.2}

<pre> d1="All the king's horses and all the king's men" d2 = "Which is correct: all of the people, all the people, or all people?" rankProximity processing: '''Initially:''' u = -infinity nextCover("all", "the", -infinity) would give us [0:0,0:1] Thus, [u, v] = [0, 1] d = 0 score = 0 j = 0 '''Iterating through while loop:''' 1. docid(u) = 0, d = 0 score += 1/(1-0+1) = 1/2 nextCover("all", "the", 0) would give us [0:1,0:5] Thus, [u, v] = [1, 5] 2. docid(u) = 0, d = 0 score += 1/(5-1+1) = 1/2 + 1/5 = 7/10 nextCover("all", "the", 1) would give us [0:5,0:6] Thus, [u, v] = [3, 5] 3. docid(u) = 0, d = 0 score += 1/(6-5+1) = 7/10 + 1/2 = 6/5 = 1.2 nextCover("all", "the", 5) would give us [1:3,1:5] Thus, [u, v] = [3, 5] 4. docid(u) = 1, d = 0 From if condition (d<docid(u)): j = 1 Result[1].docid = 0 Result[1].score = 1.16 d = 1 score = 0 score += 1/(5-3+1) = 1/3 nextCover("all", "the", 3) would give us [1:5,1:7] Thus, [u, v] = [5, 7] 5. docid(u) = 1, d = 1 score += 1/(7-5+1) = 1/3 + 1/3 = 2/3 nextCover("all", "the", 7) would give us [1:7,1:8] Thus, [u, v] = [7, 8] 6. docid(u) = 1, d = 1 score += 1/(8-7+1) = 2/3 + 1/2 = 7/6 nextCover("all", "the", 7) would give us [1:8,1:11] Thus, [u, v] = [8, 11] 7. docid(u) = 1, d = 1 score += 1/(11-8+1) = 7/6 + 1/4 = 17/12 nextCover("all", "the", 8) would give us [infinity, infinity] Thus, [u, v] = [infinity, infinity] Exiting the while loop and checking the if condition (d<infinity), j = 2 Result[2].docid = 1 Result[2].score = 17/12 = 1.46 Sorting Result by score and returning top 2 documents: 1. {docid: 1, score: 1.46} 2. {docid: 0, score: 1.2} </pre>

-- Feb 22 In-Class Exercise Thread

''rankProximity(“all”, “the”, 2)

Doc1: [u,v] = [0,1], [1,5], [5,6]

Doc2: [u,v] = [3,5], [5,7], [7,8], [8,11]

j = 0 d = 1 score = 0

Score = score + 1/ (v-u + 1)

Score 1 = 0 + 1 / (1 - 0 + 1) = 0.5 ,

Score 2 = 0.5 + 1 / (5 - 1 + 1) = 0.7,

Score 3 = 0.7 +1 / ( 6 - 5 + 1) = 1.2

result[1].docid = 1 , result[1].score = 1.2

j = 1 d = 2 score = 0

Score 1 = 0 + 1 / (5 - 3 + 1) = 0.3,

Score 2 = 0.3 + 1 / (7 - 5 + 1) = 0.6,

Score 3 = 0.6 + 1 / (8 - 7 + 1) = 1.1,

Score 4 = 1.1+ 1 / (11 - 8 + 1) = 1.35

result[2].docid = 2 , result[2].score = 1.35

After sorting result by score: result = score = 1.35, doc_id =2] , [score = 1.2, doc_id = 1''

(Edited: 2022-02-23)
''rankProximity(“all”, “the”, 2) Doc1: [u,v] = [0,1], [1,5], [5,6] Doc2: [u,v] = [3,5], [5,7], [7,8], [8,11] j = 0 d = 1 score = 0 Score = score + 1/ (v-u + 1) Score 1 = 0 + 1 / (1 - 0 + 1) = 0.5 , Score 2 = 0.5 + 1 / (5 - 1 + 1) = 0.7, Score 3 = 0.7 +1 / ( 6 - 5 + 1) = 1.2 result[1].docid = 1 , result[1].score = 1.2 j = 1 d = 2 score = 0 Score 1 = 0 + 1 / (5 - 3 + 1) = 0.3, Score 2 = 0.3 + 1 / (7 - 5 + 1) = 0.6, Score 3 = 0.6 + 1 / (8 - 7 + 1) = 1.1, Score 4 = 1.1+ 1 / (11 - 8 + 1) = 1.35 result[2].docid = 2 , result[2].score = 1.35 After sorting result by score: result = [[score = 1.35, doc_id =2] , [score = 1.2, doc_id = 1]]''

-- Feb 22 In-Class Exercise Thread

Resource Description for algo.png Resource Description for Screen Shot 2022-02-25 at 3.52.21 PM.png

(Edited: 2022-02-25)
((resource:algo.png|Resource Description for algo.png)) ((resource:Screen Shot 2022-02-25 at 3.52.21 PM.png|Resource Description for Screen Shot 2022-02-25 at 3.52.21 PM.png))

-- Feb 22 In-Class Exercise Thread

Resource Description for class_exercise.jpeg

((resource:class_exercise.jpeg|Resource Description for class_exercise.jpeg))

-- Feb 22 In-Class Exercise Thread

Resource Description for Screenshot (8).png

(Edited: 2022-02-23)
((resource:Screenshot (8).png|Resource Description for Screenshot (8).png))

-- Feb 22 In-Class Exercise Thread

rankProximity(t[1],.., t[n], k) // t[] term vector = all, the // k = 2

{

   u := - infty;
   [u,v] := nextCover(t[1],.., t[n], u); // for d1 for the first round [0,1]
   d := docid(u);
   score := 0;
   j := 0;
   while( u < infty) do
       if(d < docid(u) ) then
       // if docid changes record info about last docid
           j := j + 1; // j = 1
           Result[j].docid := d;
           Result[j].score := score;
           d := docid(u);
           score := 0;
       score := score + 1/(v - u + 1); // 0+1/(1-0+1 ) = 0.5 
       [u, v] := nextCover(t[1],.., t[n], u); // next cover [1,5]
//… j = 2
//0+1/(5-1+1) = 0.2
//next cover [5,6]
//j= 3
//0.3 +1/(6-5+1) = 0.5
//end of document 
//now second document
//[3,5]
//j =1
//0+1/(5-3+1)=0.33
//next cover [5,7]
//j=2
//0+1/(7-5+1)=0.33
//next cover [7,8]
//j=3
//0+1/(8-7+1)=0.5
//next cover[8,11]
//j=4
//0+1/(11-8+1)= 0.25
//end of document 
   if(d < infty) then
       // record last score if not recorded
       j := j + 1; //1
       Result[j].docid := d;//docid = 1
       Result[j].score := score; //score: 1.2

// second result : docid = 2, score = 1.41

   sort Result[1..j] by score;
   return Result[1..k];

Results: 1. Docid:1, score: 1.2

       2. Docid:2 score 1.41
(Edited: 2022-02-23)
rankProximity(t[1],.., t[n], k) // t[] term vector = all, the // k = 2 { u := - infty; [u,v] := nextCover(t[1],.., t[n], u); // for d1 for the first round [0,1] d := docid(u); score := 0; j := 0; while( u < infty) do if(d < docid(u) ) then // if docid changes record info about last docid j := j + 1; // j = 1 Result[j].docid := d; Result[j].score := score; d := docid(u); score := 0; score := score + 1/(v - u + 1); // 0+1/(1-0+1 ) = 0.5 [u, v] := nextCover(t[1],.., t[n], u); // next cover [1,5] //… j = 2 //0+1/(5-1+1) = 0.2 //next cover [5,6] //j= 3 //0.3 +1/(6-5+1) = 0.5 //end of document //now second document //[3,5] //j =1 //0+1/(5-3+1)=0.33 //next cover [5,7] //j=2 //0+1/(7-5+1)=0.33 //next cover [7,8] //j=3 //0+1/(8-7+1)=0.5 //next cover[8,11] //j=4 //0+1/(11-8+1)= 0.25 //end of document if(d < infty) then // record last score if not recorded j := j + 1; //1 Result[j].docid := d;//docid = 1 Result[j].score := score; //score: 1.2 // second result : docid = 2, score = 1.41 sort Result[1..j] by score; return Result[1..k]; Results: 1. Docid:1, score: 1.2 2. Docid:2 score 1.41
[ Next ]
X