Computer Science

How to use Omorfi for Finnish morphology

Omorfi is inarguably an amazing tool for processing Finnish morphology both in analysis and generation. However, using it might be quite a challenge for the users who are not too (H)FST savvy. 😅That is one of the motivations for my UralicNLP library the purpose of which is to provide an easy Python interface for a multitude NLP tools for Uralic languages. (more…)
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…)

a pen and a syntactic tree

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…)

lights looking like abstract curves

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…)

A notebook with mockups

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…)

A green python ready to use HFST :-D

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…)

A big city seen from a tall building

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…)