Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Общий раздел > Мысли, идеи и полезные статьи
Дата
USD/RUB58.7570
BTC/USD0.0000
Мысли, идеи и полезные статьи Интересные статьи, а также креативные идеи в сфере онлайн бизнеса.

Закрытая тема
Опции темы Опции просмотра
Старый 04.07.2012, 01:20   #1
beabetters
Virgillio
 
Аватар для beabetters
 
Регистрация: 27.04.2009
Сообщений: 239
Бабло: $56910
По умолчанию Определение слов

Может кто знает как решается такая задача?
Сейчас для одного проекта встала такая задача, необходимо определить "одинаковость" слов. Например, две фразы:
- Иванову выслали поздравление
- Иванова поздравили письмом
В обоих фразах нет ни одного одинакового слова (по точному вхождению), но по сути есть одно и то же слово "Иванов". Вот как это программным путем определить? Имеется ввиду алгоритм. Такое часто можно встретить в различных сервисах, тот же гугл или даже вконтакт, к примеру задаю в поиске слово "стартап", но поиск выдает результаты в которых встречаются слова "стартап", "стартапу", "стартапа", "стартапы" и пр. Врядли такие сервисы имеют базы всех существующих "одинаковых" слов о_0. Скорее всего это как-то программно решается? Или я чего то туплю...
beabetters вне форума  
Старый 04.07.2012, 01:24   #2
bess
Раб системы
 
Регистрация: 07.02.2010
Сообщений: 6,178
Бабло: $1153600
По умолчанию

Цитата:
Врядли такие сервисы имеют базы всех существующих "одинаковых" слов
оно так и есть
__________________
За трафом - в Bizzclick !
Огненное решение для конвертации бурж давнлоад трафика. Работаем с 2015 года. В ПМ.
bess вне форума  
Старый 04.07.2012, 01:28   #3
Diplomat
Senior Member
 
Аватар для Diplomat
 
Регистрация: 26.10.2009
Сообщений: 594
Бабло: $123024
По умолчанию

Рекомендую ознакомиться http://ru.wikipedia.org/wiki/Расстояние_Левенштейна
В php была функция, вродь. Сам не использовал только читал.
Diplomat вне форума  
Старый 04.07.2012, 01:34   #4
1een
Senior Member
 
Аватар для 1een
 
Регистрация: 28.05.2009
Сообщений: 1,304
Бабло: $161695
По умолчанию

Возможно, поможет (не пробовал, встречал упоминания)
1een вне форума  
Старый 04.07.2012, 01:37   #5
beabetters
Virgillio
 
Аватар для beabetters
 
Регистрация: 27.04.2009
Сообщений: 239
Бабло: $56910
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Diplomat Посмотреть сообщение
Рекомендую ознакомиться http://ru.wikipedia.org/wiki/Расстояние_Левенштейна
В php была функция, вродь. Сам не использовал только читал.
спс, во чо нашел реализации алгоритма Левенштейна на разных языках программирования
ну щас разбираться с этим голова лопнет) завтра попробую разобраться

Цитата:
Сообщение от 1een Посмотреть сообщение
Возможно, поможет (не пробовал, встречал упоминания)
во, походу это и есть то что нужно, спасибо!

Последний раз редактировалось beabetters; 04.07.2012 в 01:46.
beabetters вне форума  
Старый 04.07.2012, 18:53   #6
Nou
Senior Member
 
Регистрация: 11.07.2007
Сообщений: 2,074
Бабло: $134959
По умолчанию

Для простой морфологии подойдет стеммер портера
Nou вне форума  
Старый 05.07.2012, 03:56   #7
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,382
Бабло: $470735
По умолчанию

со стеммингом сложнее будет, расстояние Левенштейна более универсально.
Только я бы все равно проводил предварительную нормализацию текста, например, приведение всех слов к одинаковому регистру и замену пробельных знаков одним пробелом и тд
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 05.07.2012, 19:41   #8
pablobablo
Senior Member
 
Аватар для pablobablo
 
Регистрация: 16.04.2009
Сообщений: 353
Бабло: $79466
Отправить сообщение для pablobablo с помощью ICQ
По умолчанию

http://php.net/manual/ru/function.levenshtein.php
pablobablo вне форума  
Старый 05.07.2012, 20:39   #9
beabetters
Virgillio
 
Аватар для beabetters
 
Регистрация: 27.04.2009
Сообщений: 239
Бабло: $56910
ТС -->
автор темы ТС По умолчанию

Всем спасибо, для моих целей вариант предложенный 1een больше всего подходит, более того подходит как нельзя лучше. Применять на практике пока не было времени.
beabetters вне форума  
Старый 05.07.2012, 21:55   #10
Venya Tolinov
Senior Member
 
Аватар для Venya Tolinov
 
Регистрация: 24.11.2010
Сообщений: 229
Бабло: $52840
Отправить сообщение для Venya Tolinov с помощью Skype™
По умолчанию

Попробую разбавить безнадёжный оптимизм ложкой дёгтя. Задача соответствия фразы из двух слов другой фразе из двух слов в общем виде неразрешима. Тупая синонимизация в произвольных частях речи ресурсов жрёт нормально, причём для такой работы базу надо собирать самому. Когдя я этим заморачивался у меня для русского языка была база в 16 млн. слов. Кое что я уже писал http://gofuckbiz.com/showthread.php?t=30527
Для двух слов понадобится база... умножать умеете?
__________________
Amazon Graffiti - монетизация страниц в Facebook
Venya Tolinov вне форума  
Закрытая тема



Опции темы
Опции просмотра