Каждый шаг нормализации выбрасывает информацию в обмен на то, чтобы сделать две вещи, которые были разными, равными. Вот и вся сделка, и ошибки возникают из-за случайного совершения сделки — обычно при вызове .lower() и движении дальше....
Каждый шаг нормализации выбрасывает информацию в обмен на то, чтобы сделать две вещи, которые были разными, равными. Вот и вся сделка, и ошибки возникают из-за случайного совершения сделки — обычно при вызове .lower() и движении дальше.
Нормализация — это решение с потерями
Вопрос никогда не в том, «должен ли я нормализоваться». Вопрос в том, «какие различия я хочу стереть, и нужны ли они чему-либо в дальнейшем?» Стирание регистра означает совпадение Apple и Apple, а также то, что вы больше не сможете отличить компанию от фрукта. Стирание диакритических знаков означает, что кафе совпадает с кафе, а также то, что испанские año и no сливаются в один термин - это разница, которую замечают носители языка.
Единственное структурное правило, которое предотвращает большинство катастроф: что бы вы ни решили, одна и та же функция должна выполняться во время индексации и во время запроса. Несоответствие приводит к нулевым результатам для запросов, которые очевидно правильны, и оно незаметно в модульных тестах, поскольку обе половины работают нормально по отдельности. Всегда сохраняйте необработанный текст без изменений, чтобы к любому решению можно было вернуться без повторной загрузки корпуса.
Четыре формы Юникода
Символ é имеет две допустимые кодировки: одиночный код U+00E9 или букву e, за которой следует U+0301, комбинация