![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
интересует последний этап, как? если не сложно, покажи на примере право на ведение садоводства предоставление земли для ведения садоводства предоставление земли для садоводства Это сообщение отредактировал(а) ginnie - 22.9.2011, 19:06 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
KSURi, а у меня вопрос по нормализации, каким образом делается? словарем?
|
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
В том числе и словарем, да. На основе словаря можно сделать предсказание слов, которых в словаре нет.
Это сообщение отредактировал(а) KSURi - 22.9.2011, 21:17 -------------------- Died at Life.pl line 21 |
|||
|
||||
alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
||||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
-------------------- Died at Life.pl line 21 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
alezzz, кроме статьи Сегаловича на ночь почитайте еще часть диссертации Игоря Ножова "Морфологическая и синтаксическая обработка текста (модели и программы)"
![]() Это сообщение отредактировал(а) ginnie - 23.9.2011, 00:42 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
Suppir |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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-код ) |
|||
|
||||
alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 1 Всего: 14 |
KSURi, ginnie, спасибо, попробую осилить, интересуют именно методы без словаря.
|
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Suppir, можно для удаления окончаний (и суффиксов) использовать стеммер Портера Lingua::Stem::Ru.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |