Косинусное сходство со строкой в качестве входных данных из ОШИБКИ оператора с ПЛАВАЮЩЕЙ точкой

#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' к плаванию.