#python #string #compiler-errors
Вопрос:
Я хочу создать своего рода компаратор, который при вводе предложения от оператора программа оценивает по косинусному сходству, если внутри набора данных есть похожее предложение. То, что я делал до сих пор, — это:
text = pd.read_excel("Database1.xlsx", usecols='C'))
new_input = input('Insert the sentence: ')
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer(analyzer='word', stop_words='english')
tfidf_matrix = tfidf_vectorizer.fit_transform(text)
print(tfidf_matrix.shape)
from sklearn.metrics.pairwise import cosine_similarity
a = cosine_similarity(new_input, tfidf_matrix)
print(a)
Но я получаю сообщение об ошибке:
ValueError: could not convert string to float: 'hello world'
Я пытаюсь решить эту проблему с помощью:
new_input = float(input('Insert the sentence: '))
Если я правильно понимаю, проблема связана с невозможностью преобразования входной строки «привет, мир» в float из-за наличия пробелов, но мне нужно наличие пробелов во входных данных.
Как я могу разрешить эту ситуацию? Большое вам спасибо за помощь
Комментарии:
1. Какого результата вы хотите
float('hello world')
добиться ?2. Вы не можете ввести приведение
'hello world'
кfloat
значению3. @ThePyGuy Я понимаю, что не могу ввести приведенное «привет, мир» в значение с плавающей запятой из-за наличия пробелов, но оператор, создающий ввод, передает программе предложение, и это означает, что будут пробелы, моя проблема в том, что я не знаю, как с этим справиться
4. @Лука, ты не понимаешь меня, это не только из-за пространства. Любой нечисловой литерал не может быть приведен к типу
float
, и это также включает алфавиты. Например, вы можете ввести приведение'5'
к плаванию, но вы не можете ввести приведение'h'
к плаванию.