|
|
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
Подобное выражение s="диск" Set r = ActiveSheet.Range("A1:A3000") Set g = r.Find(What:=s) ищет в столбце А в строках от 1 до 3000 точное совпадение или вхождение в слово слова диск, без учета регистра. Вопрос: как организовать поиск похожего слова. Например с отличием в 1 букву? Или похожее скажем на 80 процентов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 14:02:47 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
например, в цикле поочередно менять по одной букве на "?" и собирать результаты поиска ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 14:53:55 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
Всё равно наверное придётся думать какие похожие слова могут встречаться Что-то типа "диск*","*диск","дис*", "*иск" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 15:11:38 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
http://www.planetaexcel.ru/tip.php?aid=68&PHPSESSID=99bc51d19af2a8c6b82ffd4c303c64f1 просмотри данную функцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 15:20:02 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
excel-ufahttp://www.planetaexcel.ru/tip.php?aid=68&PHPSESSID=99bc51d19af2a8c6b82ffd4c303c64f1 просмотри данную функцию Это не совсем то. Но поже, что можно приспособить. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 16:20:05 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
вот, может это поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:02:19 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
KL (XL)еще вариант: http://j-walk.com/ss/excel/tips/tip77.htm KL [MVP - Microsoft Excel] Я так реализовал Sub poiskpoh(pp) Rem поиск похожего слова Set r = ActiveSheet.Range("C" & kon & ":C60000") Set g = r.Find(What:="") For i = 3 To g.Row - 1 If Len(pp) = Len(Range("C" & i)) Then s4et = 0 txt = UCase(pp) mask = UCase(Range("C" & i)) For j = 1 To Len(pp) If Mid(txt, j, 1) = Mid(mask, j, 1) Then s4et = s4et + 1 Next j Rem MsgBox (Range("C" & i) & " " & pp & " " & s4et) If s4et / Len(pp) > 0.5 Then MsgBox (s4et & " букв из " & Len(pp) & " Слово " & pp & " похоже на слово " & Range("C" & i) & " с точностью " & 100 * s4et / Len(pp) & " %") End If Next i End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 09:26:30 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
talgat Я так реализовал Sub poiskpoh(pp) Rem поиск похожего слова Set r = ActiveSheet.Range("C" & kon & ":C60000") Set g = r.Find(What:="") For i = 3 To g.Row - 1 If Len(pp) = Len(Range("C" & i)) Then s4et = 0 txt = UCase(pp) mask = UCase(Range("C" & i)) For j = 1 To Len(pp) If Mid(txt, j, 1) = Mid(mask, j, 1) Then s4et = s4et + 1 Next j Rem MsgBox (Range("C" & i) & " " & pp & " " & s4et) If s4et / Len(pp) > 0.5 Then MsgBox (s4et & " букв из " & Len(pp) & " Слово " & pp & " похоже на слово " & Range("C" & i) & " с точностью " & 100 * s4et / Len(pp) & " %") End If Next i End Sub Коментарии: слова (база) в столбце "С" с 3 строки. Выводятся на подтверждение слова в которых буквы совпали более чем на 50% (If s4et / Len(pp) > 0.5) от длины слова. В другой процедуре выводится еще запрос типа "добавить похожее слово в базу" и "произвести замену в предложении" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 10:33:32 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Т.е. Если в искомом слове утеряна одна буква, то оно не похоже? типа "подоконник" и "подоконик" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 10:33:47 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
Делал когда-то похожую программу. Создал таблицу соответствий. В одной колонке правильное название фирм, в другой варианты неправильного написания. Например: Фирма 1 - Фир*1. Неправильные значения в таблице исправляются на правильные. Программа до сих пор работает. Табличка пополняется. Проблема только в том, что может быть несколько похожих названий. Автоматизация в таком случае приведет к ошибкам. В общем случае, это скорее организационный вопрос (создание справочников), чем программный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 10:51:02 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
Sinner Код: plaintext Т.е. Если в искомом слове утеряна одна буква, то оно не похоже? типа "подоконник" и "подоконик" Ваша правда. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 12:23:16 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
я до этого присылал функцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 15:02:35 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
в первом своем ответе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 15:13:28 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
Sinnerв первом своем ответе Скачал. Разберусь. Спасибо всем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2007, 15:28:46 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
talgat Sinnerв первом своем ответе Скачал. Разберусь. Спасибо всем! как реализовал? поделись опытом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2007, 10:20:39 |
|
||
|
Excel. Поиск похожего слова.
|
|||
|---|---|---|---|
|
#18+
Вообще, задачка довольно нетривиальная. Советую поискать сайтах-коллекциях алгоритмов и т.п. На каком-то сайте по Дельфи я встречал парочку алгоритмов, реализующих неточный поиск - функция возвращала определенную степень похожести (в одном из них даже прорабатывался вариант написания задом-наперед). Но ссылки у меня не осталось:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2007, 18:21:38 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34360940&tid=2182617]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 369ms |

| 0 / 0 |
