Страница 1 из 1

"Smart" сравнение строк

Добавлено: 22 мар 2006, 09:50
Димас
Есть задача - сравнить две строки и решить, это тоже самое или нет, невзирая на опечатки.

Например TORONTO=TPRONTO
Не думаю SOUNDEX поймет что это тоже самое.

Есть идеи?

Добавлено: 22 мар 2006, 10:14
Zy
есть - расковырять вордовский спелл-чекер.

Добавлено: 22 мар 2006, 10:24
Gatchinskiy
Zy писал(а):есть - расковырять вордовский спелл-чекер.
... или гугловский 'Did you mean?' ... :)

Добавлено: 22 мар 2006, 10:53
Димас
Zy писал(а):есть - расковырять вордовский спелл-чекер.
Как это "расковырять" ? Disassembler ? I am going to die.

Добавлено: 22 мар 2006, 10:58
ir
[trn]esli slov mnogo, to sdelat' avtomatom sobstvennyi slovar' (ego mozhno sdelat' voobshe iz lyubogo reprezentativnogo teksta). Potom prosto smotret' na sovpadenie i esli ne sovpadaet - iskat' blizhaishee slovo cherez vychslenie procenta sovpadeniya. [/trn]

Re: "Smart" сравнение строк

Добавлено: 22 мар 2006, 11:16
Vovchik
Димас писал(а):Есть задача - сравнить две строки и решить, это тоже самое или нет, невзирая на опечатки.

Например TORONTO=TPRONTO
Не думаю SOUNDEX поймет что это тоже самое.

Есть идеи?
Купить лексический анализатор - типа софтина такая.

Re: "Smart" сравнение строк

Добавлено: 22 мар 2006, 11:19
Проф. Преображенский
Димас писал(а):Есть задача - сравнить две строки и решить, это тоже самое или нет, невзирая на опечатки.

Например TORONTO=TPRONTO
Не думаю SOUNDEX поймет что это тоже самое.

Есть идеи?
Элементарно оценить степень совпадения. В данном случае - 6/7

Добавлено: 22 мар 2006, 11:25
Димас
ir писал(а):[trn]esli slov mnogo, to sdelat' avtomatom sobstvennyi slovar' (ego mozhno sdelat' voobshe iz lyubogo reprezentativnogo teksta). Potom prosto smotret' na sovpadenie i esli ne sovpadaet - iskat' blizhaishee slovo cherez vychslenie procenta sovpadeniya. [/trn]
"через вычсление процента совпадения" it exactly what I need. But it is not a very simple function. For example, a result for Toronot and Toronwz should be different. In 2nd case we have 2 mistakes, in first - 1 shift. So the function should return higher score in the first case.

Добавлено: 22 мар 2006, 11:45
ir
Димас писал(а):
ir писал(а):[trn]esli slov mnogo, to sdelat' avtomatom sobstvennyi slovar' (ego mozhno sdelat' voobshe iz lyubogo reprezentativnogo teksta). Potom prosto smotret' na sovpadenie i esli ne sovpadaet - iskat' blizhaishee slovo cherez vychslenie procenta sovpadeniya. [/trn]
"через вычсление процента совпадения" it exactly what I need. But it is not a very simple function. For example, a result for Toronot and Toronwz should be different. In 2nd case we have 2 mistakes, in first - 1 shift. So the function should return higher score in the first case.
[trn]ya tak ponyala, chto v dannom sluchae pofig chto oshibki raznye. Sravnivaem-to s etalonom, poetomu obychno stavitsya granica (naprimer 85%), vyshe kotoroi schitaetsya chto mozhet byt' opechatka, nizhe - drugoe slovo. Problema v tom, chto bazy obychno ne shibko horosho s takimi shtukami rabotayut - u menya fail v ~96 mln. zapisei rabotal bol'she sutok - no tam algoritm poslozhnee byl (eto bylo na MS Servere) [/trn]

Xm

Добавлено: 22 мар 2006, 13:06
aissp
Я бы порылся в инете на тему ispell. Помницца в Ремблере именно испелл прикручивали для того чтобы определить правильное слово и похожие слова для поиска. Если очень очень очень надо - могу поискать или спросить

Добавлено: 23 мар 2006, 06:37
Димас
ir писал(а):
Димас писал(а):
ir писал(а):[trn]esli slov mnogo, to sdelat' avtomatom sobstvennyi slovar' (ego mozhno sdelat' voobshe iz lyubogo reprezentativnogo teksta). Potom prosto smotret' na sovpadenie i esli ne sovpadaet - iskat' blizhaishee slovo cherez vychslenie procenta sovpadeniya. [/trn]
"через вычсление процента совпадения" it exactly what I need. But it is not a very simple function. For example, a result for Toronot and Toronwz should be different. In 2nd case we have 2 mistakes, in first - 1 shift. So the function should return higher score in the first case.
[trn]ya tak ponyala, chto v dannom sluchae pofig chto oshibki raznye. Sravnivaem-to s etalonom, poetomu obychno stavitsya granica (naprimer 85%), vyshe kotoroi schitaetsya chto mozhet byt' opechatka, nizhe - drugoe slovo. Problema v tom, chto bazy obychno ne shibko horosho s takimi shtukami rabotayut - u menya fail v ~96 mln. zapisei rabotal bol'she sutok - no tam algoritm poslozhnee byl (eto bylo na MS Servere) [/trn]
[trn]immenno tak. ya ne znaju prichin vseh oshibok. Vopros immenno v opredelenii procentov - kak opredelit stroki podobni na 85% ili na 25 %?Tupoe pereschitivanie kol-va bukv konechno ne interesno[/trn]

Re: Xm

Добавлено: 23 мар 2006, 06:43
Димас
aissp писал(а):Я бы порылся в инете на тему ispell. Помницца в Ремблере именно испелл прикручивали для того чтобы определить правильное слово и похожие слова для поиска. Если очень очень очень надо - могу поискать или спросить
Thanks’a lot!
[trn]No zadacha sovsem drugaja. Mne ne nado opredeljat pravilnoe slovo, mne nado sravnit imejushujusja paru.[/trn]
[trn]Est takaja vot shtuka[/trn]- Levenshtein Distance, [trn]s nei poprobuju poigrat. [/trn]

Ну лана

Добавлено: 23 мар 2006, 10:19
aissp
Тогда просто ссылочку интересную:)

http://algolist.manual.ru/search/

ДА и сам сайт не так хорош как мануалы к мат лабу но весьма не плох=)

Добавлено: 23 мар 2006, 11:59
Lepsik

Добавлено: 23 мар 2006, 12:26
Димас
To Lepsik, aissp - thank's, thank's, thank's, thank's, thank's !!! :super: