Making Text Mining Accessible to Any Developer & Non-Expert
blog.recursivity.com
blog.recursivity.com
Understanding your needs (or your company's needs) is where people with PhDs make their money. Machine learning isn't a panacea, and we won't be seeing a one-size-fits-all approach for awhile. Even though data has become more accessible, it might be noisy, incomplete, streaming, partially labeled, etc. This is why understanding exactly what you're trying to model with these algorithms is crucial and why "just applying" them is impractical at best and misleading at worst.
There are a number of text analysis SaaS offerings such as OpenCalais, AlchemyAPI, Zemanta, and OpenAmplify. They've all got impressive science under the hood, but none of them are accurate enough to be useful.
I spend most of my time these days thinking about why that is and what to do about it.
For systems to do better, they'll need to incorporate world knowledge; they'll need to test different interpretations of a text and select the ones that "make sense". This is likely to be a form of statistical inference rather than Cyc style logic.
Based on some systems I've worked with, I'd estimate that a space optimized "background" knowledge base that can estimate satisfiability in the common sense domain is on the order of 10-100 GB. It will puff out to at least an order of magnitude beyond that in the process of creating it.
Few users will have the ability to create a KB of that type, and it would be a serious thing to download and install.
Hosting the services of that kind of system in a SaaS manner makes a lot of sense.
- did not remove contradicting information from the training sets (two very similar vectors having contradicting labels)
- did not try enough feature selection algorithms
- did not estimate ALL learner parameters using the training sets with internal CV
- did not include domain knowledge
The last one refers to Paul Houle comment. Just, beside using tools like OpenCyc, WordNet, UMLS, there many other ways to embed domain expertise in an automated classification process. Injecting semantically related features into a vector representation of a document is extremely difficult. Forward feature selection doesn't work well for sparse and noisy data.
customers don't want to create training sets large enough to train text classifiers; often the number of documents they need to sort into a category is too small to fit in a category.
As for semantic indexing, it was hard to do in 2005. In 2011 it's easy. DBpedia and Freebase are a chromosome map for the human memome. With large amounts of instance information, it's possible to do things that a big rulebox can't.
These tools are aiming for the market segment that Cyc aimed for, but will use very different methodologies.
So given that, it's just worth learning enough program to do loops, conditionals, and regexes to get what you want.
For document clustering there are many good open source tools that people and companies can use. The commercial Ling Pipe product does a good job at sentiment analysis.
Obtaining, scrubbing, and generally curating the data is a pain point that users of this system may still need to worry about.
I wish this new business good luck, but there are definitely some real problems to work around. Perhaps we should go into business together :-)
As for business, you never know, just let me try to get off this Ramen based diet first. ;)
Yep, it would be very nice to have an API that would do all that for you. But that would require a group of at least 10 ML experts + 10 NLP experts + 20 domain experts. Still, I think it's doable and one should make small efforts to make it happen.
Marginal thoughts: decision trees are very bad for large p >> n problems - random forest might work, though. If TextMinr doesn't have radial SVM with auto-tuning then it will not cope with more difficult problems.
Decision trees are really only useful for problems where there is mutual exclusion between the different options, so they are definitely no silver bullet.
These are all choices that the user has to make. For something as seemingly simple as a decision tree, you can see why some knowledge is required before embarking on any machine learning mission.
http://scholar.google.com/scholar?q=%22hierarchical+text+cla...
TextMinr seems like a combination of those services along with the idea of 80legs.com? Is that correct?
The initial few beta releases will probably be aimed at people aiming to build applications themselves by providing them with API's, but hopefully we'll build out the analytics side of things soon enough so it becomes accessible to non-techies as well.
I've used a number of different systems (openCalais, AlchemyAPI, Zemanta...) in a variety of projects (Sentiment analysis, document classification...), and what I've found thus far is that while each system works extremely well within some restricted application classes, none come close to being general purpose APIs for the myriad applications developers try to throw at them.
A couple of pain points I've encountered are requiring a larger than expected corpus to generate meaningful data based on overly broad scope of the platform's analysis, or the lack of ability to apply negative signals from external sources. I find there tends to remain a large quantity of logic sitting rather redundantly on the application end to post-filter what's generated.
I don't pretend to understand the level of complexity involved or what's being worked on currently (not an NLP guy), but I do think there's a huge space to create publicly available text mining which can more effectively be applied to narrow domains.
autonomous helicopters
automated analysis of satellite imagery
search engines
visual search engine (google goggles)
virtual assistant (siri)
speech recognition
document classification (spam detectors)
question answering systems (ibm watson)
ad placement (google adsense)
computer guided surgery
high throughput imaging (chemo/bioinformatics)
product recommendation (amazon/netflix)
acturial science
industrial automation (inspection systems)
intelligent video surveillance
I think I should look into this. I sense that I lack a general understanding of what is really possible with ML. (My current understanding is weighted toward underestimating what is possible with ML).
As you can imagine, this generates tons of data. Our lab did a highthrouput screen of genetic mutants in neurons, and then used software to quantify basic morphology such as neurite length , arborization, and cell death.
Crystallographers will use a similar system to bathe their protein in billions of compounds to find the right combination for crystallizing. Automated cameras will capture images and try to identify which ones have crystallized so the researcher doesn't have to do it by hand.
(1) There's a lot more data now for people to use it with (2) Infrastructure for doing it is cheap and scalable (3) Automation is a key driver of progress, and ML algos are now getting good enough to automate a lot of stuff that humans used to have to do.
I think the online ML class (Stanford?) is helping to pump up interest in the laycrowd.
There's good business to be had in selling data though which is where these folks should probably divert their effort.