/*******************************************************************************
 * Copyright 2016
 * Ubiquitous Knowledge Processing (UKP) Lab
 * Technische Universität Darmstadt
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package de.tudarmstadt.ukp.spellingDifficulty.util;

import java.io.IOException;

//The phonetisaurus tool (https://code.google.com/p/phonetisaurus/) produces a pronunciation for an input word based on an existing grapheme-phoneme model.
//The phonetic score is the log probability of the output pronunciation. 
public class PhonetisaurusPronunciation
{
    private String inputWord;
    private String pronunciation;
    private Double phoneticScore;

    public PhonetisaurusPronunciation(String phonetisaurusOutput)
        throws IOException
    {

        String[] output = phonetisaurusOutput.split("\t");
        if (output.length == 3) {
            inputWord = output[0];
            phoneticScore = Double.parseDouble(output[1]);
            pronunciation = output[2];
        }
        else if (output.length == 2) {
            phoneticScore = Double.parseDouble(output[0]);
            pronunciation = output[1];
        }
        else {
            throw new IOException("Wrong input format: " + phonetisaurusOutput);
        }
    }

    public String getInputWord()
    {
        return inputWord;
    }

    public String getPronunciation()
    {
        return pronunciation;
    }

    public Double getPhoneticScore()
    {
        return phoneticScore;
    }
}
