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)
							 |