There is a java/scala project providing R like statistical computation:
HN user
haifeng
They are more Java developers than python developers :)
This software has its own visualization package. See it at
The project homepage says "Data scientists and developers can speak the same language now!". So it is surely easier to producitionize a ML project without rewriting the algorithms after the data scientists work out the model with R or Matlab.
Good eyes :) It should be a c&p error.
Is there something wrong in your code? I don't see the effect.
smile> val x = Array(1.0, 2.0, 3.0, 4.0)
x: Array[Double] = Array(1.0, 2.0, 3.0, 4.0)
smile> val y = Array(4.0, 3.0, 2.0, 1.0)
y: Array[Double] = Array(4.0, 3.0, 2.0, 1.0)
smile> x + y
res2: smile.math.VectorAddVector = Array(5.0, 5.0, 5.0, 5.0)
Just because you can?
Check out this script https://github.com/haifengl/unicorn/blob/master/shell/src/un..., which loads dbpedia graph into unicorn. You should be able to load ConceptNet without minor modifications. Later, you can refer a vertex by its string id.
It is on top of hbase, Cassandra, or accumulo. So yes, it is web scaled.
It is true. Unfortunately, the project was started several years ago and had nothing to do with the startup world. I would like to complain that VCs destroy another nice name with their hypes :(
Okay, everyone is hiding a unicorn in their closet :)
In most graph database, you find a vertex by filtering its properties, e.g. Gremlin graph query language. In Unicorn, you can do the similar with document vertices (it is, a vertex corresponding to a document in another table/collection). This is probably very nature in a business application. However, it is not very useful in your case as your vertices are abstract without any properties.
I guess what you want is some large scale graph analytics, which I suggest Spark GrpahX or other distributed graph computing engine.
Unicorn is designed for property directed multi-graphs.
When adding an edge, the end vertices are assumed existed. In your case, we could add a helper function to import a list of edges, similar to Spark GraphX.
http://www.eetimes.com/document.asp?doc_id=1329374
Google Preps for IBM, ARM Shift. ARM is not powerful enough. But big boys are preparing themselves to pull the trigger whenever it becomes ready.
The list can be very long. I am not sure if Windows 10 is perfect. For me, it is as perfect as Bold Touch 9930 to Blackberry.
pdf and epub are available at http://github.com/haifengl/bigdata/releases
It is not a bloated NLP library. Instead, it focuses on basic stuffs such as sentence splitter and tokenizer, bigram statistical test, phrase extractor, keyword extractor, stemmer, POS tagging, relevance ranking. Combined with various machine learning algorithms e.g. HMM, maxent, CRF, etc., you can work out advanced applications such as sentiment analysis, named entity recognition, etc.
I am not sure if typing can be added as a library. In terms of typed lambda calculus vs untyped lambda calculus, can we do this way?
But the idea of "layered" language is nice. In Scala, many features are not really from language itself, but from libraries.
Structural subtyping are mostly close to static polymorphism. After all, we just don't like inheritance, not dynamic polymorphism. Besides, interface and trait are not really inheritance although closely related.
Thanks for bring Rust into the topic. I know that it is very new. But still wonder if some real life projects are using it (except rustc).
An ML with many C notations :)
Agree. I like most parametric polymorphism too. The drawbacks are:
1. In C++, the compile error messages with templates are so hard to navigate. 2. In OCaml, sometimes we need pay attentions on the performance.
Interesting. It is more a design pattern rather than a language thing. But it is always good to design a consistent API across similar but not related classes.
Excellent point!
The project was started five years ago. It is not really about buzz words.
Maven pom.xml files are added. Thanks!
Yes, we don't want it depending on third parties.
It is Apache 2.0. The library has been developed for several years as close source. But now it is Apache 2.0 although the source files need to be updated. Don't worry.