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

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Димас
Житель
Сообщения: 593
Зарегистрирован: 22 июл 2005, 16:58
Откуда: Север->Торонто

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

Сообщение Димас »

Есть задача - сравнить две строки и решить, это тоже самое или нет, невзирая на опечатки.

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

Есть идеи?
Zy
Маньяк
Сообщения: 4706
Зарегистрирован: 20 янв 2005, 19:11

Сообщение Zy »

есть - расковырять вордовский спелл-чекер.
Аватара пользователя
Gatchinskiy
Комбинатор
Сообщения: 20952
Зарегистрирован: 05 окт 2003, 20:44
Откуда: St. Petersburg(Gatchina) > Vancouver

Сообщение Gatchinskiy »

Zy писал(а):есть - расковырять вордовский спелл-чекер.
... или гугловский 'Did you mean?' ... :)
Аватара пользователя
Димас
Житель
Сообщения: 593
Зарегистрирован: 22 июл 2005, 16:58
Откуда: Север->Торонто

Сообщение Димас »

Zy писал(а):есть - расковырять вордовский спелл-чекер.
Как это "расковырять" ? Disassembler ? I am going to die.
ir
Житель
Сообщения: 876
Зарегистрирован: 19 июл 2004, 23:36
Откуда: Ванкувер

Сообщение 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]
Vovchik
Маньяк
Сообщения: 2841
Зарегистрирован: 20 фев 2003, 09:15
Откуда: Vancouver

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

Сообщение Vovchik »

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

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

Есть идеи?
Купить лексический анализатор - типа софтина такая.
Аватара пользователя
Проф. Преображенский
Графоман
Сообщения: 20276
Зарегистрирован: 08 ноя 2006, 11:10

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

Сообщение Проф. Преображенский »

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

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

Есть идеи?
Элементарно оценить степень совпадения. В данном случае - 6/7
Аватара пользователя
Димас
Житель
Сообщения: 593
Зарегистрирован: 22 июл 2005, 16: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]
"через вычсление процента совпадения" 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.
ir
Житель
Сообщения: 876
Зарегистрирован: 19 июл 2004, 23:36
Откуда: Ванкувер

Сообщение 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]
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Xm

Сообщение aissp »

Я бы порылся в инете на тему ispell. Помницца в Ремблере именно испелл прикручивали для того чтобы определить правильное слово и похожие слова для поиска. Если очень очень очень надо - могу поискать или спросить
Аватара пользователя
Димас
Житель
Сообщения: 593
Зарегистрирован: 22 июл 2005, 16:58
Откуда: Север->Торонто

Сообщение Димас »

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]
Аватара пользователя
Димас
Житель
Сообщения: 593
Зарегистрирован: 22 июл 2005, 16:58
Откуда: Север->Торонто

Re: Xm

Сообщение Димас »

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]
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Ну лана

Сообщение aissp »

Тогда просто ссылочку интересную:)

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

ДА и сам сайт не так хорош как мануалы к мат лабу но весьма не плох=)
Аватара пользователя
Lepsik
Житель
Сообщения: 522
Зарегистрирован: 17 фев 2003, 18:34
Откуда: Berlin
Контактная информация:

Сообщение Lepsik »

Аватара пользователя
Димас
Житель
Сообщения: 593
Зарегистрирован: 22 июл 2005, 16:58
Откуда: Север->Торонто

Сообщение Димас »

To Lepsik, aissp - thank's, thank's, thank's, thank's, thank's !!! :super:
Ответить