Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить похожие фразы? 
:(
    Опции темы
ginnie
Дата 22.9.2011, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



Цитата

убрать стоп-слова, нормализовать (в т.ч. словоформы), отсортировать (?), сравнить


интересует последний этап, как?

если не сложно, покажи на примере

право на ведение садоводства
предоставление земли для ведения садоводства
предоставление земли для садоводства

Это сообщение отредактировал(а) ginnie - 22.9.2011, 19:06


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
KSURi
Дата 22.9.2011, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Выкидываем стоп-слова, нормализуем, получаем:
право ведение садоводство
предоставление земля ведение садоводство
предоставление земля садоводство

Получаем степень похожести (совпадения / кол-во слов):
право ведение садоводство <=> предоставление земля ведение садоводство: 0.14
предоставление земля ведение садоводство <=> предоставление земля садоводство: 0.42
предоставление земля садоводство <=> право ведение садоводство: 0.16

Это сообщение отредактировал(а) KSURi - 22.9.2011, 20:09


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
alezzz
Дата 22.9.2011, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



KSURi, а у меня вопрос по нормализации, каким образом делается? словарем?
PM MAIL   Вверх
KSURi
Дата 22.9.2011, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



В том числе и словарем, да. На основе словаря можно сделать предсказание слов, которых в словаре нет.

Это сообщение отредактировал(а) KSURi - 22.9.2011, 21:17


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
alezzz
Дата 22.9.2011, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



Цитата(KSURi @  22.9.2011,  21:15 Найти цитируемый пост)
В том числе и словарем, да.

но все-же больше интересуют алгоритмы, есть такие?

PM MAIL   Вверх
KSURi
Дата 22.9.2011, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27





--------------------
Died at Life.pl line 21
PM Jabber   Вверх
ginnie
Дата 23.9.2011, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



alezzz, кроме статьи Сегаловича на ночь почитайте еще часть диссертации Игоря Ножова "Морфологическая и синтаксическая обработка текста (модели и программы)"  smile Там вроде бы про бессловарный морфологический анализатор написано.

Это сообщение отредактировал(а) ginnie - 23.9.2011, 00:42


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
Suppir
Дата 23.9.2011, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

Репутация: нет
Всего: нет



Я для себя определили следующий алгоритм сравнения:


предоставление земли для ведения садоводства
предоставление земли для садоводства

1) убираем частицы, союзы, знаки, препинания. Дефисы меняем на пробелы. Ё на е. Переводим все в нижний регистр

предоставление земли ведения садоводства
предоставление земли садоводства

2) разбиваем строку на массив слов

3) убираем окончания буквы [уеыаоэяиюй], которые идут в конце слова


предоставлен земл веден садоводств
предоставлен земл садоводств


4) теперь сравниваем соседние массивы слов по следующем алгоритму

4.1) считаем общее количество совпадающих слов в двух массивах. Делим на общее количество слов в массивах.
Совпадает 6 слов из 7. Получили точность 86%

4.2) исключаем слова, которые не получили совпадений:

предоставлен земл садоводств
предоставлен земл садоводств

(исключили "веден")

4.3) сопоставляем одинаковые слова и их позиции в массиве. Все позиции совпадают (0 = 0, 1 = 1, 2 = 2).
Значит, точность расстановки слов = 100%

Считаем среднюю точность совпадения: (86 + 100) / 2 = 93 %


-----------------------------------------


Попробуем другие строки:


право на ведение садоводства
предоставление земли для ведения садоводства

преобразовываем:

прав веден садоводств
предоставлен земл веден  садоводств

По первой проверке получаем точность совпадения 4 / 7 = 57 %

Исключаем не совпадающие слова для второй проверки

веден садоводств
веден  садоводств

точность расстановки опять 100%

Средняя точность = 78 %


--------------------------

Теперь пробуем мало похожие строки

оценка земель садоводческих объединений
право на ведение садоводства

Преобразуем:

оценк земель садоводческ объединен
прав веден садоводств

Точность по первой проверке = 0%
Точность по второй проверке = 0%

Хотя, конечно, нам стоило получше преобразовать слова "садоводческих" и "садоводства". Тогда бы получили точность 13%

Добавлено через 1 минуту и 6 секунд
Осталось накидать Perl-код )
PM MAIL   Вверх
alezzz
Дата 23.9.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



KSURiginnie, спасибо, попробую осилить, интересуют именно методы без словаря.
PM MAIL   Вверх
ginnie
Дата 23.9.2011, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



Suppir, можно для удаления окончаний (и суффиксов) использовать стеммер Портера Lingua::Stem::Ru.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0962 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.