Top all-time · #8705
Computational Linguistics
Personal blog · honnibal.wordpress.com · on HN as syllogismprogrammingaidata
Computational Linguistics is a personal blog at honnibal.wordpress.com about programming, ai and data. Since 2010, 8 different Hacker News readers have linked it 19 times, most often “NLP explained: A good POS tagger in 200 lines of Python”. The last post was in 2015, but the archive is still widely read.
Too few sampled comments (4) to say how often HN recommends it.?
Why HN links it
HN readers link this blog for practical NLP and Python posts: a Cython speed tip, a short POS tagger written in Python, and a beginner's guide to recurrent networks and LSTMs. One commenter calls the tagger post worth checking out.
Summarised by Claude from a sample of 4 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Demystifying NLP
Most-linked posts?
- NLP explained: A good POS tagger in 200 lines of Python3 people · 4 mentions · first linked 2013-09-13
- /2013/09/11/a-good-part-of-speechpos-tagger-in-about-200-lines-of-python/2 people · 3 mentions · first linked 2014-04-28
- /2014/10/21/writing-c-in-cython/2 people · 2 mentions · first linked 2014-12-19
- /2 people · 2 mentions · first linked 2010-10-18
- Parsing English with 500 lines of Python (2013)2 people · 2 mentions · first linked 2014-04-28
What Hacker News says?
I write academic papers, and I've started writing blog posts about them, and I think this post doesn't cover one of the main reasons that academic papers are less accessible to non-specialists. When you write an academic paper, it's basically a diff on previous work. It's one of the most important considerations when the paper first comes out. The reviewers and the people up-to-the-minute with the literature need to…
Comment linking /2013/09/11/a-good-part-of-speechpos-tagger-in-about-200-lines-of-python/
on “Machine learning is easier than it looks”Submitted Parsing English with 500 lines of Python (2013) as a story · 285 points
HN discussionI only do data analysis but cython [0] is pretty much the fastest way for me to produce fast code. I tried to do some things in Rust but my productivity fell, and I could not figure out how to fix some error messages. [0] https://honnibal.wordpress.com/2014/10/21/writing-c-in-cytho...
Comment linking /2014/10/21/writing-c-in-cython/
on “Rust for Python Programmers”Submitted Writing C in Cython as a story · 195 points
HN discussionThe truth is nltk is basically crap for real work, but there's so little NLP software that's put proper effort into documentation that nltk still gets a lot of use. You can work your way down the vast number of nltk modules, and you'll find almost none of them are useful for real work, and those that are, ship a host of alternatives that are all much worse than the current state-of-the-art. nltk makes most sense as…
Comment linking /2013/09/11/a-good-part-of-speechpos-tagger-in-about-200-lines-of-python/
on “Parsing English with 500 lines of Python (2013)”Submitted NLP explained: A good POS tagger in 200 lines of Python as a story · 5 points
HN discussionIt's worth checking out the OP's previous post on this: A good POS tagger in about 200 lines of Python : http://honnibal.wordpress.com/2013/09/11/a-good-part-of-spee... The OP says his PyGreedyAP gets 96.8% accuracy in 12s (vs NLTK's 94% at 236s)
Comment linking /2013/09/11/a-good-part-of-speechpos-tagger-in-about-200-lines-of-python/
on “Parsing English with 500 lines of Python (2013)”Submitted A good Part Of Speech tagger in about 200 lines of Python as a story · 1 points
HN discussionTextBlob is a wrapper around NLTK and Pattern. Those libraries don't use very sophisticated statistics, so in 2013 I wrote a small Python POS tagger for TextBlob, which performs much better: https://honnibal.wordpress.com/2013/09/11/a-good-part-of-spe... spaCy's POS tagger works like the one in the blog post, but it's implemented in Cython, and has some extra features. Pattern has some nice morphological processing…
Comment linking /2013/09/11/a-good-part-of-speechpos-tagger-in-about-200-lines-of-python/
on “SpaCy: Industrial-strength NLP with Python and Cython”Use Cython. It's a hassle getting your head around it, and getting it set up, but you'll never look back once you do. If you rely on PyPy, you get what you're given and then you're stuck. You can't really guess how to rewrite your code to make it faster. A small blog post I wrote on this: https://honnibal.wordpress.com/2014/10/21/writing-c-in-cytho... Here's a non-trivial example: https://github.com/honnibal/thinc/b…
Comment linking /2014/10/21/writing-c-in-cython/
on “Nuitka: a Python compiler”Here are two tutorials I've written on natural language understanding: https://honnibal.wordpress.com/2013/09/11/a-good-part-of-spe... https://honnibal.wordpress.com/2013/12/18/a-simple-fast-algo...
Comment linking /2013/12/18/a-simple-fast-algorithm-for-natural-language-dependency-parsing/
on “Artificial-Intelligence Experts Are in High Demand”You've got the data, so that's actually the hard part done. Now just pick some method and don't worry too much about the details. Go with the easiest route first, for example: each emoji is a word, no need to treat a smileyface differently in your model from a word like "happy", _until you see how the representation actually matters_, only then will you know what the right way is. If you pick a complicated method fi…
Comment linking /2013/09/11/a-good-part-of-speechpos-tagger-in-about-200-lines-of-python/
on “A Beginner’s Guide to Recurrent Networks and LSTMs”Well, here's a less trivial example: https://github.com/syllog1sm/redshift/blob/develop/redshift/... The task/algorithm is roughly (but not precisely) the one described here: http://honnibal.wordpress.com/2013/12/18/a-simple-fast-algor... If you just scroll through parser.pyx, you might get the flavour of why this is better than straight C. The "core", or "skeleton" of the code is all C-typed, but I "fall-back" to P…
Comment linking /2013/12/18/a-simple-fast-algorithm-for-natural-language-dependency-parsing/
on “Writing C in Cython”Here's the averaged perceptron used in a part-of-speech tagger: http://honnibal.wordpress.com/2013/09/11/a-good-part-of-spee... Because the learner is quite a good fit for the task, it performs better in terms of speed/accuracy trade-off than many other algorithms, such as CRF. A follow up post for statistical dependency parsing should be finished in about a month (it's down my queue...)
Comment linking /2013/09/11/a-good-part-of-speechpos-tagger-in-about-200-lines-of-python/
on “CMU's Introduction to Machine Learning Course”http://honnibal.wordpress.com/
Comment linking /
on “Naive Bayes and Text Classification I – Introduction and Theory”Do you want to talk about the summarisation algorithm at all? I wrote a little blog post about a trivial extractive summarisation system a while ago ( http://honnibal.wordpress.com/ ), and there's a long literature on summarisation in NLP. A lot of the techniques are a bit computationally costly and complicated to be practical, though. Meanwhile abstractive summarisation still hasn't properly gotten off the ground.
Comment linking /
on “Tldr.it - Summarizer for RSS feeds and other web pages (built in 48 hours)”That's fine, please link to http://honnibal.wordpress.com . I'll probably write a short note on it, I've been meaning to say more about "my way" of using Cython. Edit: Submitted here. https://news.ycombinator.com/item?id=8483872
Comment linking /
on “High Performance Python Extensions: Part 1”Let me know if you're interested in licensing better syntactic/semantic parsing technologies. I'm the developer of the Redshift NLP library ( http://github.com/syllog1sm/redshift ). Currently the software lacks documentation, but it offers a good speed/accuracy trade-off. Documentation and a good tokenizer are coming. You can read a tutorial for a simplified version of the algorithm on my blog: http://honnibal.wordp…
Comment linking /
on “NLUlite: Natural language parser and database”