Как стать автором
Обновить

Комментарии 8

Здравствуйте, Андрей! Спасибо за материал. Тема очень интересная. Где можно получить подобные знания - я имею в виду, на стыке лингвистики, морфологии и ИТ? Может быть университеты, кафедры посоветуете?

Добрый день.

Есть такое развлечение - смотрите книги по запросу 'information retrieval', и почти все будут путными. Статьи, в том числе и, конечно же, на habr.

Ну и общение с себе подобными :)

Я, кстати, запланировал публикацию подробной статьи по морфологическому анализатору, но сделаю только когда дойдут руки выложить украинский и английский вдобавок к русскому. Пока для этих языков в репозитории только намёки.

Благодарю.

Обычный тип с плавающей точкой IEEE-754 содержит последовательно: бит знака, экспоненту в смещённом коде, остаток мантиссы или денормализованную мантиссу.

Так вот, если откусить бит знака, а остальную часть интерпретировать как целое, то окажется, что сравнение этого числа соответствует сравнению модуля исходного числа.

Откусываем бит знака, получаем целое число. Если бит знака - флаг, меняем знак на минус. В результате получается целое, отсортированное в том же порядке, как исходный float.

Да, конечно.

Однако у нас стоит немного другая задача - хранить поисковые ключи в оглавлении обратного индекса. Там и лексемы в их морфологическом представлении; и иероглифы - фактически, строки; и числа.

Физическое представление такого оглавления - разного рода деревья, например, префиксное или patricia. Ключ - последовательность байт. Поиск по диапазону - поиск первого GE ключа для нижней границы и последовательная выборка ключей, пока LE верхней границе.

Если физический int туда повесить - сортировка для него будет на каких-то программно-аппаратных платформах правильной, на каких-то - обратной.

Я имел в виду, что задачу представления float можно свести к задаче представления int, которая, как Вы сами пишете

несколько проще, не используя арифметических функций вроде pow.

Ну да, вместо pow() можно делать в коде битовые сдвиги на 4, поскольку база 16.

Вплоть до последних версий стандарта представление таких чисел implementation-defined, https://eel.is/c++draft/basic.fundamental#12. Значит, реализация может различаться уже на уровне разных версий компиляторов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий