languages [@Kurimo:2006; @Creutz:2007:2]. Morfessor is an unsupervised method that uses a statistical model to split words into smaller fragments. As these fragments often resemble the surface forms of morphemes, the smallest information-bearing units of a language, we will use the term “morph” for them.

Morfessor has three components: a model, a cost function, and the training and decoding algorithm. The model consists of a lexicon and a grammar. The lexicon contains the properties of the morphs, such as their written forms and frequencies. The grammar contains information of how the morphs can be combined into words. The Morfessor cost function is derived from MAP estimation with the goal of finding the optimal parameters $\theta$ given the observed training data $D_W$:

$$\begin{aligned}
\theta_{MAP} &= \operatorname*{arg\,max}_{\theta}P(\theta \mid D_W) \\
             &= \operatorname*{arg\,max}_{\theta}P(\theta)P(D_W \mid \theta)
\end{aligned}$$

The objective function to be maximized is the logarithm of the product $P(\theta)P(D_W \mid \theta)$. In a semisupervised setting, it is useful to add a hyperparameter to control the weight of the data likelihood [@Kohonen:2010]:

$$\mathcal{L}(\theta, D_W) = \log P(\theta) + \alpha \log P(D_W \mid \theta)$$

We use the hyperparameter $\alpha$ to control the degree of segmentation in a heuristic manner. This allows for optimizing the segmentation, either 