Как передать препроцессор в TfidfVectorizer? - sklearn - питон
Как передать препроцессор в TfidfVectorizer? Я сделал функцию, которая принимает строку и возвращает строку препроцессора затем я установил параметр процессора для этой функции "preprocessor=preprocess", но он не работает. Я искал так много раз, но я не нашел никакого примера, как будто никто не использует его.
У меня есть еще один вопрос. Это (препроцессор) параметр переопределить удалением стоп-слов и lowereing случае, что можно сделать с помощью stop_words и строчные параметры?
1 ответов
вы просто определяете функцию, которая принимает строку в качестве входных данных и возвращает то, что должен быть предварительно обработан. Так, например, тривиальная функция для строк в верхнем регистре будет выглядеть так:
def preProcess(s):
return s.upper()
как только вы сделали свою функцию, вы просто передаете ее в свой TfidfVectorizer
"объект". Например:
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
'This is the first document.',
'This is the second second document.',
'And the third one.',
'Is this the first document?'
]
X = TfidfVectorizer(preprocessor=preProcess)
X.fit(corpus)
X.get_feature_names()
результаты:
[u'AND', u'DOCUMENT', u'FIRST', u'IS', u'ONE', u'SECOND', u'THE', u'THIRD', u'THIS']
это косвенно отвечает на ваш последующий вопрос, поскольку, несмотря на то, что нижний регистр установлен в true, функция предварительной обработки верхний регистр переопределяет его. Это также упоминается в документации:
препроцессор: вызываемый или нет (по умолчанию) переопределение предварительной обработки (преобразование строки) этап при сохранении токенизации и шаги генерации n-граммов.