Severin Perez

Recent Posts

Introduction to Search Relevance Models

October 13, 2020
Search relevance is a difficult problem in information retrieval. How do you ensure that you get the best results back from searching a collection of documents? Let's explore a few basic strategies, including simple searching, term-frequency searching, and TF-IDF searching.

On Writing Technical Blogs

October 08, 2020
Writing is humanity’s superpower — when done well, it informs, provokes, and entertains. Perhaps that is why blogging is so popular among programmers. We’re a naturally curious community and sharing knowledge is an integral part of our ethos.

Influential NLP Papers on Google Scholar

September 05, 2020
Natural language processing is a complex and evolving field. Part computer science, part linguistics, part statistics--it can be a challenge deciding where to begin. One starting place is to look at the most influential papers in academic literature--if you can master these papers, then you'll be well on the path to becoming an NLP expert.

Key Python Libraries for NLP

August 30, 2020
One of the great things about using Python for natural language processing (NLP) is the large ecosystem of tools and libraries. From tokenization, to machine learning, to data visualization--Python has something for every NLP task in your workflow. Of course, choosing the right tool isn't always so easy.

On Deep Work

March 09, 2020
In 2016, Cal Newport introduced a new term into the business lexicon: deep work. It’s an idea that has since taken hold of disaffected knowledge workers everywhere, due in no small part to the promise that they could finally start doing what they were hired to do--create value. More importantly, intertwined with this promise is something more nebulous--something fragile and fleeting. Dare we call it self-actualization?

Ditch the Daily News Habit

June 18, 2019
Much has been made of the question about what it is to be an informed citizen. We’re instructed to “read widely,” “engage in debate”, “seek out new viewpoints,” etc. The message is clear: the more information you consume, the better informed you will be. On its face, this is reasonable and well-intentioned advice. The problem is that it’s also completely wrong.

The Secret Lives of Memes

November 03, 2018
In the modern sense, we think of a meme as a funny photo, or catchphrase, or joke that comes into our lives for a fleeting moment, typically via the Internet, and then goes on its merry way. But there is something arguably more sinister to the process. To us, the exchange of a meme is a bit of levity, but to the meme, the exchange is a question of survival. To propagate, to live, the meme must spread.

Thematic Configuration with the Abstract Factory Pattern

October 17, 2018
In object-oriented design, one of the principle aims is to produce code that is flexible, maintainable, and reusable. One of the ways to do this is to use abstractions in your code rather than concretions. The more your objects know about how one another are implemented, the more dependencies there are in your system. As the number of dependencies grows, the potential for cascading breakage grows as well. But what happens when you have a system that requires certain objects to come from the same family?

Extending Object Behavior with the Decorator Pattern

October 13, 2018
In some situations, it may be preferable not to mutate a given object. Or more likely, you won’t even have the option of mutating an object because it may come from a codebase over which you have no control (such as an external library). Such cases are relatively common; however, it’s still possible to enhance an immutable object’s behavior. One effective means to do so is with the decorator pattern.

© Severin Perez, 2021