w2v-server.pl: clean-up indentation and ad links to map texts
diff --git a/w2v-server.pl b/w2v-server.pl
index 138decd..77065ab 100644
--- a/w2v-server.pl
+++ b/w2v-server.pl
@@ -223,95 +223,97 @@
var svg;
function drawEmbedding() {
- $("#embed").empty();
- var div = d3.select("#embed");
-
- // get min and max in each column of Y
- var Y = T.Y;
-
- svg = div.append("svg") // svg is global
- .attr("width", 800)
- .attr("height", 800);
-
- var g = svg.selectAll(".b")
- .data(data.words)
- .enter().append("g")
- .attr("class", "u");
-
- g.append("text")
- .attr("text-anchor", "top")
- .attr("font-size", 12)
- .attr("fill", function(d) {
- if(d == data.target) {
- return "red";
- } else {
- return "#333"
- }
- })
- .text(function(d) { return d; });
-
- var zoomListener = d3.behavior.zoom()
- .scaleExtent([0.1, 10])
- .center([0,0])
- .on("zoom", zoomHandler);
- zoomListener(svg);
-}
-
-var tx=0, ty=0;
-var ss=1;
-var iter_id=-1;
-
-function zoomHandler() {
- tx = d3.event.translate[0];
- ty = d3.event.translate[1];
- ss = d3.event.scale;
- updateEmbedding();
-}
-
-var stepnum = 0;
-
-function stopStep() {
- clearInterval(iter_id);
-}
-
-function step() {
- var i = T.iter;
- if(i >= 1000) {
- stopStep();
- } else {
- var cost = T.step(); // do a few steps
- $("#cost").html("iteration " + i + ", cost: " + cost);
- updateEmbedding();
- }
-}
-
- function showMap(j) {
- data=j;
- T.iter=0;
- T.initDataRaw(data.vecs); // init embedding
- drawEmbedding(); // draw initial embedding
-
- if(iter_id >= 0) {
- clearInterval(iter_id);
+ $("#embed").empty();
+ var div = d3.select("#embed");
+
+ // get min and max in each column of Y
+ var Y = T.Y;
+
+ svg = div.append("svg") // svg is global
+ .attr("width", 800)
+ .attr("height", 800);
+
+ var g = svg.selectAll(".b")
+ .data(data.words)
+ .enter().append("g")
+ .attr("class", "u");
+
+ g.append("a")
+ .attr("xlink:href", function(word) {return "/?word="+word;})
+ .append("text")
+ .attr("text-anchor", "top")
+ .attr("font-size", 12)
+ .attr("fill", function(d) {
+ if(d == data.target) {
+ return "red";
+ } else {
+ return "#333"
}
- //T.debugGrad();
- iter_id = setInterval(step, 1);
- //step();
- }
-
-$(window).xxload(function() {
- $.getJSON( "http://klinux10/word2vec/dings.json", function( j ) {
- data = j;
- T.initDataRaw(data.vecs); // init embedding
- drawEmbedding(); // draw initial embedding
-
- // T.debugGrad();
- iter_id = setInterval(step, 1);
- // step();
-
- });
-});
-
+ })
+ .text(function(d) { return d; });
+
+ var zoomListener = d3.behavior.zoom()
+ .scaleExtent([0.1, 10])
+ .center([0,0])
+ .on("zoom", zoomHandler);
+ zoomListener(svg);
+ }
+
+ var tx=0, ty=0;
+ var ss=1;
+ var iter_id=-1;
+
+ function zoomHandler() {
+ tx = d3.event.translate[0];
+ ty = d3.event.translate[1];
+ ss = d3.event.scale;
+ updateEmbedding();
+ }
+
+ var stepnum = 0;
+
+ function stopStep() {
+ clearInterval(iter_id);
+ }
+
+ function step() {
+ var i = T.iter;
+ if(i >= 1000) {
+ stopStep();
+ } else {
+ var cost = T.step(); // do a few steps
+ $("#cost").html("iteration " + i + ", cost: " + cost);
+ updateEmbedding();
+ }
+ }
+
+ function showMap(j) {
+ data=j;
+ T.iter=0;
+ T.initDataRaw(data.vecs); // init embedding
+ drawEmbedding(); // draw initial embedding
+
+ if(iter_id >= 0) {
+ clearInterval(iter_id);
+ }
+ //T.debugGrad();
+ iter_id = setInterval(step, 1);
+ //step();
+ }
+
+ $(window).xxload(function() {
+ $.getJSON( "http://klinux10/word2vec/dings.json", function( j ) {
+ data = j;
+ T.initDataRaw(data.vecs); // init embedding
+ drawEmbedding(); // draw initial embedding
+
+ // T.debugGrad();
+ iter_id = setInterval(step, 1);
+ // step();
+
+ });
+ });
+
</script>
</head>
<body>