Hkey

Hkey
Рейтинг
222
Регистрация
30.09.2006
Интересы
Java
aalexeev:
ИМХО это просто транжирство. зачем выбрасывать на ветер ресурсы?

есть такая вещь как таблица логарифмов. Пару сотен КБ в памяти и все логарифмы от целых чисел находятся за одно действие.

float * LogTable;

float inline Log(long i)

{

return LogTable;
}

G00DMAN:
Считать огромное число раз логарифм в реале нет смысла, как мне кажется.
Мой научно-исследовательский коллектив сейчас экспериментирует с аннотированием, пытается раскусить алгоритмы получения сниппетов в выдаче. Благо есть косячная статья с последнего ромипа, еще кое-какая инфа и база Михаила. Аннотирование использует логарифм, потому я и считаю, что ранжирование использует его же.

Помой му подсветку уже давно отстала от мозгов.

Возникает вопрос про ваши эксперименты. Как они проводились?

Почему этот вопрос я задаю: потому что считаю гипотезу изменения на log маловероятной. Поскольку Яндекс существует намного больше, чем база Михаила. Сначала внутренние факторы играли важную роль. Во всех источниках написан логарифм. Логарифм довольно быстро вычисляется по таблице.

Хотя возможно такое, что число которое загоняешь в колдовку логарифмируется?Т.е пишешь ::5066, а вес для расчетов будет равен log(5066).

Можно использовать поле "найдено страниц" Яндекса и примерно рассчитать зависимость по старым данным, а потом его юзать.

Nike59:
Что, Андрей, продажи у вас продолжаются, а деньги вы возвращать не торопитесь. Я подожду до 10декабря. Если денег от вас на моем кипере не будет обнаружено до этой даты, вы получите неприятности через арбитраж вебманей. Я как и обещал притормозил этот неприятный процесс.

Кроме того, в случае не выполнения вами обещаний вернуть деньги, в качестве бонуса вы получите еще довесок: на всех сеошных и близких к ним форумах я вам обещаю звание "урода".

1. Не пугайте пуганный.

2. Говорили по мылу - по мылу и ответьте. Не зачем на форуме флудить.

3. Я спрашивал у вас номер вашего З кошелька. По мылу. Вы не потрудились ответить.

4. См. 2 на ФОРУМЕ отвечать вам не буду.

Hkey добавил 05.12.2008 в 13:09

Bokov:
Активировал программу, теперь поле для ввода текста вообще не отображается:

1. Это по мылу лучше обсуждать.

2. Удалите файлы ини в папке опции.

3. Еще раз перешлите мне по мылу ваш АйДи.

BigBoss:
Циклом читать по строке из файла, высчитывать md5 для строки и добавлять в таблицу MySQL. Перед вставкой проверять на наличие такого же кода. Если есть - дубль.
Если в итоге нужно получить те же 50 текстовых файлов, то ставить еще и флаг файла. После проверки сделать выборку, опять же циклом, чтобы памяти хватило, и записывать в файл(ы).
Поле, куда хеш будет вставляться, нужно PRIMARY сделать, чтобы запросы быстрее выполнялись.
Скрипт совсем простенький получится, если с БД проблем нет.

совпадение md5 не однозначно совпадению строк. Две разные строки могут иметь одинаковую контрольную сумму. Если размер кс не больше размеру строки )))). Нужно дополнительно сверять эти строки. Вторая строка у нас есть в памяти, но первая (мд которой уже есть в базе) находиться в довольно длином файле и в среднем нужно считать 1500/50/2 = 150 мб. чтобы добраться до него. Т.е. на одно удаление нужно считать минимум 150 мб. Это займет как минимум несколько секунд.

Второй момент - таблица. Найти мд в таблице - довольно сложно и эту операцию нужно произвести N раз. Где N число строк равное нескольким десяткам (а то и сотням) милионов.

НЕ знаю как Мускл организует таблицу. Но в самом оптимальном варианте (бинарный поиск или поиск по оптимально сбалансированному дереву) эта радость займет время пропорциональное ln(N). Т.е. N*Ln(N) - что очень плохо.

за пять баксов ) Это смешно. Нужен хешированный поиск.

Берется функция H(строка S, int M), которая возвращает число не более M.

Потом создается M хеш-файлов-ссылок номер файла, номер строки, и М Хеш-Файлов содержаний. В файлах содержаний - содержания строки исходного файла. Строка записывается в хеш файлы под номерами равными ее хешу.

Потом происходит отбработка хеш файла. Строки сверяются и создается 50 очередей удаления (для каждого исходного файла) - они содержат номер строки который нужно удалить. Затем очереди обрабатываются.

М следует выбирать на 1-3 порядка меньшим числа строк. М должно быть простым числом. Время поиска дублей сокращается в M*M раз.

Можно ускорить введя CRC. Числа будут сверяться быстрее строк. Если CRC двух строк равны, то проверяются уже строки.

Миша:
Ясно, но все же не хочется заморачиваться с автозаменами и спцсимволами... Хотя, в принципе, можно сделать один шаблон для сапы и менять его под каждый проект

Я добавлю в интерфейс программы упрощенную вставку спец. символов

Миша:

Еще есть вопрос... В предыдущей версии (1.0 Beta) огорчила невозможность генерить коды для сапы вида #a#анкор#/a# из-за символов # (в более ранних версиях это можно было делать).
еперь эта проблема решена или придется после генерации править автозаменой в блокноте?

Можно использовать вставку символа ANSI ~!!~035 - на месте этой комбинации будет стоять #. Коды других символов можно узнать здесь http://ostermiller.org/calc/ascii.html. Т.е. можно поставить в окончательные варианты любой символ. Например, "{" или "|" или "}" - ~!!~123 ~!!~124 и ~!!~125 соответственно.

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

Вот список исправлений, которые я наметил. Если кто-то хочет внести свои - то допишите.

И так TODO:

1. Динамическая подсветка (готово)

2. Синомайзер (готово)

3. Добавить вставку ANSI символов в интерфейс

4. Исправить морфологию

Исправить ошибки:

1. при выделении небольших слов (точное число символов не помню) и нажатии на кнопку "мастер быстрого ввода вариаций" - слово не подставляется

2. если ранее было выбрано длинное слово для быстрого ввода вариаций, а потом короткое слово, то подставляется только предыдущий длинный вариант

3. в мастере переборов если минимум превышает максимум - всплывает окошко, эт правильно, но оно всплывает каждый раз, даже при уменьшении минимума каждый раз до тех пор, пока он не сравняется с максимумом.

4. был случай когда внутри мастера переборов, т.е. результата мастера переборов не работал вариант {слово1|слово2}

5. Удаление энтеров

6. Зависание на некоторых текстах

7. выход формы синонимов за границы экрана.

Всего: 2639