From 0a473dabcc9d3b64ca833f59190a9a5f5305dc91 Mon Sep 17 00:00:00 2001 From: Jason Baldridge Date: Sun, 17 Feb 2013 14:56:51 -0600 Subject: [PATCH] Added files for homework 3. --- bin/anlp | 54 + build.sbt | 15 +- data/cluster/countries/README.txt | 10 + data/cluster/countries/birth.dat | 70 + data/cluster/federalist/federalist.txt | 25975 ++++++++++++++++ data/cluster/generated/README.txt | 14 + .../generated/clusters_bigger_x_variance.dat | 100 + .../generated/clusters_bigger_x_variance.png | Bin 0 -> 71095 bytes .../generated/clusters_equal_variance.dat | 100 + .../generated/clusters_equal_variance.png | Bin 0 -> 68823 bytes data/cluster/generated/generate_clusters.R | 53 + data/cluster/schools/README.txt | 18 + data/cluster/schools/achieve.dat | 25 + homework/hw3/hw3_answers.txt | 52 + lib/pca_transform-0.7.2.jar | Bin 0 -> 11760 bytes src/main/scala/appliednlp/app/Cluster.scala | 72 + .../appliednlp/cluster/PointCreator.scala | 139 + 17 files changed, 26696 insertions(+), 1 deletion(-) create mode 100755 bin/anlp create mode 100644 data/cluster/countries/README.txt create mode 100644 data/cluster/countries/birth.dat create mode 100644 data/cluster/federalist/federalist.txt create mode 100644 data/cluster/generated/README.txt create mode 100644 data/cluster/generated/clusters_bigger_x_variance.dat create mode 100644 data/cluster/generated/clusters_bigger_x_variance.png create mode 100644 data/cluster/generated/clusters_equal_variance.dat create mode 100644 data/cluster/generated/clusters_equal_variance.png create mode 100644 data/cluster/generated/generate_clusters.R create mode 100644 data/cluster/schools/README.txt create mode 100644 data/cluster/schools/achieve.dat create mode 100644 homework/hw3/hw3_answers.txt create mode 100644 lib/pca_transform-0.7.2.jar create mode 100644 src/main/scala/appliednlp/app/Cluster.scala create mode 100644 src/main/scala/appliednlp/cluster/PointCreator.scala diff --git a/bin/anlp b/bin/anlp new file mode 100755 index 0000000..3a1ad95 --- /dev/null +++ b/bin/anlp @@ -0,0 +1,54 @@ +#!/bin/bash + +EXIT_CODE=0 + +if [ -z $ANLP_DIR ] +then + ANLP_DIR=`dirname $0`/../ +fi + +if [ -z $JAVA_MEM_FLAG ] +then + JAVA_MEM_FLAG=-Xmx4g +fi + +#JARS="`find $HOME/.ivy2/ -name '*.jar' -print | tr '\n' ':'`" +MANAGED_JARS="`find $ANLP_DIR/lib_managed -name '*.jar' -print | tr '\n' ':'`" +UNMANAGED_JARS="`find $ANLP_DIR/lib -name '*.jar' -print | tr '\n' ':'`" + +SCALA_LIB="$HOME/.sbt/boot/scala-2.10.0/lib/scala-library.jar" + +CP="$ANLP_DIR/target/classes:$SCALA_LIB:$ANLP_DIR/src/main/resources:$MANAGED_JARS:$UNMANAGED_JARS" + +JAVA="$JAVA_HOME/bin/java" +JAVA_COMMAND="$JAVA -classpath $CP -Danlp.dir=$ANLP_DIR" + +CMD=$1 +shift + +help() +{ +cat <{vmu7f&+sfKH1CKn15%baM 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 literal 0 HcmV?d00001 diff --git a/data/cluster/generated/generate_clusters.R b/data/cluster/generated/generate_clusters.R new file mode 100644 index 0000000..670973f --- /dev/null +++ b/data/cluster/generated/generate_clusters.R @@ -0,0 +1,53 @@ +# Generate clusters for clustering + +# Set equal to 1 to generate clusters with spread out x values +unequal_x_variance = 1 + +# Generate clusters with equal variance in x and y dimensions. +outputName = "clusters_equal_variance" +variance_in_x = 1.0 +variance_in_y = 1.0 + +# Generate clusters with greater variance in x dimension. +if (unequal_x_variance) { + outputName = "clusters_bigger_x_variance" + variance_in_x = 5.0 +} + +# Three centroids are supported. You can change their x/y values here. +centroid1 = c(-1,-1) +centroid2 = c(6,4) +centroid3 = c(-2,8) + +outputFile = paste(outputName,"dat",sep=".") +outputPdf = paste(outputName,"pdf",sep=".") + +# Three clusters in 2 dimensions +createCluster <- function(numPoints, centroid, xvariance=1.0, yvariance=1.0) { + xmean = centroid[1] + ymean = centroid[2] + cbind(rnorm(numPoints,mean=xmean,xvariance),rnorm(numPoints,mean=ymean,yvariance)) +} + +cluster1 = cbind(1, createCluster(50,centroid1,variance_in_x,variance_in_y)) +cluster2 = cbind(2, createCluster(30,centroid2,variance_in_x,variance_in_y)) +cluster3 = cbind(3, createCluster(20,centroid3,variance_in_x,variance_in_y)) + +data = round(rbind(cluster1,cluster2,cluster3),2) + +pdf(outputPdf) + +plot(cluster1[,2:3],xlab="x value",ylab="y value",xlim=c(-12,12),ylim=c(-12,12)) +points(cluster2[,2:3],pch=2) +points(cluster3[,2:3],pch=3) +points(centroid1[1],centroid1[2],pch=20,col="blue") +points(centroid2[1],centroid2[2],pch=20,col="blue") +points(centroid3[1],centroid3[2],pch=20,col="blue") +abline(v=0,lty=2) +abline(h=0,lty=2) + +dev.off() + +write.table(data, file=outputFile, quote=FALSE, col.names=FALSE) + + diff --git a/data/cluster/schools/README.txt b/data/cluster/schools/README.txt new file mode 100644 index 0000000..a42a22a --- /dev/null +++ b/data/cluster/schools/README.txt @@ -0,0 +1,18 @@ +Achievement Test Scores, New Haven Schools + +Measurements at the beginning of the 4th grade (when the national average is 4.0) and of the 6th grade in 25 schools in New Haven. + +Variables: + + 4th grade reading + 4th grade arithmetic + 6th grade reading + 6th grade arithmetic + +So, a line like + +BARNARD 3.9 3.8 5.9 6.2 + +means that Barnard school had a 3.9 for 4th graders' reading, 3.8 for 4th graders' arithmetic, 5.9 for 6th graders' reading, and 6.2 for 6th graders' arithmetic. + +Data obtained from: http://www.uni-koeln.de/themen/statistik/data/cluster/ diff --git a/data/cluster/schools/achieve.dat b/data/cluster/schools/achieve.dat new file mode 100644 index 0000000..c12957c --- /dev/null +++ b/data/cluster/schools/achieve.dat @@ -0,0 +1,25 @@ +BALDWIN 2.7 3.2 4.5 4.8 +BARNARD 3.9 3.8 5.9 6.2 +BEECHER 4.8 4.1 6.8 5.5 +BRENNAN 3.1 3.5 4.3 4.6 +CLINTON 3.4 3.7 5.1 5.6 +CONTE 3.1 3.4 4.1 4.7 +DAVIS 4.6 4.4 6.6 6.1 +DAY 3.1 3.3 4.0 4.9 +DWIGHT 3.8 3.7 4.7 4.9 +EDGEWOOD 5.2 4.9 8.2 6.9 +EDWARDS 3.9 3.8 5.2 5.4 +HALE 4.1 4.0 5.6 5.6 +HOOKER 5.7 5.1 7.0 6.3 +IVY 3.0 3.2 4.5 5.0 +KIMBERLY 2.9 3.3 4.5 5.1 +LINCOLN BASSETT 3.4 3.3 4.4 5.0 +LOVELL 4.0 4.2 5.2 5.4 +PRINCE 3.0 3.0 4.6 5.0 +ROSS 4.0 4.1 5.9 5.8 +SCRANTON 3.0 3.2 4.4 5.1 +SHERMAN 3.6 3.6 5.3 5.4 +TRUMAN 3.1 3.2 4.6 5.0 +WEST HILLS 3.2 3.3 5.4 5.3 +WINCHESTER 3.0 3.4 4.2 4.7 +WOODWARD 3.8 4.0 6.9 6.7 diff --git a/homework/hw3/hw3_answers.txt b/homework/hw3/hw3_answers.txt new file mode 100644 index 0000000..99803f9 --- /dev/null +++ b/homework/hw3/hw3_answers.txt @@ -0,0 +1,52 @@ +Applied-NLP, Homework 3 Answers + +Name: +EID: + +Link to applied-nlp fork: + +-------------------------------------------------------------------------------- + +Problem 1 + +Part (b): Provide the requested output. + + +Problem 2 + +* Provide th command line call and the output. + + +Problem 3 + +Part (a): Provide the clusters and any comments. + + +Part (b): Discuss outliers. + + +Part (c): Your interpretation for output when k=4. + + +Problem 4 + +* Describe what you found. + + +Problem 5 + +* Describe result of using z-score transform on the simple features. + + + +Problem 6 + + + +Problem 7 + + + + + + diff --git a/lib/pca_transform-0.7.2.jar b/lib/pca_transform-0.7.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..dac0390a2563569ac6bcc7911172e7647b01719e GIT binary patch literal 11760 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 A9{>OV literal 0 HcmV?d00001 diff --git a/src/main/scala/appliednlp/app/Cluster.scala b/src/main/scala/appliednlp/app/Cluster.scala new file mode 100644 index 0000000..93bbb9b --- /dev/null +++ b/src/main/scala/appliednlp/app/Cluster.scala @@ -0,0 +1,72 @@ +package appliednlp.app + +import org.apache.log4j.Level +import org.apache.log4j.Logger +import nak.cluster.Point +import nak.cluster.ClusterConfusionMatrix +import nak.cluster.ClusterReport +import nak.cluster.Kmeans +import nak.cluster.DistanceFunction +import nak.cluster.PointTransformer + +import appliednlp.cluster._ + +/** + * A standalone object with a main method for reading an input file and running + * k-means with different options. + */ +object Cluster { + + def main(args: Array[String]) { + // Parse and get the command-line options + val opts = ClusterOpts(args) + + // This tells the k-means algorithm how much debugging information to show you + // while you run the algorithm. + val logLevel = if (opts.verbose()) Level.DEBUG else Level.INFO + Logger.getRootLogger.setLevel(logLevel) + + // Your code starts here. You'll use and extend it during every problem. + + + } + +} + + +/** + * An object that sets of the configuration for command-line options using + * Scallop and returns the options, ready for use. + */ +object ClusterOpts { + + import org.rogach.scallop._ + + def apply(args: Array[String]) = new ScallopConf(args) { + banner(""" +Cluster application using nak.cluster.Kmeans + +The distance functions are standard cosine, euclidean, and manhattan. + +The transform option is one ident, zscore, and pca. + - ident: no transformation of the input points + - zscore: use standard z-scores in each dimension to scale the points + - pca: scale the points with z-scores, then run PCA and use (as transformed dimensions) only the principle components that explain 95% of the variance + +For usage see below: + """) + + val featureTypes = Set("standard","schools","countries","fed-simple","fed-full") + val transformers = Set("i","ident","z","zscore","p","pca") + val distanceFunctions = Set("c","cosine","e","euclidean","m","manhattan") + val transform = opt[String]("transform", default=Some("ident"), validate = transformers, descr = "The transformation to use. Possible values: " + transformers.toSeq.sorted.mkString(",") ) + val distance = opt[String]("dist", default=Some("cosine"), validate = distanceFunctions, descr = "The distance function to use. Possible values: " + distanceFunctions.toSeq.sorted.mkString(",") ) + val features = opt[String]("features", default=Some("standard"), validate = featureTypes, descr = "The type of features to extract. Possible values: " + distanceFunctions.toSeq.sorted.mkString(",") ) + val k = opt[Int]("num-clusters",short='k', required=true, validate = (0<), descr="The number of clusters to find.") + val help = opt[Boolean]("help", noshort = true, descr = "Show this message") + val verbose = opt[Boolean]("verbose") + val showCentroids = opt[Boolean]("output-centroids",short='c', descr="Show centroids.") + val report = opt[Boolean]("output-report",short='r', descr="Show full cluster report.") + val filename = trailArg[String]("filename", descr = "The input filename.") + } +} diff --git a/src/main/scala/appliednlp/cluster/PointCreator.scala b/src/main/scala/appliednlp/cluster/PointCreator.scala new file mode 100644 index 0000000..baf63a0 --- /dev/null +++ b/src/main/scala/appliednlp/cluster/PointCreator.scala @@ -0,0 +1,139 @@ +package appliednlp.cluster + +import nak.cluster._ +import nak.util.CollectionUtil._ +import chalk.util.SimpleTokenizer + +import org.apache.log4j.Logger +import org.apache.log4j.Level + +/** + * Read data and produce data points and their features. + * + * @param filename the name of the file containing the data + * @return a triple, the first element of which is a sequence of id's + * (unique for each row / data point), the second element is the sequence + * of (known) cluster labels, and the third of which is the sequence of + * Points to be clustered. + */ +trait PointCreator extends (String => Iterator[(String,String,Point)]) + +/** + * Read data in the standard format for use with k-means. + */ +object DirectCreator extends PointCreator { + + def apply(filename: String) = List[(String,String,Point)]().toIterator + +} + + +/** + * A standalone object with a main method for converting the achieve.dat rows + * into a format suitable for input to RunKmeans. + */ +object SchoolsCreator extends PointCreator { + + def apply(filename: String) = List[(String,String,Point)]().toIterator + +} + +/** + * A standalone object with a main method for converting the birth.dat rows + * into a format suitable for input to RunKmeans. + */ +object CountriesCreator extends PointCreator { + + def apply(filename: String) = List[(String,String,Point)]().toIterator + +} + +/** + * A class that converts the raw Federalist + * papers into rows with a format suitable for input to Cluster. As part of + * this, it must also perform feature extraction, converting the texts into + * sets of values for each feature (such as a word count or relative + * frequency). + */ +class FederalistCreator(simple: Boolean = false) extends PointCreator { + + def apply(filename: String) = List[(String,String,Point)]().toIterator + + /** + * Given the text of an article, compute the frequency of "the", "people" + * and "which" and return a Point per article that has the frequency of + * "the" as the value of the first dimension, the frequency of "people" + * for the second, and the frequency of "which" for the third. + * + * @param texts A sequence of Strings, each of which is the text extracted + * for an article (i.e. the "text" field produced by + * FederalistArticleExtractor). + */ + def extractSimple(texts: IndexedSeq[String]): IndexedSeq[Point] = { + Vector[Point]() + } + + /** + * Given the text of an article, extract features as best you can to try to + * get good alignment of the produced clusters with the known authors. + * + * @param texts A sequence of Strings, each of which is the text extracted + * for an article (i.e. the "text" field produced by + * FederalistArticleExtractor). + */ + def extractFull(texts: IndexedSeq[String]): IndexedSeq[Point] = { + Vector[Point]() + } + +} + +object FederalistArticleExtractor { + /** + * A method that takes the raw Federalist papers input and extracts each + * article into a structured format. + * + * @param filename The filename containing the Federalist papers. + * @return A sequence of Maps (one per article) from attributes (like + * "title", "id", and "text") to their values for each article. + */ + def apply(filename: String): IndexedSeq[Map[String, String]] = { + + // Regex to identify the text portion of a document. + val JustTextRE = ( + """(?s)\*\*\* START OF THIS PROJECT GUTENBERG.+""" + + """\*\*\*(.+)\*\*\* END OF THIS PROJECT GUTENBERG""").r + + // Regex to capture different parts of each article. + val ArticleRE = ( + """(?s)(\d+)\n+""" + // The article number. + """(.+?)\n+""" + // The title (note non-greedy match). + """((?:(?:For|From)[^\n]+?)?)\s+""" + // The publication venue (optional). + """((?:(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday).+\d\d\d\d\.)?)\n+""" + // The date (optional). + """((?:MAD|HAM|JAY).+?)\n+""" + // The author(s). + """(To the [^\n]+)""" + // The addressee. + """(.+)""" // The text. + ).r + + val book = io.Source.fromFile(filename).mkString + val text = JustTextRE.findAllIn(book).matchData.next.group(1) + val rawArticles = text.split("FEDERALIST.? No. ") + + // Use the regular expression to parse the articles. + val allArticles = rawArticles.flatMap { + case ArticleRE(id, title, venue, date, author, addressee, text) => + Some(Map("id" -> id.trim, + "title" -> title.replaceAll("\\n+", " ").trim, + "venue" -> venue.replaceAll("\\n+", " ").trim, + "date" -> date.replaceAll("\\n+", " ").trim, + "author" -> author.replaceAll("\\n+", " ").trim, + "addressee" -> addressee.trim, + "text" -> text.trim)) + + case _ => None + }.toIndexedSeq + + // Get rid of article 71, which is a duplicate, and return the rest. + allArticles.take(70) ++ allArticles.slice(71, allArticles.length) + } + +}