Commit 913e5884 authored by ruvisenarthna's avatar ruvisenarthna

Merge branch 'master' of http://gitlab.sliit.lk/20_21-j03/20_21-j03 into IT17187138

parents 3e17c83d 073c54b6
......@@ -31,13 +31,12 @@ public class DescriptiveStatisticsQuestionComparation {
public String DescriptiveStatisticsQuestionComparewithCSV(String Descriptivestatisticsquestions, List<String> reading) {
System.out.println("reading des questions in dsqc "+reading);
// System.out.println("reading des questions in dsqc "+reading);
String[] keywordlist = {"first","First","second","Second","third","Third","inter","Inter","quartiles","Quartiles","range","Range","mean","Mean","x̄","μ","median","Median","mode","Mode","total","Total","dataset","Dataset","set","Set","series","Series","Data","data","average","Average","number of","Number of","population","Population","sample","Sample","parameter","Parameter","sample size","Sample size","first quartile","First Quartile","second quartile","Second Quartile","third quartile","Third Quartile","Q1","Q2","Q3","upper quartile","Upper Quartile","lower quartile","Lower Quartile","Inter quartile range","Interquartile Range","inter quartile range","IQR","maximum","Maximum","minimum","Minimum"};
String b="Determine the mean median and modal values for the set 3, 8, 10, 7, 5, 14, 2, 9, 8";
//System.out.println("value passing from python"+b);
List<String> questions ;
List<String> matchkeyword = new ArrayList<>();
......@@ -45,10 +44,8 @@ public class DescriptiveStatisticsQuestionComparation {
String[] dataReader = new String[questions.size()];
questions.toArray(dataReader);
for (int i=0; i<dataReader.length; i++){
// System.out.println("print array " + dataReader[i]);
}
//System.out.println("arrayData "+Arrays.toString(questions));
}
String questionlist = "";
for (String s : questions){
......@@ -66,8 +63,8 @@ public class DescriptiveStatisticsQuestionComparation {
String result=obj.toString();
String result1=obj1.toString();
//System.out.println("output matching: "+result);
System.out.println("matching: "+result1);
// System.out.println("output matching: "+result);
// System.out.println("matching: "+result1);
matchkeyword = QuestionMatch(result);
return result1;
......@@ -129,7 +126,6 @@ public class DescriptiveStatisticsQuestionComparation {
List<String> valueAccordingtoLine = new ArrayList<>();
String word;
// System.out.println("value for meaning of the keyword "+valueAccordingtoLine);
return valueAccordingtoLine;
}
......@@ -149,8 +145,7 @@ public class DescriptiveStatisticsQuestionComparation {
extractnumbervalues.add(matcher1.group().trim());
}
System.out.println("matched data set of extract " + extractnumbervalues);
//System.out.println("matched data set of extract " + extractnumbervalues);
return extractnumbervalues;
......
......@@ -2,7 +2,7 @@ package com.elearning.probabilityandstatisticsanalyserandeducator.dataExtraction
import com.chaquo.python.PyObject;
import com.chaquo.python.Python;
import com.elearning.probabilityandstatisticsanalyserandeducator.inputMethod.DescriptiveSCinputMethod;
import com.elearning.probabilityandstatisticsanalyserandeducator.inputMethod.StandardDeviationInputMethod;
import java.io.BufferedReader;
import java.io.IOException;
......@@ -16,11 +16,12 @@ import java.util.regex.Pattern;
public class StandardDeviationQuestionComparation {
Python py=null;
StandardDeviationInputMethod StandardDeviationInputMethod;
String a="Find the standard deviation for the following data series: 12, 6, 7, 3, 15, 10, 18, 5";
public String StandardDeviationQuestionComparewithCSV(String Standarddeviationquestions, List<String> reading) {
System.out.println("reading std questions in standard deviation "+reading);
//System.out.println("reading std questions in standard deviation "+reading);
String[] keywordlist = {"Standard","standard","Deviation","deviation","Standard Deviation","standard deviation","Variance","variance","Skewness","skewness","Kurtosis","kurtosis","sample size","number of","population","Population","mean","Mean","parameter","sample proportion","square root","sum of square","average of square","SS","Sampling distribution","sampling distribution","proportion","mean","dataset","dispersion","spread","σ²","σ","s²","s","SD","sd","symmetric"};
......@@ -32,17 +33,14 @@ public class StandardDeviationQuestionComparation {
String[] dataReader = new String[questions.size()];
questions.toArray(dataReader);
for (int i=0; i<dataReader.length; i++){
// System.out.println("print array " + dataReader[i]);
}
//System.out.println("arrayData "+Arrays.toString(questions));
}
String questionlist = "";
for (String s : questions){
questionlist += s + "\t";
}
py = Python.getInstance();
PyObject pyo2 = py.getModule("stdquestion");
PyObject pyo21 = py.getModule("standarddeviation_keywords");
......@@ -54,7 +52,7 @@ public class StandardDeviationQuestionComparation {
String result21=obj21.toString();
//System.out.println("output matching for std: "+result2);
System.out.println("matching keywords for std: "+result21);
//System.out.println("matching keywords for std: "+result21);
matchstdkeyword = QuestionMatch(result2);
return result21;
......@@ -86,7 +84,6 @@ public class StandardDeviationQuestionComparation {
question.setQuestion(tokens);
stdQuestions.add(question);
StringstdQuestions.add(tokens);
//printQuestion[lines] = line;
//Log.d("MyActivity", "Just created: " + question);
}
......@@ -116,7 +113,6 @@ public class StandardDeviationQuestionComparation {
List<String> valueAccordingtoLine = new ArrayList<>();
String word;
// System.out.println("value for meaning of the keyword "+valueAccordingtoLine);
return valueAccordingtoLine;
}
......@@ -134,8 +130,7 @@ public class StandardDeviationQuestionComparation {
extractnumbervalues.add(matcher1.group().trim());
}
System.out.println("matched data set of extract in std "+extractnumbervalues);
//System.out.println("matched data set of extract in std "+extractnumbervalues);
return extractnumbervalues;
......
......@@ -115,6 +115,8 @@ public class DescriptiveSCinputMethod extends AppCompatActivity {
textInput = findViewById(R.id.keyboard_Input);
rg_01 = findViewById(R.id.rg_01);
rg_02 = findViewById(R.id.rg_02);
......@@ -279,76 +281,73 @@ public class DescriptiveSCinputMethod extends AppCompatActivity {
@Override
public void onClick(View v) {
String selectedType = null;
//getting calculation type by radio butons
try {
if (selectedRadioButton == null) {
Toast.makeText(DescriptiveSCinputMethod.this, "You must Select A Question Type", Toast.LENGTH_SHORT).show();
} else {
//getting calculation type by radio butons
selectedType = selectedRadioButton.getText().toString();
}catch (NullPointerException e){
e.printStackTrace();
Toast.makeText(DescriptiveSCinputMethod.this,"You must Select a Question Type",Toast.LENGTH_SHORT).show();
}
// destroy the speech recognition instance
speechRecognizer.destroy();
// -------------**** getting the final input from edit text
String output = textInput.getText().toString().trim();
// destroy the speech recognition instance
speechRecognizer.destroy();
if (extractedData.size() == 0){
extractedData.add(output); // adding data to List
}
// -------------**** getting the final input from edit text
String output = textInput.getText().toString().trim();
System.out.println("ExctractedData list size "+ extractedData.size());
if (extractedData.size() == 0) {
extractedData.add(output); // adding data to List
}
// adding List to array in order to pass to ExtractData function
String[] dataArray = new String[extractedData.size()];
dataArray = extractedData.toArray(dataArray);
System.out.println("ExctractedData list size " + extractedData.size());
// adding List to array in order to pass to ExtractData function
String[] dataArray = new String[extractedData.size()];
dataArray = extractedData.toArray(dataArray);
//list to receive the extrated data
List<String> extractedDataset;
// --------------------------------- Use DescriptiveStatisticsQuestionComparation class methods for solve essay type question --------------------------
//list to receive the extrated data
List<String> extractedDataset;
DescriptiveStatisticsQuestionComparation dsqc = new DescriptiveStatisticsQuestionComparation();
List<String> reading = readDesQuestions();
List<String> extractDatasetForEssay;
String[] extractDatasetForEssayArray = new String[0];
String extractedKeywordsFromFuzzy = null;
//System.out.println("before essay");
if (selectedType.equals("Solve Essay problem")){
extractedKeywordsFromFuzzy = dsqc.DescriptiveStatisticsQuestionComparewithCSV(output,reading);
System.out.println("extractedKeywordsFromFuzzy "+extractedKeywordsFromFuzzy);
//--------------------extrct dataset from DescripticeStatsQuesCompare class using ExtractDatasetfromDescriptiveQuestion method -----------------------------
DescriptiveStatisticsQuestionComparation dsqc = new DescriptiveStatisticsQuestionComparation();
List<String> reading = readDesQuestions();
List<String> extractDatasetForEssay;
String[] extractDatasetForEssayArray = new String[0];
extractDatasetForEssay = dsqc.ExtractDatasetFromDescriptiveQuestion(output);
System.out.println("extractDatasetForEssay "+extractDatasetForEssay);
String extractedKeywordsFromFuzzy = null;
// Converting list to array after data extraction function
extractDatasetForEssayArray = new String[extractDatasetForEssay.size()];
extractDatasetForEssayArray = extractDatasetForEssay.toArray(extractDatasetForEssayArray);
}
if (selectedType.equals("Solve Essay problem")) {
//calling the extract data function for normal question solvings
extractedDataset = extractData.ExtractionWithComma(dataArray);
extractedKeywordsFromFuzzy = dsqc.DescriptiveStatisticsQuestionComparewithCSV(output, reading);
System.out.println("extractedKeywordsFromFuzzy " + extractedKeywordsFromFuzzy);
//--------------------extrct dataset from DescripticeStatsQuesCompare class using ExtractDatasetfromDescriptiveQuestion method -----------------------------
//----------------------------------------------------------------------------------------------------------------
extractDatasetForEssay = dsqc.ExtractDatasetFromDescriptiveQuestion(output);
System.out.println("extractDatasetForEssay " + extractDatasetForEssay);
// Converting list to array after data extraction function
extractDatasetForEssayArray = new String[extractDatasetForEssay.size()];
extractDatasetForEssayArray = extractDatasetForEssay.toArray(extractDatasetForEssayArray);
}
//calling the extract data function for normal question solvings
extractedDataset = extractData.ExtractionWithComma(dataArray);
//-------------------------------------------------------------------------------------------------------------------------------- remove lateer
// Converting list to array after daa extraction function
String[] datasetArray = new String[extractedDataset.size()];
datasetArray = extractedDataset.toArray(datasetArray);
//-------------------------------------------------------------------------------------------------------------------------------- remove lateer
// System.out.println("selected Type "+selectedRadioButton.getText().toString());
// Converting list to array after daa extraction function
String[] datasetArray = new String[extractedDataset.size()];
datasetArray = extractedDataset.toArray(datasetArray);
// System.out.println("selected Type "+selectedRadioButton.getText().toString());
Intent intent = new Intent(DescriptiveSCinputMethod.this, DescriptiveStatisticsCalcuation.class);
......@@ -364,6 +363,7 @@ public class DescriptiveSCinputMethod extends AppCompatActivity {
datasetArray = null;
startActivity(intent);
}
}
});
......@@ -562,6 +562,7 @@ public void showMessege(){
Toast.makeText(this,"'"+selectedRadioButton.getText().toString()+"'",Toast.LENGTH_SHORT).show();
}
//----------------------readDesQuestion method from DescriptiveStatisticsQuestionComparation class-----------------------------------------------------------------------
private List<String> readDesQuestions(){
String[] printQuestion = new String[500];
List<DescriptiveStatisticsCSVfile> descriptiveQuestions= new ArrayList<>();
......
......@@ -76,7 +76,7 @@ public class StandardDeviationInputMethod extends AppCompatActivity {
List<String> extractedData;
Integer[] valuesTakenFromEditTextArray;
// ImageView imageView, img_greyview;
// ImageView imageView, img_greyview;
FloatingActionButton action_TakePhoto , action_UploadPhoto , action_voiceInput;
Button calculate;
TextView outputText;
......@@ -109,12 +109,12 @@ public class StandardDeviationInputMethod extends AppCompatActivity {
setContentView(R.layout.activity_standard_deviation);
// variable initialization
// imageView = findViewById(R.id.outImage);
// imageView = findViewById(R.id.outImage);
calculate = findViewById(R.id.btnTakeImage);
action_TakePhoto = findViewById(R.id.action_capturePhoto);
action_UploadPhoto = findViewById(R.id.action_uploadImage);
action_voiceInput = findViewById(R.id.action_voiceInput);
// img_greyview = findViewById(R.id.greyImg);
// img_greyview = findViewById(R.id.greyImg);
textInput = findViewById(R.id.keyboard_Input);
......@@ -281,76 +281,82 @@ public class StandardDeviationInputMethod extends AppCompatActivity {
calculate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//getting calculation type by radio butons
String selectedType = selectedRadioButton.getText().toString();
speechRecognizer.destroy();
String output = textInput.getText().toString().trim();
if (selectedRadioButton == null) {
Toast.makeText(StandardDeviationInputMethod.this, "You must Select A Question Type", Toast.LENGTH_SHORT).show();
} else {
if (extractedData.size() == 0){
extractedData.add(output); // adding data to List
}
//getting calculation type by radio butons
String selectedType = selectedRadioButton.getText().toString();
System.out.println("radio name "+ selectedType);
speechRecognizer.destroy();
String output = textInput.getText().toString().trim();
if (extractedData.size() == 0) {
extractedData.add(output); // adding data to List
}
// adding List to array in order to pass to ExtractData function
String[] dataArray = new String[extractedData.size()];
dataArray = extractedData.toArray(dataArray);
// adding List to array in order to pass to ExtractData function
String[] dataArray = new String[extractedData.size()];
dataArray = extractedData.toArray(dataArray);
//---------------------------------------------------------------------------------------------------
// --------------------------------- Use StandardDeviationQuestionComparation class methods --------------------------
// --------------------------------- Use StandardDeviationQuestionComparation class methods for solve essay type question --------------------------
//list to receive the extrated data
List<String> extractedStdDataset;
//list to receive the extrated data
List<String> extractedStdDataset;
StandardDeviationQuestionComparation stdqc = new StandardDeviationQuestionComparation();
List<String> reading1 = readStdQuestions();
List<String> extractDatasetForStdEssay;
String[] extractDatasetForEssayStdArray = new String[0];
StandardDeviationQuestionComparation stdqc = new StandardDeviationQuestionComparation();
List<String> reading1 = readStdQuestions();
List<String> extractDatasetForStdEssay;
String[] extractDatasetForEssayStdArray = new String[0];
String extractedStdKeywordsFromFuzzy = null;
System.out.println("before std");
if (selectedType.equals("Solve Essay problem")){
String extractedStdKeywordsFromFuzzy = null;
extractedStdKeywordsFromFuzzy = stdqc.StandardDeviationQuestionComparewithCSV(output,reading1);
System.out.println("extractedStdKeywordsFromFuzzy "+extractedStdKeywordsFromFuzzy);
//--------------------extrct dataset from StdQuesCompare class using ExtractDatasetFromStdQuestion method -----------------------------
if (selectedType.equals("Solve Essay problem")) {
extractDatasetForStdEssay = stdqc.ExtractDatasetFromStdQuestion(output);
System.out.println("extractDatasetForEssay Std "+extractDatasetForStdEssay);
extractedStdKeywordsFromFuzzy = stdqc.StandardDeviationQuestionComparewithCSV(output, reading1);
System.out.println("extractedStdKeywordsFromFuzzy " + extractedStdKeywordsFromFuzzy);
//--------------------extrct dataset from StdQuesCompare class using ExtractDatasetFromStdQuestion method -----------------------------
// Converting list to array after data extraction function
extractDatasetForEssayStdArray = new String[extractDatasetForStdEssay.size()];
extractDatasetForEssayStdArray = extractDatasetForStdEssay.toArray(extractDatasetForEssayStdArray);
extractDatasetForStdEssay = stdqc.ExtractDatasetFromStdQuestion(output);
System.out.println("extractDatasetForEssay Std " + extractDatasetForStdEssay);
}
// Converting list to array after data extraction function
extractDatasetForEssayStdArray = new String[extractDatasetForStdEssay.size()];
extractDatasetForEssayStdArray = extractDatasetForStdEssay.toArray(extractDatasetForEssayStdArray);
//calling the extract data function for normal question solvings
extractedStdDataset = extractData.ExtractionWithComma(dataArray);
}
//-------------------------------------------------------------------------------------------------------------------------------- remove lateer
//calling the extract data function for normal question solvings
extractedStdDataset = extractData.ExtractionWithComma(dataArray);
//-------------------------------------------------------------------------------------------------------------------------------- remove lateer
// Converting list to array after daa extraction function
String[] datasetArray = new String[extractedStdDataset.size()];
datasetArray = extractedStdDataset.toArray(datasetArray);
// Converting list to array after daa extraction function
String[] datasetArray = new String[extractedStdDataset.size()];
datasetArray = extractedStdDataset.toArray(datasetArray);
// System.out.println("selected Type "+selectedRadioButton.getText().toString());
// System.out.println("selected Type "+selectedRadioButton.getText().toString());
Intent intent = new Intent(StandardDeviationInputMethod.this, StandaradDeviationCalculation.class);
intent.putExtra("dataset",datasetArray);
intent.putExtra("des_calculation_type", selectedType);
Intent intent = new Intent(StandardDeviationInputMethod.this, StandaradDeviationCalculation.class);
intent.putExtra("dataset", datasetArray);
intent.putExtra("des_calculation_type", selectedType);
if (selectedType.equals("Solve Essay problem")){
intent.putExtra("extractDatasetForEssayArray",extractDatasetForEssayStdArray);
intent.putExtra("extractedKeywordsFromFuzzy",extractedStdKeywordsFromFuzzy);
}
if (selectedType.equals("Solve Essay problem")) {
intent.putExtra("extractDatasetForEssayArray", extractDatasetForEssayStdArray);
intent.putExtra("extractedKeywordsFromFuzzy", extractedStdKeywordsFromFuzzy);
}
extractedStdDataset.clear();
datasetArray = null;
startActivity(intent);
extractedStdDataset.clear();
datasetArray = null;
startActivity(intent);
}
}
});
......@@ -488,7 +494,7 @@ public class StandardDeviationInputMethod extends AppCompatActivity {
// setting the grey scale image
// img_greyview.setImageBitmap(greybmp);
// img_greyview.setImageBitmap(greybmp);
// creating new thread to start OCR
new Thread(new Runnable() {
......@@ -524,7 +530,7 @@ public class StandardDeviationInputMethod extends AppCompatActivity {
Toast.makeText(this,"'"+selectedRadioButton.getText().toString()+"'",Toast.LENGTH_SHORT).show();
}
//----------------------readStdQuestion method-----------------------------------------------------------------------
//----------------------readStdQuestion method from StandardDeviationQuestionComparation class-----------------------------------------------------------------------
private List<String> readStdQuestions(){
String[] printQuestion = new String[500];
List<StandardDeviationCSVfile> stdQuestions= new ArrayList<>();
......
from fuzzywuzzy import process
def main(data,data2):
str2match=data
stroptions=["Find mean, median for 35, 48, 53, 69, 72, 81","Determine the mean, median and modal values for the set 3, 8, 10, 7, 5, 14, 2, 9, 8","Find Q1 , Q2 , and Q3 for the following data set, and draw a box-andwhisker plot. {2,6,7,8,8,11,12,13,14,15,22,23}"]
ratio=process.extract(str2match,data2)
highest=process.extractOne(str2match,data2)
#print(ratio)
check_list=isinstance(data2,list)
#print(check_list)
#print(type(data2))
return ""+str(highest)
\ No newline at end of file
......@@ -27,11 +27,11 @@ def matchkeyword(klist,sen):
for word in Sentence.split():
try:
# print(key)
print(word)
# print(word)
res = cosdis(word2vec(word), word2vec(key))
print(res)
#print(res)
if res > threshold:
print("Found a word with cosine distance > 100 : {} with original word: {}".format(word, key))
#print("Found a word with cosine distance > 100 : {} with original word: {}".format(word, key))
matchedkeywordlist.append(word)
except IndexError:
pass
......
......@@ -4,8 +4,8 @@ def main(data,data2):
stroptions=["Find mean, median for 35, 48, 53, 69, 72, 81","Determine the mean, median and modal values for the set 3, 8, 10, 7, 5, 14, 2, 9, 8","Find Q1 , Q2 , and Q3 for the following data set, and draw a box-andwhisker plot. {2,6,7,8,8,11,12,13,14,15,22,23}"]
ratio=process.extract(str2match,data2)
highest=process.extractOne(str2match,data2)
print(ratio)
#print(ratio)
check_list=isinstance(data2,list)
print(check_list)
print(type(data2))
#print(check_list)
#print(type(data2))
return ""+str(highest)
\ No newline at end of file
......@@ -27,11 +27,11 @@ def matchkeyword(klist,sen):
for word in Sentence.split():
try:
# print(key)
print(word)
#print(word)
res = cosdis(word2vec(word), word2vec(key))
print(res)
#print(res)
if res > threshold:
print("Found a word with cosine distance > 100 : {} with original word: {}".format(word, key))
#print("Found a word with cosine distance > 100 : {} with original word: {}".format(word, key))
matchedkeywordlist.append(word)
except IndexError:
pass
......
......@@ -4,8 +4,8 @@ def main(data,data2):
stroptions=["Find the standard deviation for the following data series: 12, 6, 7, 3, 15, 10, 18, 5","Calculate the mean, sum of square, variance, and standard deviation for the following sample: 6 8 4 3 5 7 4 3","For the following data: 1 4 3 6 2 7 18 3 7 2 4 3 Compute the mean, standard deviation, median, and semi-quartile range. Then explain which measures of central tendency and variability provide a better description of the sample"]
ratio=process.extract(str2match,data2)
highest=process.extractOne(str2match,data2)
print(ratio)
#print(ratio)
check_list=isinstance(data2,list)
print(check_list)
print(type(data2))
#print(check_list)
#print(type(data2))
return ""+str(highest)
\ No newline at end of file
......@@ -131,7 +131,7 @@
android:id="@+id/rg_03_Q4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Solve Essey problem" />
android:text="Solve Essay problem" />
</RadioGroup>
......
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