powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Анализатор текста
22 сообщений из 22, страница 1 из 1
Анализатор текста
    #32319624
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, если не в тему...
Приятель (геннетик по специальности) спросил меня, а как сделать сравнение двух буквенных последовательностей на совпадение букв с выводом результата.
Например:
первая послед. qwertyqwerty
вторая - qwerquickerti

результат: qwer----ert-

Вопрос вот в чем: можно ли это делать в чем-то, типа Access и нужно ли..
Может есть уже готовые решения? У них была прога, но под DOS, а под 2000 - она не работает.

Спасибо.
...
Рейтинг: 0 / 0
Анализатор текста
    #32319629
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Медленно будет, но сделать можно. Возможно какой-то другой язык программирования сделает требуемой одной строчкой, но не VB/VBA.
...
Рейтинг: 0 / 0
Анализатор текста
    #32319636
Nektov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть программа нестрогого сравнения строк, написанная на VB60. Думаю, ты сможешь имортировать модули из этой програмы.
Вот описание:
автор писал:Часто сталкивался с проблемой, когда нужно сравнивать строки, полученные из разных источников, которые имеют свою точку зрения на вопросы предоставления данных написание, грамотность, очепятки и т.д.). Например, "ул. Лёни Голикова" и "ул.Лени Голикава" в чём-то похожие названия, и хотелось бы как то это выразить. Данные пример как раз и служит для таких целей.
Выдает результат в виде числа от 0 до 1. Чем оно больше - тем больше схожесть строк. Скачать можно здесь
Удачи.
...
Рейтинг: 0 / 0
Анализатор текста
    #32319643
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не совсем понятно. В таком виде проблем особых я не вижу. Это ж по сути надо просто сравнить символы на одной позиции и поставить "-" или оставить сам символ. Может там еще какие-нибудь трудности, как сравнивать то?
...
Рейтинг: 0 / 0
Анализатор текста
    #32319654
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе так что-ли надо:

первая послед. dddqwertyqwerty
вторая - qwerquickerti

результат: ---qwer----ert-

т.е. найти еще точку вхождения или как? при этом способе кстати возникают другие проблемы с интерпретацией результатов...
...
Рейтинг: 0 / 0
Анализатор текста
    #32319665
Фотография beseder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Nektov
Спасибо. Сейчас посмотрю
2 SergeySV
>Тебе так что-ли надо:
Я, к сожалению, не знаю подробностей, что нужно геннетикам, но , похоже, ты прав.
...
Рейтинг: 0 / 0
Анализатор текста
    #32319842
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем сделать можно все что угодно, надо только уточнить подробности, потому что в такой постановке задачи пока слишком много вопросов, которые влияют на конечную реализацию.

А так в принципе, я для себя делал функцию Instr, которая позволяла вводить маску аки оператор Like, просто было интересно самому разработать алгоритм сравнения строки с маской. Получился не очень сложный алгоритм.
...
Рейтинг: 0 / 0
Анализатор текста
    #32319850
------------------
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще лучше сходить в магазин и купить книгу. Как точно называется не помню, но есть как раз по этой теме - алгоритмы в генетике
...
Рейтинг: 0 / 0
Анализатор текста
    #32319860
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
function XXX(s1 as string,s2 as string)as string

dim s as string,i as integer,n as integer

s= ""
n=len(s1)
if len(s2)<n then n=len(s2)
for i=1  to n
    if mid(s1,i, 1 )=mid(s2,i, 1 )then
        s=s & mid(s1,i, 1 )
    else
        s=s & "-"
    endif
next
XXX=s

end function
...
Рейтинг: 0 / 0
Анализатор текста
    #32319885
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, че-то не работает
Код: plaintext
1.
2.
3.
? XXX ( "qwqieqwqwqwq" ,  "sasiesqwqwqwq ie" )
 ---ie-------
 
...
Рейтинг: 0 / 0
Анализатор текста
    #32319886
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или я задачу не допонял?
...
Рейтинг: 0 / 0
Анализатор текста
    #32319902
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
1.
?XXX( "qwertyqwerty" , "qwerquickerti" )
qwer--------

Кусок "ert" не нашелся, потому что он в исходных строках находится в разных местах. В задачке не сказано, что делать в таком случае.
...
Рейтинг: 0 / 0
Анализатор текста
    #32319910
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все правильно, именно об этом простом решении я и говорил. Мы просто сравниваем символы на одинаковой позиции, а вот если ему надо что-то другое, тогда не обойтись без уточнений, типа таких, первый символ дожен быть всегда, ищем первое вхождение, а потом уже бацаем "-" или буквы или еще как-нибудь, но в первоначальной формулировке пока слишком много вопросов...
...
Рейтинг: 0 / 0
Анализатор текста
    #32319922
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Для уточнения формулировки предлагаю пример:

123456789
123789456

- что должно получиться?
...
Рейтинг: 0 / 0
Анализатор текста
    #32319966
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем прога на VB если есть стнандартные функции MSSQL
SOUNDEX
Returns a four-character (SOUNDEX) code to evaluate the similarity of two strings.
DIFFERENCE
Returns the difference between the SOUNDEX values of two character expressions as an integer.
PATINDEX
Returns the starting position of the first occurrence of a pattern in a specified expression, or zeros if the pattern is not found, on all valid text and character data types.
CHARINDEX
Returns the starting position of the specified expression in a character string.

Загнать символьные массивы в базу и обрабатывать построчно.

А в принципе ,для еще большего убыстрения ,если есть исходник проги или хотябы алгоритм,
то надо просто переписать на C++ и для тюнинга постаратся распаралелить
для возможности многпроцессорной обработки.
...
Рейтинг: 0 / 0
Анализатор текста
    #32319985
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВС:
не, предлагаю такой пример:
555123456789
123789456

т.е. когда исходная строка больше и начинается с других символов, ну и для полного счастья наоборот, что делать когда исходная строка меньше - вообще не сравнивать, потому что такая ситуация невозможно по условию???
...
Рейтинг: 0 / 0
Анализатор текста
    #32320106
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, сам недавно искал подобную прогу. Нашел нечто похожее, называется bykva (ссылку только из дома могу дать). Позволяет искать вхождение строки в любом файле, а также дает статистику по входящим словам в тексте и можно сделать по словосочетаниям. В общем, достаточно ползеная штучка.
А что касается кода Саныча, то его надо доработать, ИМХО. Как я себе это вижу.
Берем 1-ю строку и берем 1-ый символ второй строки и начинаем оследовательно сравнивать с символами 1-ой строки. Как только нашли, берем 2-ой символ 2-ой строки и сравниваем со следующим символом 1-й строки. Если есть совпадение, то началась совпадающая последовательноть. Как только закончиласть, продолжаем дальше. Только вот тут вопрос, как автору надо это сравнивать? Продолжать дальше с того места, где остановились на 1-ой строке или начинать ее сначала?? В общем, нужна конкретная постановка задачи. ;-)
...
Рейтинг: 0 / 0
Анализатор текста
    #32320368
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к "решению" ВС.
Если надо бистро, то не циклами, а побитово. Что-то наподобие:

"Оператор And выполняет также поразрядное сравнение двух числовых выражений и присваивает соответствующему разряду в переменной результат следующее значение:".

И, сдается мне, пИсать сие надо не на сИ а на ассемблере. т.ч. вопрос не по адресу.
...
Рейтинг: 0 / 0
Анализатор текста
    #32320393
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну почему же именно на асме?? Можно еще на Perl'e написать. Этот язык достаточно быстро работает со строками, насколько мне известно.
...
Рейтинг: 0 / 0
Анализатор текста
    #32320400
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Кстати, мой алгоритм можно ускорить.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function XXX(s1 as string,s2 as string)as string

dim s as string,i as integer

s=s1
if len(s2)<len(s) then s=s2
for i= 1  to len(s)
    if mid(s1,i, 1 )<>mid(s2,i, 1 )then mid(s,i, 1 )= "-" 
next
XXX=s

end function
...
Рейтинг: 0 / 0
Анализатор текста
    #32321055
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне кажется .http://algolist.manual.ru/search/ страничка может помочь с алгоритмами
http://algolist.manual.ru/search/
http://doors.infor.ru/allsrs/alg/index.html
вот здесь есть литературка..
http://www.3ka.mipt.ru/vlib/books/Programming/ComputerScience/StryngAnalysis/
а ещё можно копнуть такую книженцию..
http://pascal.sources.ru/docs/knuth3.htm
...
Рейтинг: 0 / 0
Анализатор текста
    #32321111
Roalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, еще немного и суперкомпы расшифровующие код ДНК остануться без работы.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Анализатор текста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]