Вы можете разобрать строку в число, проверить округление (десятичное число больше или меньше 0,5) и преобразовать ее обратно в строку
import math
myList = ['-1.02', '-1.03', '-0.81', '-0.17', '-0.07', '0.22', '0.88', '0.88', '0.69']
result = [0] * len(myList)
for i in range (len(myList)):
num = float(myList[i])
if num - math.floor(num) < 0.5:
result[i] = str(math.floor(num)) # round down
else:
result[i] = str(math.ceil(num)) # round up
print(result)
Идея тезауруса имеет некоторую заслугу. Одна идея состояла бы в том, чтобы создать график на основе тезауруса с узлами, являющимися словами и краем, указывающим, что там они перечислены как синонимы в тезаурусе. Вы могли затем использовать алгоритм поиска кратчайшего пути, чтобы дать Вам расстояние между узлами как мера их подобия.
Одна трудность здесь состоит в том, что некоторые слова имеют различные значения в различных контекстах. Ваш алгоритм, возможно, должен принять это во внимание, и использование направило ссылки с весом исходящей ссылки, зависящей от перешедшей входящей ссылки (или проигнорируйте некоторые исходящие ссылки на основе входящей ссылки).
Возможный взлом: отправьте эти два слова в поиск Google и возвратите # найденных страниц.