Как стать автором
Обновить

Комментарии 8

Спасибо за статью, как раз нужна для моего пет проекта

Этот велосипед минимальный жизнеспособный пример полнотекстового поиска лучше оставить для понимания, а как оно вообще устроено в целом. В любом проекте пет или не пет лучше использовать production ready проверенные решения. Например, из модного-современного: tantivy, привязки для Python тоже есть.

Вы точно что переизобрели одну из популярных GPLv2 библиотек поисковой машины Sphinx написанную на C++, при этом SphinxAPI доступен также на PHP, Java, Perl, Ruby и Python.

Вы точно что переизобрели одну из популярных GPLv2 библиотек поисковой машины Sphinx написанную на C++, при этом SphinxAPI доступен также на PHP, Java, Perl, Ruby и Python.

Так автор и ставил себе целью написать собственную реализацию этого алгоритма.

def lowercase_filter(text):
    return [token.lower() for token in tokens] 

Подправь.
def analyze(text):
    tokens = tokenize(text)
    tokens = lowercase_filter(tokens)
    tokens = punctuation_filter(tokens)
    tokens = stopword_filter(tokens)
    tokens = stem_filter(tokens)

    return [token for token in tokens if token]


А почему одно название переменной в функции? Насколько это лучший подход перед тем, чтобы переменные все-таки обделить оригинальными названиями?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий