All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aika.preprocessing.PrepareSimpleCharacterProperties Maven / Gradle / Ivy

There is a newer version: 1.4.12
Show newest version
package org.aika.preprocessing;

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.
 */

import org.aika.corpus.Document;


/**
 *
 * @author Lukas Molzberger
 */
public class PrepareSimpleCharacterProperties {


    public static void run(Document doc) {
        String txt = doc.getContent();

        boolean inAnfuehrungzeichen = false;
        for(int i = 0; i < txt.length(); i++) {
            char c = txt.charAt(i);
            if(!inAnfuehrungzeichen && (c == '"' || c == '»')) {
                inAnfuehrungzeichen = true;
            }

            if(inAnfuehrungzeichen) {
                doc.addAnnotation(i, i + 1, "AFZ", 0);
            }

            if(c != ' ') {
                doc.addAnnotation(i, i + 1, "CHAR." + c, 0);
            }

            if(Character.isLetter(c)) {
                doc.addAnnotation(i, i + 1, "CI_LETTER." + Character.toLowerCase(c), 0);
                doc.addAnnotation(i, i + 1, "IS_CHAR", 0);
            }

            if(Character.isDigit(c)) {
                doc.addAnnotation(i, i + 1, "DIGIT." + c, 0);
            }

            if(",.-&;:!?\"»«".indexOf(c) != -1)  {
                doc.addAnnotation(i, i + 1, "PUNCT-" + c, 0);
            }

            if(c == ' ') {
                doc.addAnnotation(i, i + 1, "SPACE", 0);
            }

            if(inAnfuehrungzeichen && (c == '"' || c == '«')) {
                inAnfuehrungzeichen = false;
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy