package preprocessing;
import seekfeel.dataholders.Product_Feature;
import seekfeel.dataholders.Review;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//package reviews_parser;
/**
*
* @author Ashraf
*
* This is the class that extracts the Review from the Text
*/
public class Reviews_Parser {
public static String Title = "";
Review Parse_Review_Data(String Sentence)
{
Review Parsed_Review = new Review();
if(Sentence.contains("[u]") || Sentence.contains("[U]" ) )
{
Parsed_Review.Without_Feature = true;
Sentence = Sentence.replace("[u]", "") ;
Sentence = Sentence.replace("[U]", "") ;
}
if(Sentence.contains("[p]") || Sentence.contains("[P]") )
{
Parsed_Review.Without_Pronoun_resolution = true;
Sentence = Sentence.replace("[p]", "") ;
Sentence = Sentence.replace("[P]", "") ;
}
if(Sentence.contains("[s]") || Sentence.contains("[S]"))
{
Parsed_Review.Has_Suggetions = true;
Sentence = Sentence.replace("[s]", "") ;
Sentence = Sentence.replace("[S]", "") ;
}
if(Sentence.contains("[CC]")|| Sentence.contains("[cc]") )
{
Parsed_Review.Has_Comparison_With_Different_Brand = true;
Sentence = Sentence.replace("[CC]", "") ;
Sentence = Sentence.replace("[cc]", "") ;
}
if(Sentence.contains("[CS]")|| Sentence.contains("[cs]") )
{
Parsed_Review.Has_Comparison_With_Same_Brand = true;
Sentence = Sentence.replace("[cs]", "") ;
Sentence = Sentence.replace("[CS]", "") ;
}
String[] Parts = Sentence.split("##");
if(Parts.length > 0 )
{
if(Parts[0].length() <1 )
{
System.out.println(" Features: " + "None");
}
else
{
String[] Features= Parts[0].split(",");
for(String Feature : Features)
{
Parsed_Review.Features.add(Get_Feature(Feature));
}
}
}
if(Parts.length > 1 )
{
Parsed_Review.Review_Body = Parts[1];
}
System.out.println(Sentence);
Parsed_Review.Review_Title = Title;
return Parsed_Review;
}
void Parse_Review_Title(String Sentence)
{
Sentence = Sentence.replace("[t]", "") ;
Title = Sentence;
}
Product_Feature Get_Feature(String Feature_Text)
{
Product_Feature Feature = new Product_Feature();
if(Feature_Text.contains("[+3]") )
{
Feature.Rank = 3;
Feature_Text = Feature_Text.replace("[+3]", "") ;
}
if(Feature_Text.contains("[+2]") )
{
Feature.Rank = 2;
Feature_Text = Feature_Text.replace("[+2]", "") ;
}
if(Feature_Text.contains("[+1]") )
{
Feature.Rank = 1;
Feature_Text = Feature_Text.replace("[+1]", "") ;
}
if(Feature_Text.contains("[-1]") )
{
Feature.Rank = -1;
Feature_Text = Feature_Text.replace("[-1]", "") ;
}
if(Feature_Text.contains("[-2]") )
{
Feature.Rank = -2;
Feature_Text = Feature_Text.replace("[-2]", "") ;
}
if(Feature_Text.contains("[-3]") )
{
Feature.Rank = -3;
Feature_Text = Feature_Text.replace("[-3]", "") ;
}
Feature.Name = Feature_Text;
return Feature;
}
}