Реализовать на C# алгоритм сравнения текстов
Необходимо реализовать на C# алгоритм сравнения текстов (алгоритм шинглов).
Описание алгоритма:
http://habrahabr.ru/post/65944/
http://uniofweb.ru/wiki/algoritm-shinglov/
http://www.codeisart.ru/part-1-shingles-algorithm-for-web-documents/
http://www.codeisart.ru/python-shingles-algorithm/
Есть система управления рерайтерами (ASP.NET C# /SQL Server), в которую 100 рерайтеров постоянно добавляют свои статьи. При добавлении новой статьи в БД, необходимо вычислить процент схожести добавляемого текста с уже существующими текстами по методу шинглов, чтобы рерайтер видел уникальность добавляемой статьи относительно своих и чужих(ранее добавленных статей). Т.е проверка статей на уникальность осуществляется ТОЛЬКО в рамках нашей локальной БД.
1. Нужна функция на c# (static string GenShingle (string paramText, int paramShingleLen)), которая получив в качестве параметра текст и длину шингла, вернет 100(или 50) шинглов(через запятую). Если решите хранить данные в поле XML, а не через запятую, то можно и так.
2. Нужна Scalar_Function на T-SQL, которая получив два параметра (строку шинглов1 и строку шинглов2) вернет процент схожести текстов. Мы самостоятельно напишем курсор, который «пробежит» все записи нашей БД и найдет минимальный процент схожести для добавляемой в БД записи.
Важно сказать, что длинна текстов от 1000 до 10000 знаков, поэтому придется учитывать работу алгоритма шинглов с короткими текстами. Основная длина шингла с которой будем работать равна 3(трем).
От исполнителя мы надеемся получить SQL – скрипт с функцией и c# код с методом GenShingle. Интегрировать все это в свой проект мы будем самостоятельно. Следовательно, не имеет абсолютно никакого значения ни версия SQL , ни версия VSNET. Даже не имеет значения, на чем будете делать тестовое приложение! Думаю, на WinForm будет проще!
Оплата, после проверки (можно по скайп с расшариванием экрана).