Skip to content

Commit cf104c5

Browse files
committed
#32 Add Scala helpers
1 parent e315d3a commit cf104c5

File tree

2 files changed

+85
-0
lines changed

2 files changed

+85
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/**
2+
* Investigate various output quality measures supplied by ARX
3+
*
4+
*/
5+
package examples.example_3
6+
7+
8+
import base.DefaultConfiguration
9+
import org.deidentifier.arx.Data
10+
import postprocessor.ResultPrinter.printHandleTop
11+
12+
//import scala.collection.JavaConversions._
13+
//import collection.convert.ImplicitConversionsToScala.map AsScala
14+
import collection.JavaConverters.* // asScala
15+
import collection.convert.ImplicitConversions.*
16+
import java.io.File
17+
import java.nio.charset.Charset
18+
19+
object MeasureDataQuality extends App{
20+
21+
def loadData: Tuple2[Data, Data] = {
22+
23+
val dataFileOrg: File = new File("/home/alex/qi3/drl_anonymity/src/examples/q_learn_distorted_sets/distorted_set_-1")
24+
val dataOrg: Data = Data.create(dataFileOrg, Charset.defaultCharset, ',')
25+
26+
val dataFileDist: File = new File("/home/alex/qi3/drl_anonymity/src/examples/q_learn_distorted_sets/distorted_set_-2")
27+
val dataDist: Data = Data.create(dataFileDist, Charset.defaultCharset, ',')
28+
29+
require(dataOrg.getHandle.getNumRows == dataDist.getHandle.getNumRows)
30+
require(dataOrg.getHandle.getNumColumns == dataDist.getHandle.getNumColumns)
31+
32+
// define the attribute types
33+
System.out.println(s"Number of rows ${dataOrg.getHandle.getNumRows}")
34+
System.out.println(s"Number of cols ${dataOrg.getHandle.getNumColumns}")
35+
36+
printHandleTop(handle = dataOrg.getHandle, n = 5)
37+
System.out.println("Done...")
38+
39+
(dataOrg, dataDist)
40+
}
41+
42+
def experiment1: Unit = {
43+
44+
val data = loadData
45+
46+
val dataHandleOrg = data._1.getHandle
47+
val dataHandleDist = data._2.getHandle
48+
49+
val summaryStatsDist = dataHandleDist.getStatistics().getSummaryStatistics(true)
50+
val summaryStatsOrg = dataHandleOrg.getStatistics().getSummaryStatistics(true)
51+
// getEquivalenceClassStatistics(); //getEquivalenceClassStatistics();
52+
53+
for((key, value) <- summaryStatsDist){
54+
println(s"Column: ${key}")
55+
println("-----------------------Distorted/Original")
56+
println(s"distinctNumberOfValues ${value.getNumberOfDistinctValuesAsString}/${summaryStatsOrg.get(key).getNumberOfDistinctValuesAsString}")
57+
println(s"Mode ${value.getModeAsString}/${summaryStatsOrg.get(key).getModeAsString}")
58+
if(value.isMaxAvailable) {
59+
println(s"Max ${value.getMaxAsString}/${summaryStatsOrg.get(key).getMaxAsString}")
60+
println(s"Min ${value.getMinAsString}/${summaryStatsOrg.get(key).getMinAsString}")
61+
}
62+
}
63+
}
64+
65+
def runKAnonimity: Unit = {
66+
67+
val data = loadData
68+
69+
// create the hierarchies for the ethnicity and
70+
// salary
71+
72+
}
73+
74+
// execute Experiment 1
75+
experiment1
76+
77+
}

scala_helpers/build.sbt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
name := "data_anonymizer_scala"
2+
3+
version := "0.1"
4+
5+
scalaVersion := "3.0.2"
6+
7+
libraryDependencies += "org.scalactic" %% "scalactic" % "3.2.10"
8+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.10" % "test"

0 commit comments

Comments
 (0)