Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical No:1 Write a program to demonstrate bitwise
operation.
Code:
1
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Output:
2
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical No:2 Java Code for Page Rank
Algorithm :
Code:
import java.util.*;
import java.io.*;
public class PageRank {
public int path[][] = new int[10][10];
public double pagerank[] = new double[10];
public void calc(double totalNodes){
double InitialPageRank;
double OutgoingLinks=0;
double DampingFactor = 0.85;
double TempPageRank[] = new double[10];
int ExternalNodeNumber;
int InternalNodeNumber;
int k=1; // For Traversing
int ITERATION_STEP=1;
InitialPageRank = 1/totalNodes;
System.out.printf(" Total Number of Nodes :"+totalNodes+"\t Initial PageRank of
All Nodes :"+InitialPageRank+"\n");
// 0th ITERATION _ OR _ INITIALIZATION PHASE
for(k=1;k<=totalNodes;k++)
{
this.pagerank[k]=InitialPageRank;
}
System.out.printf("\n Initial PageRank Values , 0th Step \n");
for(k=1;k<=totalNodes;k++)
{
System.out.printf(" Page Rank of "+k+" is :\t"+this.pagerank[k]+"\n");
3
Name : Kumar Vaibhav
Roll No: 4177 TYCS
}
while(ITERATION_STEP<=2) // Iterations
{
// Store the PageRank for All Nodes in Temporary Array
for(k=1;k<=totalNodes;k++)
{
TempPageRank[k]=this.pagerank[k];
this.pagerank[k]=0;
}
for(InternalNodeNumber=1;InternalNodeNumber<=totalNodes;InternalNodeNum
ber++)
{
for(ExternalNodeNumber=1;ExternalNodeNumber<=totalNodes;ExternalNodeNu
mber++)
{
if(this.path[ExternalNodeNumber][InternalNodeNumber] == 1)
{
k=1;
OutgoingLinks=0; // Count the Number of Outgoing Links for each
ExternalNodeNumber
while(k<=totalNodes)
{
if(this.path[ExternalNodeNumber][k] == 1 )
{
OutgoingLinks=OutgoingLinks+1; // Counter for Outgoing Links
}
k=k+1;
}
// Calculate PageRank
this.pagerank[InternalNodeNumber]+=TempPageRank[ExternalNodeNumber]*(1/
OutgoingLinks);
}
}
}
4
Name : Kumar Vaibhav
Roll No: 4177 TYCS
System.out.printf("\n After "+ITERATION_STEP+"th Step \n");
for(k=1;k<=totalNodes;k++)
System.out.printf(" Page Rank of "+k+" is :\t"+this.pagerank[k]+"\n");
ITERATION_STEP = ITERATION_STEP+1;
}
// Add the Damping Factor to PageRank
for(k=1;k<=totalNodes;k++)
{
this.pagerank[k]=(1-DampingFactor)+ DampingFactor*this.pagerank[k];
}
// Display PageRank
System.out.printf("\n Final Page Rank : \n");
for(k=1;k<=totalNodes;k++)
{
System.out.printf(" Page Rank of "+k+" is :\t"+this.pagerank[k]+"\n");
}
public static void main(String args[])
{
int nodes,i,j,cost;
Scanner in = new Scanner(System.in);
System.out.println("Enter the Number of WebPages \n");
nodes = in.nextInt();
PageRank p = new PageRank();
System.out.println("Enter the Adjacency Matrix with 1->PATH & 0->NO
PATH Between two WebPages: \n");
for(i=1;i<=nodes;i++)
for(j=1;j<=nodes;j++)
{
p.path[i][j]=in.nextInt();
if(j==i)
p.path[i][j]=0;
}
p.calc(nodes);
5
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Output:
6
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical No-3
Implementing Dynamic Programming Algorithm for computing edit
distance between String s1 and s2.
a) Using Java
Code:
class EDIST
{
static int min(int x,int y,int z)
{
if (x<=y && x<=z) return x;
if (y<=x && y<=z) return y;
else return z;
}
static int editDist(String str1 , String str2 , int m ,int n)
{
// If first string is empty, the only option is to
// insert all characters of second string into first
if (m == 0) return n;
// If second string is empty, the only option is to
// remove all characters of first string
if (n == 0) return m;
// If last characters of two strings are same, nothing
// much to do. Ignore last characters and get count for
// remaining strings.
if (str1.charAt(m-1) == str2.charAt(n-1))
return editDist(str1, str2, m-1, n-1);
7
Name : Kumar Vaibhav
Roll No: 4177 TYCS
// If last characters are not same, consider all three
// operations on last character of first string, recursively
// compute minimum cost for all three operations and take
// minimum of three values.
return 1 + min ( editDist(str1, str2, m, n-1),
// Insert
editDist(str1, str2, m-1, n),
// Remove
editDist(str1, str2, m-1, n-1)
// Replace
);
}
public static void main(String args[])
{
String str1 = "sunday";
String str2 = "saturday";
System.out.println( editDist( str1 , str2 , str1.length(), str2.length()) );
}
}
Output:
8
Name : Kumar Vaibhav
Roll No: 4177 TYCS
B) Using Python
Code:
Output:
9
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical No-4
Program to compute similarity between two text
documents
Code:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class CompareTextFiles
{
public static void main(String[] args) throws IOException
{
BufferedReader reader1 = new BufferedReader(new
FileReader("D:\\file1.txt"));
BufferedReader reader2 = new BufferedReader(new
FileReader("D:\\file2.txt"));
String line1 = reader1.readLine();
String line2 = reader2.readLine();
boolean areEqual = true;
int lineNum = 1;
while (line1 != null || line2 != null)
{
if(line1 == null || line2 == null)
{
areEqual = false;
break;
10
Name : Kumar Vaibhav
Roll No: 4177 TYCS
}
else if(! line1.equalsIgnoreCase(line2))
{
areEqual = false;
break;
}
line1 = reader1.readLine();
line2 = reader2.readLine();
lineNum++;
}
if(areEqual)
{
System.out.println("Two files have same content.");
}
else
{
System.out.println("Two files have different content. They differ at line
"+lineNum);
System.out.println("File1 has "+line1+" and File2 has "+line2+" at line
"+lineNum);
}
reader1.close();
reader2.close();
}
}
11
Name : Kumar Vaibhav
Roll No: 4177 TYCS
File1.txt
File2.txt
12
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Output:
Different Content
Same Content
13
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical N0-5
Write a map-reduce program to count the number of occurrences of each
alphabetic character in the given dataset. The count for each letter
should be case-insensitive (i.e., include both upper-case and lower-case
versions of the letter; Ignore non-alphabetic characters)
Code
Output:
14
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical N0-6
Implement a basic IR system using Lucene
Code:
Output:
15
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical N0-7
Write a program for Pre-processing of a Text Document: stop word
removal.
Code:
Output:
16
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical N0-8
Write a program for mining Twitter to identify tweets for a
specific period and identify trends and named entities
Code:
Output:
17
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical N0-9
Write a program to implement simple web crawler
Code:
Output:
18
Name : Kumar Vaibhav
Roll No: 4177 TYCS
Practical N0-10
Write a program to parse XML text, generate Web graph and
compute topic specific page rank.
Code:
Output:
19