У меня возникла проблема с передачей функции для сравнения между двумя столбцами
import nltk, string
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(tokenizer=normalize, stop_words='english')
def cosine_sim1(text1, text2):
tfidf = vectorizer.fit_transform([text1, text2])
return ((tfidf * tfidf.T).A)[0,1]
после применения функции
cosine_sim1('like football', 'football')
Результат: 0,5797386715376657
Я сталкиваюсь с небольшой проблемой, чтобы передать эту функцию между двумя столбцами в фрейме данных для вычисления оценки.Вот небольшая выборка данных
d = pd.DataFrame({'A': ['my name is', 'i live in', 'i like football'], 'B': ['london is nice city', 'london city', 'football']})
Я пытался сделать это.Однако появляются некоторые ошибки.
def cosine_sim1(text1, text2):
tfidf = vectorizer.fit_transform([text1(d['A']), text2(d['B'])])
return ((tfidf * tfidf.T).A)[0,1]
d.apply(cosine_sim1, axis=1)
Ошибка: TypeError: ("cosine_sim1 () отсутствует 1 обязательный позиционный аргумент: 'text2'", 'произошел в индексе 0')