
Computer Science


Korp and Python. Access corpora from your Python code!
If you have done language technology in a Nordic country, you have probably heard about Korp. And by now, you have probably developed some sort of a love-hate relationship to it. My initial thought was: Korp is nice, but so what 🤷🏼♂️, I need to access it programmatically for it to serve any use. The fact that the API description is somewhat hidden online and that not all Korp services are open about the url of their API doesn't really help at all. 😩
Luckily, once again, yours truly has been typing in some code to make your life easier. 🤓 Behold, my very own python library for querying Korp. 😊 (more…)

Cognitive modelling – bringing computers closer to human brains
Cognitive science's gift to the artificial intelligence development is, by no doubt, cognitive modelling. In short, cognitive modelling is about coming up with some sort of a mathematical or computational model of how the brain operates. These models can then be used in various AI tasks to solve issues the human brain excels at. In this post we will go through three different ways to do cognitive modelling. 😊 (more…)

Create Finnish sentences computationally in Python (NLG)
If you are interested in generating Finnish with a computer (NLG), you have probably already run into the problem of the complex morphology and syntax of Finnish. In addition to knowing how to inflect words, you have to take agreement into account. That for example, the verb agrees with the subject's number and person: minä syön, sinä syöt and so on. And there's more: case governance has to be solved too. A verb takes its direct object in a certain case, for example, you would say uneksin autosta but näen auton. Such is the problem of natural language generation. 🤷🏼♂️
You are in luck, I have resolved this issue and created a kick-ass python library called syntax maker. Just for you, my friend, free to use. Are you ready to unleash the power of NLG? 😊😊 (more…)

VirtualBox: access from the host and other virtual machines
Whenever I have to setup a virtual machine on VirtualBox that has a web service running, I start scratching my head. 😅 Especially if I need to connect to it from the host, let alone other virtual machines. And frankly, I am so done with googling it up every time. So now, to remind my future self and to tell you how it’s done, I will walk us through it. 😃 (more…)

Harness cognitive walkthrough to improve usability
Previously I have written about how usability is defined. Now I am going to discuss how a method known as cognitive walkthrough can be used to evaluate the usability of an application without hiring test users. 😲😊 The cognitive walkthrough is useful in capturing learnability issues. (more…)

Logitech MX Master – the mouse you need
I have had a Logitech MX Master mouse for half a year now, and so far, I can tell, it's the best mouse I have ever had. It's lightyears ahead of the other pointing devices I have been forced to use over the years. This review focuses on the three main aspects of the mouse: customizability, ergonomics and connectivity. The mouse is available for purchase on AliExpress. (more…)

Prototyping in Human-Computer Interaction
Making an interface is a time consuming task. Hardly any framework makes it as easy as they promise. And sometimes you just need to prototype an idea to see if it really works. That's when different ways of prototyping come in handy. 😊 (more…)

Using HFST on Python
HFST (Helsinki Finite-State Transducer Technology) is a neat tool for modelling morphology of languages in a computational way. The problem is that currently, the Python API is under-documented. But fear not, in this post you will learn how to load optimised lookup files in Python and use them to analyse and generate word forms. 😃
(more…)

Creating useful software – improve UX
When making software, one will automatically want to believe in the result being useful. Why wouldn't it be? After all, the software product is built to solve a task, so it should be useful for the task, right? This is not necessarily the case. Nielsen defines usefulness of software by two key terms: utility and usability. In this post, I am going to walk you through these concepts. 🚶🏼 (more…)