NLTK is great for _learning_ NLP, but Python is much too slow for scalable deep NLP (by which I mean tagging and parsing, as opposed to TF-IDF etc). Also parallelization can become a problem because of the GIL. It's a real shame they chose Python actually, because otherwise it's a superbly structured, documented, and maintained project.
Hmm, I think Python was an excellent choice; what other platform would you suggest? IMO being "superbly structured, documented and maintained" is not a magical property acquired by luck, but rather connected to the platform of choice.
Btw for performance, whenever pure Python is indeed "much too slow" (profile?), there's the option of C extension modules. The NumPy or SciPy libraries are good examples: used in hardcore numerical computing aka the epitome of I-NEED-IT-TO-RUN-FAST!, but still Python.
And not to nitpick ;) but GIL only affects multi-threading; other modes of "parallelization" are reasonably straightforward and some even built-in (import multiprocessing).
Yes, that is how you make fast libraries in Python. But, nltk isn't written using C extension modules. All of this NLP is done in pure python. You could rewrite what needs to be fast with C extensions, but then what's the point of using nltk in the first place?
Nltk was never intended to be a way to do production-grade natural language processing. It's primary objective has been to teach users natural language processing with clear, well-commented code and documentation. If this isn't your situation, please use something else.
What's the point? That half of your code base has already been written for you. Rewriting performance critical parts is a lot of work, and not having to rewrite a corpus reader, tree transformations, or evaluation procedure is an advantage; aside from being an excellent prototype platform. With Cython you can seamlessly combine Python code such as that from NLTK with your own optimized code. This was indeed never the intention of NLTK, but I have found the general idea of combining arbitrary Python code with optimized Cython code to work very well. The end result is a much less bloated code base in comparison to something like Java or C++.
Like sports, instruments, and any other developed skill, there will be days you feel like it and days you don't. The key IMO is to pace yourself: don't overwork on days you feel like it, and force yourself to work -- even if just a little bit -- on days you don't.
For software, having your code in a public repository like GitHub provides some socially-based motivation to keep your projects active. Just the simple act of regularly committing small changes can provide you with a sense of momentum -- and bonus points for raising (and fixing) issues, etc.
For days that you aren't on your A-game, it's also helpful to have made a TODO list from a day when you were thinking more clearly, so you can work on a relatively simple task just to maintain momentum.
Another key is to have a "big picture" goal that your projects are helping you towards. There's no reason you can't start now putting together the basic structural code (say, some core machine learning algorithms) for a later startup -- or even try your hand at writing an end-to-end web app and hosting it for free on Amazon. Whatever your end goals are, you'll be more motivated if you are writing code that helps you get there, not just code for learning's sake.
While they were still choosing targets that either "deserved" it for some moderately reasonable ideological reason (Sony) or should have top-notch security (FBI), yes. Now that they're choosing targets at random, no.
Especially since this is all so likely to end in an acceleration of government crackdown on web freedoms.
Well, first of all, a traditional student will be out by age 26-27 not 40. Secondly, PhD students in the sciences are paid. Not much, admittedly -- about $22k, on average -- but enough that you have positive cashflow.
That's true, although the average age for a scientist to land a tenure track position is in their late 30s, after several postdocs (where you are barely paid more than a graduate student). Ican't find the citation at the moment, but I believe it came from the NIH.
Postdocs nowadays tend to make something on the order of $50K (as compared to maybe $25K for a grad student). It's not big face money, but it's a big step up from grad student life.
To be fair, there are also private research foundations and private sector companies -- i.e., drug or medical device companies that also hire biologists. You can also pivot somewhat easily into public health and work for e.g., the Department of Health. And if all else fails, teach high school or lower biology.
"And if all else fails, teach high school or lower biology."
With yet more years in education to get your teacher certificate, while your student debt accrues interest and grows, and which you will have to pay down in a career whose income potential has quite likely already peaked and is quite likely headed down over the next 20 years while you are competing for salary against people who don't need to pay down anywhere near as much debt and with additional qualifications that the schools don't care about at all.
In the US, PhD students in biology are paid tuition plus salary. So assuming his undergraduate student loans were subsidized, a PhD who decided to teach high school would not be in a much different financial position than a recently graduated Science B.Ed.
Not to mention that there are magnet high schools that do very much like the perceived prestige of having PhD level instructors. Your typical public high school wouldn't care, of course.
Not to mention that there are magnet high schools that do very much like the perceived prestige of having PhD level instructors. Your typical public high school wouldn't care, of course.
That's not true everywhere. Where I live, there's nearly unlimited public school choice and school districts must reimburse each other at a state-mandated rate for transferred students. Especially in poorer districts, this rate is generally higher than the per-student funding the schools receive for in-district students. (I've heard it's up to $1500/year more.) Individual schools that can recruit students by offering specialized programs (languages, music, science, etc.) can increase their funding quite a bit.
I assume the rationale is that it's the student's fault if he chooses a major (e.g., sociology) that doesn't cover interest afterwards.
Well, if you say so? Of course, it grossly oversimplifies reality. Job markets are complex; lack of success cannot always be traced back to bad choices. Also, you could level a very similar objection against health insurance. Personally, I'm not comfortable with that kind of senseless cut-throat capitalism.
In the EU, I assume the OP was alluding to the fact that everyone else is forced to pay (most of) your college costs. Therefore, you owe very little debt upon graduation. Private gains, socialized losses.