-
De-Politicizing the Web
A relative on Facebook shared an image saying that it would be nice if we could hide people’s comments if they are political. So, I did just that. This was my first introduction to writing a web extension/plugin. It’s actually very easy using Google’s documentation and code samples. I came up with political keywords and…
-
Data Mining: Super Bowl Pools
This year’s Super Bowl wasn’t a good one. Not because I care who won- I don’t- but because I lost every Super Bowl box pool I entered. Granted, law of large numbers, etc. this can happen. But I wanted to see if my complaints were justified. Let’s take a look at my work pool. I…
-
NLP: Part III
Having moved on from the series of books where third-person narrative was used, and chapters weren’t titled with the POV character, I had little reason to continue the project, and a lack of forward momentum which would have kept me intrigued. But what follows was where I left it off and where NLP fell short…
-
NLP: Part II
I’ve made some progress on my initial plan to use natural language processing to determine the narrator in text. This is only really useful if the narrative is third-person limited. I found that the problem domain is not really well defined, and that the solutions that do exist are imperfect. This is, no doubt, my…
-
NLP: Part I
Natural Language Processing (NLP) is a pretty cool thing to have on your resume right? So, I figured I’d repurpose an old personal project to be more abstract, and in the process, incorporate NLP. The Challenge Here is the challenge: given a book with a number of different point of view (POV) characters, figure out…
-
Query Builder: Part 4: Back End
To evaluate expressions in Java, at first we used GroovyShell, but noticed abysmal performance. Based on this post, we retooled, and went with the Java Scripting engine (JSR 223) , and used LuaJava as the engine. It performed much more reasonably. Since Lua doesn’t have a regular expression parser, we fall back to using BeanShell…
-
Query Builder: Part 3: Front End
We ended up using Mistic100’s Query Builder for the UI portion of this project. The result was something like this: The left hand side has the criteria, and right hand side has the actions. Since the production build of this is targeted at a specific sector, and gives private information away, I had to blur…
-
Query Builder: Part 2: The Data Model
The data model for this project may seem overly complicated or obscure. The reason behind this is because Boolean statements like “A or B or (C and D)” have a certain nesting level that requires some level of precedence as these statements are evaluated. Nesting Levels In that last statement, A and B are at…
-
Query Builder: Part I: Introduction
Training a program how to (insert verb here) boils down to defining the rules, and the actions.