"Saving specific features from a Model for Text Mining"

New Altair Community Member
Updated by Jocelyn
Hello,
I am using Rapidminer to build a text classification model using Naive Bayes. I have built the model fine and understand how to apply said model in RapidMiner, but I was wondering if there was anyway to save the features the Bayesian model extracts into say a database table or excel spreadsheet? I want to do this because I am planning on using the Bayes model to help select key terms for a model and then take these terms and help rank documents using a cosine similarity and weighting scheme, which I have already developed . I don't know if this is possible in RapidMiner, or if maybe RapidMiner has the cosine similarity feature already and I can just maybe use that instead somehow.
Any help would be much appreciated.
Thanks
I am using Rapidminer to build a text classification model using Naive Bayes. I have built the model fine and understand how to apply said model in RapidMiner, but I was wondering if there was anyway to save the features the Bayesian model extracts into say a database table or excel spreadsheet? I want to do this because I am planning on using the Bayes model to help select key terms for a model and then take these terms and help rank documents using a cosine similarity and weighting scheme, which I have already developed . I don't know if this is possible in RapidMiner, or if maybe RapidMiner has the cosine similarity feature already and I can just maybe use that instead somehow.
Any help would be much appreciated.
Thanks
Find more posts tagged with
Sort by:
1 - 8 of
81
Hi GeorgeDittmar,
if you do not want to enter the dark side of groovy scripting, you might consider a different learner that provides you the word weights. E.g the Support Vector Machine does that. Then you can transform the weights with the Weights to Data Operator and process them further.
Ciao Sebastian
if you do not want to enter the dark side of groovy scripting, you might consider a different learner that provides you the word weights. E.g the Support Vector Machine does that. Then you can transform the weights with the Weights to Data Operator and process them further.
Ciao Sebastian
hmm I might have to suggest switching classifiers to the group, but we are trying to duplicate work I did last Winter because we switched everything over to the rapidminer framework while I was gone. Furiously trying to figure this framework out and get papers written for it. I cant seem to get the demo that haddock posted to work, I download the file but I cant seem to open it, maybe I am just missing something.
Hi there,
Non-examplesets have their own renderers, so the answer could actually be yes and yes
Anyways, here's a pointer..
Non-examplesets have their own renderers, so the answer could actually be yes and yes

<?xml version="1.0" encoding="UTF-8" standalone="no"?>I couldn't bear the thought of leaving you nothing to do, so I've left the loops and labels for you to thrill over ;D
<process version="5.0">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" expanded="true" name="Root">
<description>Using a simple Naive Bayes classifier.</description>
<process expanded="true" height="362" width="547">
<operator activated="true" class="retrieve" expanded="true" height="60" name="Retrieve" width="90" x="45" y="30">
<parameter key="repository_entry" value="//Samples/data/Iris"/>
</operator>
<operator activated="true" class="naive_bayes" expanded="true" height="76" name="NaiveBayes" width="90" x="179" y="30"/>
<operator activated="true" class="multiply" expanded="true" height="94" name="Multiply" width="90" x="313" y="30"/>
<operator activated="true" class="execute_script" expanded="true" height="76" name="Execute Script" width="90" x="447" y="30">
<parameter key="script" value=" import com.rapidminer.tools.Ontology; Model m = input[0]; Attribute[] attributes= new Attribute[1]; attributes[0] = AttributeFactory.createAttribute("String description", Ontology.STRING); MemoryExampleTable table = new MemoryExampleTable(attributes); DataRowFactory ROW_FACTORY = new DataRowFactory(0); String[] strings= new String[1]; strings[0]=m.getDistribution(0,0).toString(); DataRow row = ROW_FACTORY.create(strings, attributes); table.addDataRow(row);	 ExampleSet exampleSet = table.createExampleSet(); return exampleSet; "/>
</operator>
<connect from_op="Retrieve" from_port="output" to_op="NaiveBayes" to_port="training set"/>
<connect from_op="NaiveBayes" from_port="model" to_op="Multiply" to_port="input"/>
<connect from_op="Multiply" from_port="output 1" to_op="Execute Script" to_port="input 1"/>
<connect from_op="Multiply" from_port="output 2" to_port="result 2"/>
<connect from_op="Execute Script" from_port="output 1" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
<portSpacing port="sink_result 3" spacing="0"/>
</process>
</operator>
</process>
And welcome! It sound like you're in a position to indulge in Groovy scripting; in general you can pick apart most inputs using this Java scripting operator, there are some examples on the Wiki, and even I've managed a demo at
http://www.myexperiment.org/workflows/1299.html
tip: download the source of the relevant model, so you know what is available.