231 karma · joined April 24, 2007
Feel free to say hi - toby@textrazor.com
http://www.uscis.gov/working-united-states/permanent-workers...
Instead I wonder if it would be better to use the context of each token to mine significant ngrams from the rest of Shakespeare's work and filter for rhymes with a phoenetic hash like Metaphone.
I wonder if this is related to the new Chrome spelling suggest feature (http://mashable.com/2013/03/29/chrome-spell-check/), and if that means there's a new private undocumented API for people to play with.
Also we found the Stanford tools (and the other open source NLP tools) were difficult to integrate into "production" apps for various reasons. One big one was performance - we aim to run the full parsing and extraction pipeline on an average news story in a few hundred milliseconds, which can be an order of magnitude faster than the others.
We also expose all these results to a Prolog interpreter on our backend and allow you to add custom logic to mashup and extend all of our results, as well as provide a much easier integration experience.
Totally agree with you on the pricing front, we're still finalising the details there. We're aiming to be fully transparent with both the technical and business side of things.
It seems in the US the only people you can buy from own the physical infrastructure. Once one company has already built their network in an area they form a natural monopoly - it's not economical for competitors to come in and rebuild the network when they know they'll only be able to get a certain % of households to switch.
Given the wide range of unstructured sources Watson uses, and given that the linguistic rules they use to extract facts are likely to frequently change, I don't think it's unreasonable to assume they'll have a process to make building its knowledgebase and models from sources fairly straightforward.
It's better than the alternatives though, I would be interested to hear how you handle this in your version. Leaving the behaviour undefined for non-existent keys is likely to cause far worse bugs, throwing an exception would be inconsistent with the rest of the stl.
The could have left it out altogether, but would mean losing some nice properties - operator[] returning a reference makes it possible to assign into the map directly ( a[3] = 5; ). Also since the value is default initialized, you can write something like a counter easily, much like a python defaultdict:
for (auto id in ids) {
a[id] += 10;
}
You can always stick to .find and .insert if you prefer the more explicit behaviour.