28 lines
		
	
	
		
			577 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			577 B
		
	
	
	
		
			Python
		
	
	
	
	
	
__all__ = ('language', 'stemmer')
 | 
						|
 | 
						|
from .english_stemmer import EnglishStemmer
 | 
						|
 | 
						|
language = {
 | 
						|
    'english': EnglishStemmer,
 | 
						|
}
 | 
						|
 | 
						|
try:
 | 
						|
    import Stemmer
 | 
						|
    cext_available = True
 | 
						|
except ImportError:
 | 
						|
    cext_available = False
 | 
						|
 | 
						|
def algorithms():
 | 
						|
    if cext_available:
 | 
						|
        return Stemmer.language()
 | 
						|
    else:
 | 
						|
        return list(language.keys())
 | 
						|
 | 
						|
def stemmer(lang):
 | 
						|
    if cext_available:
 | 
						|
        return Stemmer.Stemmer(lang)
 | 
						|
    if lang.lower() in language:
 | 
						|
        return language[lang.lower()]()
 | 
						|
    else:
 | 
						|
        raise KeyError("Stemming algorithm '%s' not found" % lang)
 |