Аргумент токенизатора в TfidfVectorizer
предназначен для переопределения шага токенизации строки.Например, вы можете использовать функцию, показанную ниже, которая принимает строку в качестве аргумента, маркирует строку и возвращает токенизированные слова.
def tokenizerFunc(x):
return x.split()
Эта функция принимает строку в качестве входных данных и возвращает список слов.Причина, по которой вы получаете сообщение об ошибке « init () принимает 1 позиционный аргумент, но 2 были заданы», заключается в том, что функция «WordNetLemmatizer ()» не принимает никаких аргументов, однако при использовании этой функции внутри TfidfVectorizer
строкапередан в качестве аргумента для его токенизации.
Если вы хотите использовать лемматизацию и токен одновременно, вы можете использовать эту функцию ниже
lemmatizer = WordNetLemmatizer()
def tokenizerFunc(x):
tokenizedList = x.split()
lemmatizedList = [ lemmatizer.lemmatize(i) for i in tokenizedList]
return lemmatizedList
, вы должны использовать ее следующим образом
TFIDF = TfidfVectorizer(tokenizer=tokenizerFunc,analyzer= 'word',min_df=3,token_pattern=r'(?u)\b[A-Za-z]+\b',stop_words= 'english')
tfidf_matrix = TFIDF.fit_transform(df2['job_title'])