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

weka.core.stemmers.IteratedLovinsStemmer Maven / Gradle / Ivy

Go to download

The Waikato Environment for Knowledge Analysis (WEKA), a machine learning workbench. This version represents the developer version, the "bleeding edge" of development, you could say. New functionality gets added to this version.

There is a newer version: 3.9.6
Show newest version
/*
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see .
 */

/*
 * IteratedLovinsStemmer.java
 * Copyright (C) 2001-2012 University of Waikato, Hamilton, New Zealand
 *
 */

package weka.core.stemmers;

import weka.core.RevisionUtils;

/**
 
 * An iterated version of the Lovins stemmer. It stems the word (in case it's longer than 2 characters) until it no further changes.
*
* For more information about the Lovins stemmer see:
*
* Julie Beth Lovins (1968). Development of a stemming algorithm. Mechanical Translation and Computational Linguistics. 11:22-31. *

* * BibTeX: *

 * @article{Lovins1968,
 *    author = {Julie Beth Lovins},
 *    journal = {Mechanical Translation and Computational Linguistics},
 *    pages = {22-31},
 *    title = {Development of a stemming algorithm},
 *    volume = {11},
 *    year = {1968}
 * }
 * 
*

* * @author Eibe Frank (eibe at cs dot waikato dot ac dot nz) * @version $Revision: 8034 $ * @see LovinsStemmer */ public class IteratedLovinsStemmer extends LovinsStemmer { /** for serialization */ static final long serialVersionUID = 960689687163788264L; /** * Returns a string describing the stemmer * @return a description suitable for * displaying in the explorer/experimenter gui */ public String globalInfo() { return "An iterated version of the Lovins stemmer. It stems the word (in " + "case it's longer than 2 characters) until it no further changes.\n\n" + "For more information about the Lovins stemmer see:\n\n" + getTechnicalInformation().toString(); } /** * Iterated stemming of the given word. * Word is converted to lower case. * * @param str the word to stem * @return the stemmed word */ public String stem(String str) { if (str.length() <= 2) { return str; } String stemmed = super.stem(str); while (!stemmed.equals(str)) { str = stemmed; stemmed = super.stem(stemmed); } return stemmed; } /** * Returns the revision string. * * @return the revision */ public String getRevision() { return RevisionUtils.extract("$Revision: 8034 $"); } /** * Runs the stemmer with the given options * * @param args the options */ public static void main(String[] args) { try { Stemming.useStemmer(new IteratedLovinsStemmer(), args); } catch (Exception e) { e.printStackTrace(); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy