![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.04.2012
Сообщений: 29
|
![]()
Доброго времени суток,
столкнулся с такой проблемой: имею 2 строки, например ("пашек" и "пазек") разница в одну букву(может быть и в 2 и в 3 в редких случаях), так же может быть разница в количестве букв в строках, например("пашек" и "пасзек"), т.е. строки то обозначают одно и тоже слово, однако в разным местах написано по разному, можно ли как то сравнивать эти строки по приблизительно похожему составу букв или как-то по-другому не прибегая к сложным решениям? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 17.12.2008
Сообщений: 250
|
![]()
можно посчитать растояния левенштейна
из википедии wiki код тоже из англ википедии Код:
т.е. можем сравнивать по триграммам например и смотреть сколько триграмм совпало еще можно подключить библиотеку спеллчекинга и просто исправлять ошибки в словах |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.04.2012
Сообщений: 29
|
![]()
Reskov, спасибо за направление куда копать.
Про библиотеку понравилось, однако нашёл http://www.spellcheck.net , но русский не поддерживается. Может быть Есть что подказать по этому поводу. Хотя скорее всего такие слова не будут исправляться этой библиотекой, потому что это фамилии, но всё таки хотелось бы по простому =), поэтому попытка не пытка. |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Это по-моему называется сравнением по релевантности.
Алгоритмы в инете есть, когда-то находил парочку. Даже когда-то отсебятинку лепил: Код:
I'm learning to live...
Последний раз редактировалось Stilet; 27.06.2012 в 20:55. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 17.12.2008
Сообщений: 250
|
![]()
Про библиотеку... на гуглил... там есть и русский словарь к нему
http://sourceforge.net/projects/nhunspell/files/ http://code.google.com/p/hunspell-ru...1.zip&can=2&q= и попростому расстояние левештейна... смотрите составляете словарь фамилий... если их немного (до 10000) можете для каждого считать растояние левенштейна и выбирать фамилию с наименьшим расстоянием... если слов много тогда разбиваете слова по три граммам и заносите их в словарь этих триграмм, потом тоже выбираете слово с наибольшим совпадением трехграмм на самом деле все это пишется довольно легко а если будете использовать спел чекер то вам нужно просто составить для него словарь фамилий... Последний раз редактировалось Reskov; 27.06.2012 в 22:00. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сравнение строк | revaldo666 | Общие вопросы C/C++ | 6 | 05.12.2011 18:27 |
Сравнение строк в С++ | Китти | Общие вопросы C/C++ | 2 | 12.10.2010 16:56 |
Макрос на сравнение и подсчет в первом столбце строк, и сумирование значений этих строк в другом столбце | Shpr0T | Microsoft Office Excel | 8 | 30.08.2010 17:52 |
С++. Сравнение строк | maxlav | Помощь студентам | 8 | 25.06.2009 04:33 |
Сравнение строк | HOMER | Общие вопросы Delphi | 7 | 04.01.2008 05:53 |