def patterns_approach(llimit,ulimit,isphrase,pathname):

    pos_pattern_list=[]
    neg_pattern_list=[]
    trainingdata=[]
    trainingclass=[]
    pattern_train_set=[]
    totalcount=ulimit-llimit

    lpcount=0
    cnt_var=0
    print '\nNo of +ve reviews scanned for training : '
    for fid in movie_reviews.fileids(categories=['pos'])[llimit:ulimit]:
        test_pattern=proximity_tagger.pattern_list(movie_reviews.abspath(fid),isphrase,cnt_var,0,pathname)
        pos_pattern_list.extend(test_pattern)
        lpcount=lpcount+1
	cnt_var+=1
        print 'Scanning +ve review ',lpcount,'.'*10,(float(lpcount)*100/float(totalcount)),'%'
        

    lpcount=0
    cnt_var=0
    print '\nNo of -ve reviews scanned for training : '
    for fid in movie_reviews.fileids(categories=['neg'])[llimit:ulimit]:
        test_pattern=proximity_tagger.pattern_list(movie_reviews.abspath(fid),isphrase,cnt_var,1,pathname)
        neg_pattern_list.extend(test_pattern)
        lpcount=lpcount+1
	cnt_var+=1
        print 'Scanning -ve review ',lpcount,'.'*10,(float(lpcount)*100/float(totalcount)),'%'


    lpcount=0
    totalcount=len(pos_pattern_list)
    print '\nNo of +ve reviews trained : '
    trainingdata.extend(pos_pattern_list)
    for i in range(totalcount):
        trainingclass.append(1)
        lpcount+=1
        print 'Training +ve patterns ',lpcount,'.'*10,(float(lpcount)*100/float(totalcount)),'%'

    lpcount=0
    totalcount=len(neg_pattern_list)
    print '\nNo of +ve reviews trained : '
    trainingdata.extend(neg_pattern_list)
    for i in range(totalcount):
        trainingclass.append(0)
        lpcount+=1
        print 'Training -ve patterns ',lpcount,'.'*10,(float(lpcount)*100/float(totalcount)),'%'

    pattern_train_set.append(trainingdata)
    pattern_train_set.append(trainingclass)

    f = open('train_result\proximity_pattern_train_result_'+str(isphrase),'w')
    json.dump(pattern_train_set,f)
    f.close()
def review_test(isphrase):

	bin_testset=[]
	f = open('train_result/proximity_bin_train_result_'+str(isphrase),'r')
	bin_testset=json.load(f)
	f.close()
	
	#clf=SVC()
	clf=LinearSVC()
	clf.fit(bin_testset[0],bin_testset[1])

	pattern_testset=[]
	f = open('train_result/proximity_pattern_train_result_'+str(isphrase),'r')
	pattern_testset=json.load(f)
	f.close()

	#clf2=SVC()
	clf2=LinearSVC()
	clf2.fit(pattern_testset[0],pattern_testset[1])

	count=0
	cnt_var=0
	pat_val=-1
	bin_val=-1
	med_val = median_result('samplereview.txt',isphrase)
	
	temp_class1= clf.predict(proximity_tagger.bin_list('samplereview.txt',isphrase))
	if temp_class1 == [1]:
		bin_val=1
    	
	temp_class2= clf2.predict(proximity_tagger.pattern_list('samplereview.txt',isphrase))
	numsum=sum(temp_class2)
	if numsum > (len(temp_class2)/2):
		pat_val=1


	isreviewpositive = 0
	if (med_val+bin_val+pat_val)>0:
		isreviewpositive = 1

	
	return isreviewpositive