![]() |
|
![]() ![]() ![]() |
|
Analitik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
Задача: Выделить неизменную часть слова(основу, псевдокорень) имея список всех воможных словоформ
Пример всех словоформ для слова "окно": ОКНО ОКНА ОКОН ОКНОМ ОКНАМИ ОКНУ ОКНАМ ОКНЕ ОКНАХ ОКОННЫЙ ОКОННАЯ ОКОННОЕ ОКОННЫЕ ОКОННОГО ОКОННОЙ ОКОННЫХ ОКОННЫМ ОКОННОЮ ОКОННЫМИ ОКОННУЮ ОКОННОМУ ОКОННОМ ОКОНЕН ОКОННА ОКОННО ОКОННЫ Из списка видно, что для слова "окно" возможны 2 неизменные основы слова: "ОКН" и "ОКОН" Как программно КОРРЕКТНО (с учетом всех возможных правил русского языка) выделять основу(ы) имея список словоформ? Думаю алгоритм уже существует, если кому известен, подскажите где почитать... Конечно можно было бы перебором выявить набор одинаковых символов (части слова) для всего списка, НО... как быть если основ может быть 2 и более? |
|||
|
||||
Lipetsk |
|
|||
![]() в форме ;) ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 28.1.2009 Где: Липецк Репутация: 2 Всего: 5 |
наверно, нужно научиться отбрасывать окончания, суффиксы, приставки, чтобы оставался один корень
|
|||
|
||||
Analitik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
это похоже на стемминг, данный алгоритм не интересует из-за погрешностей для более точного результата использую морфологический словарь, получаю ВСЕ возможные словоформы, а вот как для всех полученных словоформ выделить неизменную часть слова, псевдокорень... или псевдокорнИ ? |
|||
|
||||
dereyly |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 1 Всего: 4 |
Как ни странно считается эффективным использования словаря словоформ. Для словоформ не обнаруженных в словаре используется алгоритм основанный на поиске корневых основ в словоформе разбитой с помощью стеминга.
|
|||
|
||||
Analitik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
Это мне известно, как написал выше "... использую морфологический словарь ..." Как быть со списком полученных из словаря словоформ, как из них выделить псевдокорни? |
|||
|
||||
Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 1 Всего: 11 |
Я думаю, без словаря окончаний невозможно понять, где неизменяемая часть.
Добавлено через 3 минуты и 2 секунды Кстати говоря, по-моему, Вы свалили в кучу несколько лексем -- "окн[о]" и "окон[ный]" -- это разные лексемы. |
|||
|
||||
dereyly |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 1 Всего: 4 |
Тоже из словаря... Простое узнавание словоформы никакой пользы не несет, значит словарь должен иметь структуру где каждая словоформа имеет ссылку на корневую основу и на инфинитив слова (к примеру "окно"). Если я неошибаюсь такой словарь генерируется с помощью словарей с правилами словообразования. У Abby вроде был такой словарик, но я не помню продают ли они еще на него лицензию или нет. |
||||
|
|||||
Analitik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
Дело в том что мне нужны "ПСЕВДОкорни" слов, а не корни Поясню зачем: - есть ПО выполняющее функции "поисковика" (поиск в интернете на определенных сайтах) - есть интерфейс добавления поисковых запросов(слов) - поисковые слова сохраняются в базе... Вобщем я хочу в интерфейс добавления поисковых слов в ПО подключить "оптимизатор" этих поисковых слов... этот самый оптимизатор как раз и должен из любого введенного пользователем поискового слова выделить его "псевдокорень" и использовать в дальнейшем в поиске "псевдокорень" в этом случае должен состоять из части поискового слова которая встречается во всех его словоформах таким образом, как написано в первом посте, если например пользователь ПО захочет найти информацию на тему "ОКНО", поиск нужно будет произвести по запросам "ОКОН" и "ОКН", т.к именно эти "псевдокорни" охватывают все возможные формы слова "ОКНО" Это сообщение отредактировал(а) Analitik - 12.8.2009, 21:13 |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
Analitik, на каком языке?
Это сообщение отредактировал(а) gcc - 14.8.2009, 10:09 |
|||
|
||||
Analitik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 16.1.2007 Репутация: нет Всего: нет |
gcc, на делфи.
А что за групировка? |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
посмотри это не оно? http://search.cpan.org/~creamyg/KinoSearch...ysis/Stemmer.pm
http://search.cpan.org/~creamyg/Lingua-Ste...tem/Snowball.pm Это сообщение отредактировал(а) gcc - 13.8.2009, 21:00 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |