#c #algorithm #porter-stemmer
#c #алгоритм #porter-stemmer
Вопрос:
Я видел, что у следующего есть реализация портер-стеммера для C http://tartarus.org/martin/PorterStemmer /
Однако, хотя я пытался несколько раз, я не могу интегрировать его в свой код. Может кто-нибудь сказать мне, как я должен вызвать загруженный файл и что я должен передать ему, чтобы остановить строку.
Другими словами, у меня есть программа, которая требует, чтобы stem строил строки, и для этого мне нужен стеммер porter. Я подумываю об использовании вышеупомянутого, но я не знаю, как использовать загруженный файл. Пожалуйста, приведите пример
Ответ №1:
Код c предоставляет функцию:
int stem ( *str, int i, int j);
Это тот, который вы должны вызвать. Он изменяет исходную строку и возвращает длину результата.Типичное использование продемонстрировано в функции stem_file(), которая выполняет что-то вроде:
char buff[12345]; //should contain one word.
buff [ stem(buff, xx, yy) ] = '' ;
Я не знаю, что именно означают 2-й и 3-й параметры. Посмотрите его.
Ответ №2:
Код состоит из двух частей.
Существует часть, которая отмечает окончание определения стеммера. До этого они показали основные 5 шагов, которые определяет алгоритм Портера. Следующая часть касается части обработки файлов, преобразует символы в нижний регистр. функция stem имеет дело с частью инициализации. j рассматривается как начальная длина слова.
Пройдите через него правильно один раз. Это не очень легко понять.