Интегрировать данный стеммер Портера в C

Я видел, что в следующем примере есть реализация стеммера портера для C http://tartarus.org/martin/PorterStemmer/

Однако, хотя я пытался несколько раз, я не могу интегрировать его в свой код. Может ли кто-нибудь сказать мне, как мне вызвать загруженный файл и что я должен передать ему, чтобы получить строку.

Другими словами, у меня есть программа, которая требует стемминга строк, и для этого мне нужен стеммер портера. Я думаю об использовании вышеуказанного, но я не знаю, как использовать загруженный файл. Пожалуйста, приведите пример


person Programmer    schedule 22.10.2011    source источник


Ответы (2)


Код c предоставляет функцию:

int stem ( *str, int i, int j);

Это тот, кому вы должны позвонить. Он изменяет исходную строку и возвращает длину результата. Типичное использование демонстрируется в функции Stem_file(), которая делает что-то вроде:

char buff[12345]; //should contain one word.

buff [ stem(buff, xx, yy) ] = '\0' ;

Я не знаю, что именно означают 2-й и 3-й параметры. Поищи это.

person wildplasser    schedule 22.10.2011

Кодекс состоит из двух частей.

Есть часть, которая отмечает окончание определения Stemmer. Перед этим они показали основные 5 шагов, о которых говорится в алгоритме Портера. Часть после этого относится к части обработки файлов, преобразует символы в нижний регистр. основная функция имеет дело с частью инициализации. j считается начальной длиной слова.

Пройдите его как следует один раз. Это не очень легко понять.

person user2480956    schedule 18.06.2013