| __all__ = ('language', 'stemmer') |
| |
| from .arabic_stemmer import ArabicStemmer |
| from .armenian_stemmer import ArmenianStemmer |
| from .basque_stemmer import BasqueStemmer |
| from .catalan_stemmer import CatalanStemmer |
| from .danish_stemmer import DanishStemmer |
| from .dutch_stemmer import DutchStemmer |
| from .english_stemmer import EnglishStemmer |
| from .finnish_stemmer import FinnishStemmer |
| from .french_stemmer import FrenchStemmer |
| from .german_stemmer import GermanStemmer |
| from .greek_stemmer import GreekStemmer |
| from .hindi_stemmer import HindiStemmer |
| from .hungarian_stemmer import HungarianStemmer |
| from .indonesian_stemmer import IndonesianStemmer |
| from .irish_stemmer import IrishStemmer |
| from .italian_stemmer import ItalianStemmer |
| from .lithuanian_stemmer import LithuanianStemmer |
| from .nepali_stemmer import NepaliStemmer |
| from .norwegian_stemmer import NorwegianStemmer |
| from .porter_stemmer import PorterStemmer |
| from .portuguese_stemmer import PortugueseStemmer |
| from .romanian_stemmer import RomanianStemmer |
| from .russian_stemmer import RussianStemmer |
| from .serbian_stemmer import SerbianStemmer |
| from .spanish_stemmer import SpanishStemmer |
| from .swedish_stemmer import SwedishStemmer |
| from .tamil_stemmer import TamilStemmer |
| from .turkish_stemmer import TurkishStemmer |
| from .yiddish_stemmer import YiddishStemmer |
| |
| _languages = { |
| 'arabic': ArabicStemmer, |
| 'armenian': ArmenianStemmer, |
| 'basque': BasqueStemmer, |
| 'catalan': CatalanStemmer, |
| 'danish': DanishStemmer, |
| 'dutch': DutchStemmer, |
| 'english': EnglishStemmer, |
| 'finnish': FinnishStemmer, |
| 'french': FrenchStemmer, |
| 'german': GermanStemmer, |
| 'greek': GreekStemmer, |
| 'hindi': HindiStemmer, |
| 'hungarian': HungarianStemmer, |
| 'indonesian': IndonesianStemmer, |
| 'irish': IrishStemmer, |
| 'italian': ItalianStemmer, |
| 'lithuanian': LithuanianStemmer, |
| 'nepali': NepaliStemmer, |
| 'norwegian': NorwegianStemmer, |
| 'porter': PorterStemmer, |
| 'portuguese': PortugueseStemmer, |
| 'romanian': RomanianStemmer, |
| 'russian': RussianStemmer, |
| 'serbian': SerbianStemmer, |
| 'spanish': SpanishStemmer, |
| 'swedish': SwedishStemmer, |
| 'tamil': TamilStemmer, |
| 'turkish': TurkishStemmer, |
| 'yiddish': YiddishStemmer, |
| } |
| |
| try: |
| import Stemmer |
| cext_available = True |
| except ImportError: |
| cext_available = False |
| |
| def algorithms(): |
| if cext_available: |
| return Stemmer.language() |
| else: |
| return list(_languages.keys()) |
| |
| def stemmer(lang): |
| if cext_available: |
| return Stemmer.Stemmer(lang) |
| if lang.lower() in _languages: |
| return _languages[lang.lower()]() |
| else: |
| raise KeyError("Stemming algorithm '%s' not found" % lang) |