mirror of https://gitee.com/bigwinds/arangodb
113 lines
2.9 KiB
JavaScript
113 lines
2.9 KiB
JavaScript
// Stemmer library sample for JSX
|
|
|
|
import "stemmer.jsx";
|
|
|
|
import "danish-stemmer.jsx";
|
|
import "dutch-stemmer.jsx";
|
|
import "english-stemmer.jsx";
|
|
import "finnish-stemmer.jsx";
|
|
import "french-stemmer.jsx";
|
|
import "german-stemmer.jsx";
|
|
import "hungarian-stemmer.jsx";
|
|
import "italian-stemmer.jsx";
|
|
import "norwegian-stemmer.jsx";
|
|
import "porter-stemmer.jsx";
|
|
import "portuguese-stemmer.jsx";
|
|
import "romanian-stemmer.jsx";
|
|
import "russian-stemmer.jsx";
|
|
import "spanish-stemmer.jsx";
|
|
import "swedish-stemmer.jsx";
|
|
import "turkish-stemmer.jsx";
|
|
|
|
class _Main
|
|
{
|
|
static function usage () : void
|
|
{
|
|
log "$ jsx --run testapp.jsx <algorithm> \"sentence\"...";
|
|
}
|
|
|
|
static function main (args : string[]) : void
|
|
{
|
|
if (args.length < 1) {
|
|
_Main.usage();
|
|
return;
|
|
}
|
|
var algorithm = "English";
|
|
if (args.length > 1)
|
|
{
|
|
algorithm = args.shift();
|
|
}
|
|
var stemmer = _Main.create(algorithm);
|
|
var words = args[0].split(/[\s\.-]/);
|
|
for (var i = 0; i < words.length; i++)
|
|
{
|
|
if (words[i] == '')
|
|
{
|
|
continue;
|
|
}
|
|
var original = words[i].toLowerCase();
|
|
log original + " -> " + stemmer.stemWord(original);
|
|
}
|
|
}
|
|
|
|
static function create (algorithm : string) : Stemmer
|
|
{
|
|
var stemmer : Stemmer;
|
|
switch (algorithm.toLowerCase())
|
|
{
|
|
case "danish":
|
|
stemmer = new DanishStemmer();
|
|
break;
|
|
case "dutch":
|
|
stemmer = new DutchStemmer();
|
|
break;
|
|
case "english":
|
|
stemmer = new EnglishStemmer();
|
|
break;
|
|
case "finnish":
|
|
stemmer = new FinnishStemmer();
|
|
break;
|
|
case "french":
|
|
stemmer = new FrenchStemmer();
|
|
break;
|
|
case "german":
|
|
stemmer = new GermanStemmer();
|
|
break;
|
|
case "hungarian":
|
|
stemmer = new HungarianStemmer();
|
|
break;
|
|
case "italian":
|
|
stemmer = new ItalianStemmer();
|
|
break;
|
|
case "norwegian":
|
|
stemmer = new NorwegianStemmer();
|
|
break;
|
|
case "porter":
|
|
stemmer = new PorterStemmer();
|
|
break;
|
|
case "portuguese":
|
|
stemmer = new PortugueseStemmer();
|
|
break;
|
|
case "romanian":
|
|
stemmer = new RomanianStemmer();
|
|
break;
|
|
case "russian":
|
|
stemmer = new RussianStemmer();
|
|
break;
|
|
case "spanish":
|
|
stemmer = new SpanishStemmer();
|
|
break;
|
|
case "swedish":
|
|
stemmer = new SwedishStemmer();
|
|
break;
|
|
case "turkish":
|
|
stemmer = new TurkishStemmer();
|
|
break;
|
|
default:
|
|
stemmer = new EnglishStemmer();
|
|
break;
|
|
}
|
|
return stemmer;
|
|
}
|
|
}
|