![]() |
![]() |
![]() |
|
Интелектуальное сравнение строк | ☑ | ||
---|---|---|---|---|
0
kunashir
22.09.08
✎
16:24
|
Есть потребность сравнить две строки и определить их процент идентичности, т.е.
Стр1="Информациооно-тех.сопровождение программы 1С" Стр2="Информационно-техническое сопровождение программы 1С" и выдавала что строки схожи на 80%. Имеются ли такие алгоритмы вообще и для 1С в частности? |
|||
1
PRADA
22.09.08
✎
16:26
|
(1) вообще имеются, я думаю - можно и самому придумать, но что тут интелектуального?
|
|||
2
FN
22.09.08
✎
16:27
|
Разбивай обе фразы на слова и в списки значений загоняй - потом обход первого списка и проверка на Принадлежит второму списку
как-то так |
|||
3
Медвед1Сник
22.09.08
✎
16:28
|
(0) Это задача для нейросетей. Ну можно и каким то эквивалентом. Ведь поисковые машины тоже в принципе с подобной задаче сталкиваются (определяя "релевантность").
|
|||
4
kunashir
22.09.08
✎
16:30
|
(1) под интелектуальностью имел ввиду отличие от просто Найти (Стр1, Стр2) и им подобных
|
|||
5
Токс3
22.09.08
✎
16:42
|
(4) Найти (Стр1, Стр2) в цикле это уже интеллект?
|
|||
6
Deon
22.09.08
✎
16:45
|
Функция Релевантность(выр1,выр2)
Длина1 = СтрДлина(Выр1); Длина2 = СтрДлина(Выр2); СовпавшихСимволов = 0; Сч = 1; Для Сч = 1 По Длина1 Цикл Символ = Сред(Выр1,Сч,1); НомерПозиции = Найти(Выр2,Символ); Если НомерПозиции = 0 Тогда Продолжить; Иначе СовпавшихСимволов = СовпавшихСимволов + 1; Выр2 = Лев(Выр2,НомерПозиции-1)+Сред(Выр2,НомерПозиции+1); КонецЕсли; КонецЦикла; рел=""; Если (Длина1<>0) и (Длина2<>0) тогда рел=цел((СовпавшихСимволов/Длина1 + СовпавшихСимволов/Длина2)/2*100);КонецЕсли; возврат рел; КонецФункции |
|||
7
andrewalexk
22.09.08
✎
16:53
|
(6)
:) ..а я в свое время тупо сравнивал совпадения посимвольные с начала потом с конца.. а потом эмпирически выводил порог вероятности совпадения.. |
|||
8
Deon
22.09.08
✎
16:55
|
(7) Круто :) Хорошо работало?
|
|||
9
andrewalexk
22.09.08
✎
17:05
|
(8)
:) "хорошо" это не то слово для категории "эмпирически" но пары типа Иванофф Андрей Петрович ~ Иванов Андрей Петрович и Иванов Андрей Петроффич ~ Иванов Андрей Петрович ловились ;) |
|||
10
Дядя Васька
22.09.08
✎
17:11
|
Свалить символы в ТЗ и отсортировать имхо... Колонка1 - символы из строки 1, колонка2 - символы из строки 2.. После сортировки посмотреть сколько получилось пустых, это несовпавший процент. Т.е. если из 10 символов пустых три, значит совпадение 70%.
|
|||
11
Токс3
22.09.08
✎
17:25
|
(6) Посимвольное сравнение может круто облажаться...
Угадай, с чем будет 100-ное совпадение "улыбок тебе казак"? |
|||
12
Михей
22.09.08
✎
17:27
|
(11) "казак е...т кобылу" чтоли?
|
|||
13
Токс3
22.09.08
✎
17:30
|
(12) Уху... перестановка символов валит интеллект на корню...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |