예제 #1
0
파일: EasyAnalyzer.c 프로젝트: theory/lucy
bool
EasyAnalyzer_equals(EasyAnalyzer *self, Obj *other) {
    if ((EasyAnalyzer*)other == self)                       { return true; }
    if (!Obj_Is_A(other, EASYANALYZER))                     { return false; }
    EasyAnalyzerIVARS *const ivars = EasyAnalyzer_IVARS(self);
    EasyAnalyzerIVARS *const ovars = EasyAnalyzer_IVARS((EasyAnalyzer*)other);
    if (!CB_Equals(ovars->language, (Obj*)ivars->language)) { return false; }
    return true;
}
예제 #2
0
파일: EasyAnalyzer.c 프로젝트: theory/lucy
Hash*
EasyAnalyzer_dump(EasyAnalyzer *self) {
    EasyAnalyzerIVARS *const ivars = EasyAnalyzer_IVARS(self);
    EasyAnalyzer_Dump_t super_dump
        = SUPER_METHOD_PTR(EASYANALYZER, Lucy_EasyAnalyzer_Dump);
    Hash *dump = super_dump(self);
    Hash_Store_Str(dump, "language", 8, (Obj*)CB_Clone(ivars->language));
    return dump;
}
예제 #3
0
파일: EasyAnalyzer.c 프로젝트: theory/lucy
void
EasyAnalyzer_destroy(EasyAnalyzer *self) {
    EasyAnalyzerIVARS *const ivars = EasyAnalyzer_IVARS(self);
    DECREF(ivars->language);
    DECREF(ivars->tokenizer);
    DECREF(ivars->normalizer);
    DECREF(ivars->stemmer);
    SUPER_DESTROY(self, EASYANALYZER);
}
예제 #4
0
파일: EasyAnalyzer.c 프로젝트: theory/lucy
Inversion*
EasyAnalyzer_transform_text(EasyAnalyzer *self, CharBuf *text) {
    EasyAnalyzerIVARS *const ivars = EasyAnalyzer_IVARS(self);
    Inversion *inv1 = StandardTokenizer_Transform_Text(ivars->tokenizer, text);
    Inversion *inv2 = Normalizer_Transform(ivars->normalizer, inv1);
    DECREF(inv1);
    inv1 = SnowStemmer_Transform(ivars->stemmer, inv2);
    DECREF(inv2);
    return inv1;
}
예제 #5
0
파일: EasyAnalyzer.c 프로젝트: theory/lucy
EasyAnalyzer*
EasyAnalyzer_init(EasyAnalyzer *self, const CharBuf *language) {
    Analyzer_init((Analyzer*)self);
    EasyAnalyzerIVARS *const ivars = EasyAnalyzer_IVARS(self);
    ivars->language   = CB_Clone(language);
    ivars->tokenizer  = StandardTokenizer_new();
    ivars->normalizer = Normalizer_new(NULL, true, false);
    ivars->stemmer    = SnowStemmer_new(language);
    return self;
}
예제 #6
0
Inversion*
EasyAnalyzer_Transform_IMP(EasyAnalyzer *self, Inversion *inversion) {
    EasyAnalyzerIVARS *const ivars = EasyAnalyzer_IVARS(self);
    Inversion *inv1 = StandardTokenizer_Transform(ivars->tokenizer, inversion);
    Inversion *inv2 = Normalizer_Transform(ivars->normalizer, inv1);
    DECREF(inv1);
    inv1 = SnowStemmer_Transform(ivars->stemmer, inv2);
    DECREF(inv2);
    return inv1;
}