
prerna.reactor.test.RunLSILearnedReactor Maven / Gradle / Ivy
The newest version!
package prerna.reactor.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import prerna.ds.r.RDataTable;
import prerna.ds.r.RSyntaxHelper;
import prerna.reactor.frame.r.AbstractRFrameReactor;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;
public class RunLSILearnedReactor extends AbstractRFrameReactor{
public RunLSILearnedReactor() {
this.keysToGet = new String[]{ReactorKeysEnum.COLUMN.getKey(), ReactorKeysEnum.NUMERIC_VALUE.getKey()};
}
@Override
public NounMetadata execute() {
// get pixel inputs
organizeKeys();
// get R connection
init();
String[] packages = new String[] { "LSAfun", "text2vec"};
this.rJavaTranslator.checkPackages(packages);
// output frame name
RDataTable frame = (RDataTable) getFrame();
String returnTable = frame.getName();
String frameJoinCol = this.keyValue.get(this.keysToGet[0]);
int numRows = Integer.parseInt(this.keyValue.get(this.keysToGet[1]));
// path to your custom r script
String rScriptPath2 = getBaseFolder() + "\\R\\UserScripts\\RunLSILearned2.r";
String rScriptPath1 = getBaseFolder() + "\\R\\UserScripts\\lsi_lookup_learned.r";
rScriptPath1 = rScriptPath1.replace("\\", "/");
rScriptPath2 = rScriptPath2.replace("\\", "/");
// embed r script in java
StringBuilder rsb = new StringBuilder();
// load r packages
rsb.append("numMatch<-"+numRows+";");
rsb.append("source(\"" + rScriptPath1 + "\");");
String readDescriptions = "Description<-data.frame(gsub(\"_\",\" \"," + returnTable + "[," + frameJoinCol + "]));";
rsb.append(readDescriptions);
String alterFrameSpace = returnTable + "$" + frameJoinCol + "<-gsub(\" \",\"_\"," + returnTable + "[," + frameJoinCol + "]);";
rsb.append(alterFrameSpace);
rsb.append("LSAspace <- readRDS(\"lsalearned.rds\");");
rsb.append("source(\"" + rScriptPath2 + "\");");
String leftTableName = returnTable;
//TODO Change dfFinal to random string generated. Edit the R script.
String rightTableName = "dfFinal";
//TODO Change dfFinal to random string generated. Edit the R script.
rsb.append("dfFinal$Description<-gsub(\" \",\"_\"," + "dfFinal$Description);");
rsb.append(returnTable+"$LSA_Score<-NULL;"+returnTable+"$LSA_Category<-NULL;"+returnTable+"$Match<-NULL;");
// only a single join type can be passed at a time
String joinType = "left.outer.join";
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy