Commit ea8361d8 authored by Gamage B.G.N.U's avatar Gamage B.G.N.U

Merge branch 'IT17181570' into 'master'

Extract necessary data from essay type descriptive statistics questions

See merge request !49
parents d79519c9 bf6dd6e0
......@@ -13,19 +13,24 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DescriptiveStatisticsQuestionComparation {
Python py=null;
DescriptiveSCinputMethod DescriptiveSCinputMethod;
String a="Find mean, median for 15, 18, 21, 22, 26, 28, 31, 39";
public String DescriptiveStatisticsQuestionComparewithCSV(String Descriptivestatisticsquestions, List<String> reading) {
System.out.println("reading des questions in dsqc "+reading);
String a="Find mean, median for 15, 18, 21, 22, 26, 28, 31, 39";
String[] keywordlist = {"mean","median","mode","range","total","number of","dataset"};
String b="Determine the mean median and modal values for the set 3, 8, 10, 7, 5, 14, 2, 9, 8";
List<String> questions ;
......@@ -44,34 +49,21 @@ public class DescriptiveStatisticsQuestionComparation {
for (String s : questions){
questionlist += s + "\t";
}
//System.out.println("list from csv "+questionlist);
py = Python.getInstance();
PyObject pyo = py.getModule("desstatisticsquestion");
PyObject pyo1 = py.getModule("descriptivestatistics_keywords");
// PyObject array1 = py.getBuiltins().callAttr("list",questions);
PyObject obj = pyo.callAttr("main",a,dataReader);
PyObject obj1 = pyo1.callAttr("matchkeyword",keywordlist,b);
String result=obj.toString();
String result1=obj1.toString();
//System.out.println("output matching: "+result);
System.out.println("output matching: "+result);
System.out.println("matching: "+result1);
matchkeyword = QuestionMatch(result);
/*Python py = Python.getInstance();
final PyObject pyobj = py.getModule("script");
Btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PyObject obj = pyobj.callAttr("open");
tv.setText(obj.toString());
}
});*/
return result1;
......@@ -93,13 +85,6 @@ public class DescriptiveStatisticsQuestionComparation {
String line = "";
try {
/*int lines = 0;
while(reader.readLine() != null){
lines++;
}*/
while ((line = reader.readLine()) != null) {
//Split by '"'
String tokens = line;
......@@ -128,47 +113,7 @@ public class DescriptiveStatisticsQuestionComparation {
return StringdescriptiveQuestions;
}
//prepare the data for ReadCSV in device
/* private void ReadCSVData(){
try {
String fileList[] = getAssets().list("DesQuesData");
for (String fileName : fileList) {
File file = new File(Environment.getExternalStorageDirectory()
+ "/CSVData/desData/");
if (!file.exists()){
file.mkdirs();
}
if ((file.exists())) {
try {
InputStream in = getAssets().open(fileName);
String sdCardPath = Environment.getExternalStorageDirectory()
+ "/CSVData/desData";
FinalDesQuesDatapath = sdCardPath + "/eng.DesQuesData";
FinalDesPathToTESS_BASE_API = Environment.getExternalStorageDirectory() + "/CSVData/";
System.out.println("sdpath "+sdCardPath);
OutputStream out = new FileOutputStream(FinalDesQuesDatapath);
}catch (IOException e){
e.printStackTrace();
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}*/
String data;
public List<String> QuestionMatch(String highest) {
......@@ -179,57 +124,29 @@ public class DescriptiveStatisticsQuestionComparation {
List<String> valueAccordingtoLine = new ArrayList<>();
String word;
// System.out.println("value for meaning of the keyword "+valueAccordingtoLine);
return valueAccordingtoLine;
}
public List<String> ExtractDatasetFromDescriptiveQuestion(String question) {
/*wordlist = Arrays.asList(highest);
String s = highest;
word = s.toString().trim();
String data1 = word;
String[] wordlist1 = s.split(",");
List<String> extractnumbervalues = new ArrayList<String>();
for (String w: wordlist1){
Pattern pattern1 = Pattern.compile("((?<!^,)\\d+(,(?!$)|$))+.\\d+");
Matcher matcher1 = pattern1.matcher(question);
boolean value1 = matcher1.matches();
Pattern pattern1 = Pattern.compile("\\bmode\\b|\\bmedian\\b|\\bmean\\b|\\bnumber of\\b");
s.replaceAll("\\s","");
// Pattern pattern3 = Pattern.compile(regax3, Pattern.CASE_INSENSITIVE);
// Pattern pattern4 = Pattern.compile(regax4, Pattern.CASE_INSENSITIVE);
List<Pattern> patterns = new ArrayList<>();
while (matcher1.find()) {
System.out.println("'" + matcher1.group().trim() + "'");
extractnumbervalues.add(matcher1.group().trim());
}
// patterns.add(pattern1);
patterns.add(pattern1);
// patterns.add(pattern3);
// patterns.add(pattern4);
for (Pattern pattern : patterns) {
Matcher matcher = pattern.matcher(data1);
while (matcher.find()) {
matchword.add(counter, matcher.group().trim());
counter++;
System.out.println("matched data set of extract "+extractnumbervalues);
}
}
return extractnumbervalues;
}
Iterator it = matchword.iterator();
System.out.println("matching words in extract "+ matchword.toString());
System.out.println("keywords size"+ matchword.size());
System.out.println("matching words in extract "+ counter);
//System.out.println("List of matches: ");
//while(it.hasNext()){
//System.out.println("output "+ it.next());
//}
}
System.out.println("values: "+data);
return matchword;
}*/
}
......
......@@ -23,26 +23,13 @@ public class ExtractData {
word = s.toString().trim();
String data1 = word;
//String[] wordlist = s.split(",");
//for (String w: wordlist){
// String regax1 = "\\b\\d+(,\\d+)*\\b";
// String regax2 = "\\b\\d+(,\\d+)*\\b";
//String regax2 = "\\d+";
// String regax3 = "\\b\\d+(;\\d+)*\\b";
// String regax4 = "b\\d+(:\\d+)*\\b";
// Pattern pattern1 = Pattern.compile(regax1, Pattern.CASE_INSENSITIVE);
Pattern pattern2 = Pattern.compile("\\b(\\d|\\.)+(,(\\d|\\.)+)*\\b|\\b(\\d|\\.)+(\\s(\\d|\\.)+)*\\b|\\b(\\d|\\.)+(;(\\d|\\.)+)*\\b|\\b(\\d|\\.)+(:(\\d|\\.)+)*\\b");
s.replaceAll("\\s","");
// Pattern pattern3 = Pattern.compile(regax3, Pattern.CASE_INSENSITIVE);
// Pattern pattern4 = Pattern.compile(regax4, Pattern.CASE_INSENSITIVE);
List<Pattern> patterns = new ArrayList<>();
// patterns.add(pattern1);
patterns.add(pattern2);
// patterns.add(pattern3);
// patterns.add(pattern4);
for (Pattern pattern : patterns) {
Matcher matcher = pattern.matcher(data1);
......@@ -53,16 +40,11 @@ public class ExtractData {
}
}
// }
Iterator it = dataSet.iterator();
System.out.println("datset in extract "+ dataSet.toString());
System.out.println("datset in extract size"+ dataSet.size());
System.out.println("datset in extract "+ counter);
//System.out.println("List of matches: ");
//while(it.hasNext()){
//System.out.println("output "+ it.next());
//}
}
System.out.println("values: "+data);
return dataSet;
......
......@@ -294,11 +294,9 @@ public class DescriptiveSCinputMethod extends AppCompatActivity {
//list to receive the extrated data
List<String> extractedDataset;
//list to receive the extracted keywords from DesscriptiveStatatisticsQuestionComaration class
//List<String> descriptivestatisticsKeywords;
//InputStream is = getResources().openRawResource(R.raw.sample1);
DescriptiveStatisticsQuestionComparation dsqc = new DescriptiveStatisticsQuestionComparation();
//dsqc.DescriptiveStatisticsQuestionComparewithCSV(output,is);
//calling the extract data function
extractedDataset = extractData.ExtractionWithComma(dataArray);
......@@ -315,7 +313,10 @@ public class DescriptiveSCinputMethod extends AppCompatActivity {
String[] datasetArray = new String[extractedDataset.size()];
datasetArray = extractedDataset.toArray(datasetArray);
//--------------------extrct dataset from DescripticeStatsQuesCompare class using ExtractDatasetfromDescriptiveQuestion method -----------------------------
List<String> extractDataset = dsqc.ExtractDatasetFromDescriptiveQuestion(output);
// System.out.println("selected Type "+selectedRadioButton.getText().toString());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment