Суффиксы. Окончания. Корень предложения.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Суффиксы. Окончания. Корень предложения.

Сообщение kibernetics » 30.06.2007 (Сб) 1:10

Интересно, как бы это грамотно вычленить корень поискового слова? Т.е. я юзер, ввожу "морковка", и мне нужно както вычленить из слова корень, чтобы найти все однокоренные слова с разными суффиксами и окончаниями... В итоге, понаходятся слова морковный, морковь, и т.д. Видел такую реализацию в программе "Консультант+"

Т.е. нужно чтоли модуль писать который бы делал разбор слова по правилам русского языка? Или может есть какой-то готовый код? Что думают знатоки?

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 30.06.2007 (Сб) 2:42

Тут вариант только один: составлять словарь корней и уже по нему анализировать слово, находить вхождение корня, отфильтровывать из текста слова с корнем и разными суффиксами и окончаниями... Это так, на вскидку, а там нужно ещё и суффиксы смотреть, и приставки и окончания. Одним словом, жуткая математическая лингвистика...

Если делать самому, то:

Словари находятся либо в сети (плохенькие), либо во всякого рода лингвистических институтах (дорогие), либо составляются сами (...).

С моей точки зрения модуль на VB писать не оптимально, так как VB он хоть и простой, но неторопливый, а словарь там будет весомый.

П.С.: был у меня один словарь с сети скаченный, сейчас пришлю.

Stop Kran
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 22
Зарегистрирован: 19.06.2007 (Вт) 3:35
Откуда: из онлайна

Сообщение Stop Kran » 30.06.2007 (Сб) 2:55

Недумою что прямо словарь. А если словарь писать то лутше не корней а всего остального чтобы это отсекал. Словарь меньше получится. Хотя нужно чательно поискать как это делается. Ведь любая поисковая система делает именно так.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 30.06.2007 (Сб) 8:18

Stop Kran
Ты б следил за грамотностью :!:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.06.2007 (Сб) 9:30

У меня один знакомый уже много лет приторговывает самописным лексическим анализатором. (Не на VB, ессно.)
Могу дать контакт.
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.06.2007 (Сб) 11:00

Уверен, что Stop Kran не определит корень слова "морковка". :)
Лучший способ понять что-то самому — объяснить это другому.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.06.2007 (Сб) 11:33

Мне кажется, что если определять вначале, есть ли у слова окончание на -а, -е, -у, -и... отсекать его. Выявлять есть ли суффикс? То может можно и до корня дойти...
Вроде же немного слов-исключений для правил....

tyomitch
спасибо конечно. но мне этот суперрулескореньэкстрактор нужен в виде модуля в проге. там не то, чтобы уж такой детальный анализатор нужен.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.06.2007 (Сб) 13:48

kibernetics, что будешь делать с многокоренными словами? ;-)
Изображение

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 30.06.2007 (Сб) 15:17

tyomitch
SELECT * FROM *
WHERE *** LIKE 'корень'

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.06.2007 (Сб) 15:25

Я не про это.
Я про то, что от них мало суффикс отрезать, надо ещё и остаток порезать на кусочки.
Изображение

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 30.06.2007 (Сб) 21:59

На мой взгляд, тут всё как раз просто.
Нужно лишь отобразить все слова с данным корнем. Даже многокоренные. А вот вычленить корень будет не совсем просто. Если поиском вхождения, то может зацепить приставку или суффикс. Лучше не заморачиваться, а купить уже готовое. Дорого, зато наверняка правильно.

Или, если повезёт найти в сети забесплатно.
Последний раз редактировалось Crio 02.07.2007 (Пн) 13:18, всего редактировалось 1 раз.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 01.07.2007 (Вс) 11:32

Crio
не всё золото, что блестит,... или
дороже не значит лучше... :wink:
спасибо за словарь
попробую догнать до всего сам

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 01.07.2007 (Вс) 16:27

Я имел в виду, что на этом рынке цена прямопропорциональна качеству.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 01.07.2007 (Вс) 20:34

Crio
это не так

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 07.07.2007 (Сб) 14:01

А мне кажется нужно всетаки делать рабор ...

При этом нужно иметь в виду следующие факторы:

1. Русские слова как правило можно представить в сл.виде:
[приставка] + корень + [суффикс] + [окончание]
2. В русском языке слово может содержать несколько корней т.е.
[приставка] + корень + соединительная гласная + корень + [суффикс] + [окончание]
3. И опять же в русском языке есть иностранные слова (список которых можно составить)
4. Существует ряд корней для которых есть правила (типа ЛАГ, ЛОЖ)
5. Слово которые будет передано для анализа - не обязательно будет существительным.
6. Насколько я помню со школы .. для вычлинения корня слова нужно подобрать однокоренное слово .... отрезать все лишнее и общая часть будет корнем.

А теперь по пунктам:
Пункт (1) - Список приставок, суфиксов и окончаний в принципе можно сделать. Большую часть слов ты разложить сможешь.
По окончанию, маломальски сможешь определить существительное это или что (и то не всегда) - это (5). Исключить иностранные слова (3) можешь по списку, как и выбрать ряд корней (4). Для реализации (6) нужны слова, похожесть которых ты как-то должен вычленить - если взять большой словарь то сделать можно.

Если опираться на (1) ... то тебе понадобится список основных корней ... без приставок и соффиксов.

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.07.2007 (Сб) 14:08

2. масса слов с приставкой после первого корня, хотя бы "водопровод". Наверняка можно и с суффиксом перед вторым корнем подобрать.
Изображение

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 07.07.2007 (Сб) 14:15

Еще и много приставок бывает:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 07.07.2007 (Сб) 14:36

Некоторую пищу для размышлений по этому поводу я находил в свое время на сайте Национального корпуса русского языка и тех людей, которые писали им ПО.
Листинги не горят!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 102

    TopList