> Stub
Natural Language Processing for the Working Programmer
31–40 of 48 posts
Re: Natural Language Processing for the Working Programmer
#32Earlier quoted context omitted.
Not much. It's a more expressive and cleaner language, but on the other hand python has NLTK + scipy community. Scala (or Java) is another great NLP language. It's got decent libraries (openNLP, mallet, mahout), hadoop, and Scala is almost as nice as Haskell.
> Not much. It's a more expressive and cleaner language, but on the other hand python has NLTK + scipy community. Haskell's mechanisms for defining parsers, lexers, and other pattern match tools is so good it probably passes over the line from "pretty" to "objectively better". A lot of people who need to lex and parse data and then act on it turn to Haskell. It has some really remarkable and efficient libraries. And…
Re: Natural Language Processing for the Working Programmer
#33Re: Natural Language Processing for the Working Programmer
#34One of the authors here: we wrote this during the Pragmatic Programmer's writing month in 2010 and some more in 2011. Then I got caught up writing my PhD thesis, and now a new job (as an NLP engineer, but in Java ;)). So, the book is basically frozen. We hope to have more time in the future to continue the writing...
That was the first book in NLP (and the only for now) that I read. I've been interested both in NLP and Haskell. In that respect it fitted, thanks!
A few points to criticize. For the frequency list one should use multisets, not dictionaries. There are a few multiset packages at Hackage. Suffix arrays are badly explained. Monads - very badly. With tagging there was an impression that it could be explained simpler.
Many things are announced but not touched. The book is not a book in fact, it's more like an article. Perhaps reconsider it in that way? But oke, hopefully you will find time to continue it as a book.
Perhaps meanwhile you can recommend some other book to continue reading on NLP?
Re: Natural Language Processing for the Working Programmer
#35Re: Natural Language Processing for the Working Programmer
#36Earlier quoted context omitted.
I've used the Stanford NLP library extensively for NER. I made heavy use of it in my senior thesis project. It's pretty straightforward to use their library to read a document and output an XML file containing NER data (and lots of other fun stuff). For instance, from the sentence: > World War II, or the Second World War (often abbreviated as WWII or WW2), was a global military conflict lasting from 1939 to 1945, whi…
For those who want to play around with dynamic output: http://nlp.stanford.edu:8080/parser/ This is a bit more human friendly.
If you need an example sentence: "Stanford University is located in California. It is a great university."
I also know that Microsoft Research has a demo online of their NLP tools: http://msrsplatdemo.cloudapp.net/ (Silverlight required) I don't think you can download the tools though, but they do offer to provide you with an API token to call their service from their cloud.
Potential conflict of interest: I wrote parts of the CoreNLP visualiser.
Edit: Added example sentence.
Re: Natural Language Processing for the Working Programmer
#37One of the authors here: we wrote this during the Pragmatic Programmer's writing month in 2010 and some more in 2011. Then I got caught up writing my PhD thesis, and now a new job (as an NLP engineer, but in Java ;)). So, the book is basically frozen. We hope to have more time in the future to continue the writing...
Re: Natural Language Processing for the Working Programmer
#38One of the authors here: we wrote this during the Pragmatic Programmer's writing month in 2010 and some more in 2011. Then I got caught up writing my PhD thesis, and now a new job (as an NLP engineer, but in Java ;)). So, the book is basically frozen. We hope to have more time in the future to continue the writing...
Nice endeavor, but finished up as the most endeavors - unfinished. :) That was the first book in NLP (and the only for now) that I read. I've been interested both in NLP and Haskell. In that respect it fitted, thanks! A few points to criticize. For the frequency list one should use multisets, not dictionaries. There are a few multiset packages at Hackage. Suffix arrays are badly explained. Monads - very badly. With t…
Foundations of Statistical Natural Language Processing by Manning and Schütze
I have to say comments like yours are not really encouraging to continue writing ;).
Re: Natural Language Processing for the Working Programmer
#39Earlier quoted context omitted.
Nice endeavor, but finished up as the most endeavors - unfinished. :) That was the first book in NLP (and the only for now) that I read. I've been interested both in NLP and Haskell. In that respect it fitted, thanks! A few points to criticize. For the frequency list one should use multisets, not dictionaries. There are a few multiset packages at Hackage. Suffix arrays are badly explained. Monads - very badly. With t…
Speech and Language Processing by Jurafsky and Martin Foundations of Statistical Natural Language Processing by Manning and Schütze I have to say comments like yours are not really encouraging to continue writing ;).
Myself being in industry, I know how hard, near to impossible it is to find time for anything extra than work and family. And a decent book requires approximately the same amount of effort as finishing PhD. Perhaps that was my frustration coming out of the projects I had to abandon. :(
Thanks for refs!
Re: Natural Language Processing for the Working Programmer
#40Earlier quoted context omitted.
I've only played around with Haskell and NLP (using this guide, actually), but functional languages are a very nice fit for natural language processing, which often involves pipelining text (in the form of arrays or lists of characters) from function to function (tokenization->tagging->chunking->extraction). This fits the functional paradigm very well. I really like using NLTK (Python) but if I were more comfortable…
What worked for me was going through worked examples with IO, List, Maybe and State. You don't want to just do List, Maybe and Either or you'll associate it with holding onto particular data. You want to use highly disparate things so you can get to the fully abstract understanding. You might try to understand monoids first, because you already have familiarity with many applications of monoids. The realization "oh,…