Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.12.2009, 15:26
ziro ziro вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 6
Репутация: 10
По умолчанию Определить лексическое слово в русском предложение по контексту

Определить лексическое слово в русском предложение по контексту. - это и есть задание
Пример:
Конкретное значение многозначного слова может быть определено только в контексте, в сочетании с другими сло*вами, например: Дети играют в саду. — Сегодня играют молодые артисты, выпускники Щукинского училища. — Солнечные лучи играют на поверхности воды. В первом предложении слово «играть» имеет значение «резвясь, забавляться, развлекаться», во втором — «исполнять на сцене», а в третьем — «проявляться, обнаруживать себя каким-нибудь образом».

именно определить смысл многозначного слова.
1. Нужны словари, например типизированные файлы записей, содержащие
примерно такие поля:
-искомое слово(играют);
-слова, определяющие смысл, тоже запись(артисты, дети, лучи):
-фраза, определяющая смысл(исполнять на сцене,забавляться,проявляться и т.д.);
Задаем искомое слово, например
sl:='играют';
Ищем его в строке
if pos(sl,s)>0 then
begin
если есть слово, ищем слово, определяющее его смысл, для чего ищем заданное слово в словаре, определяем количество вариантов смысла и в цикле проверяем какой из этих вариантов встречается в тексте. Когда найдем, выводим соответствующее значение поля Смысл.
Ответить с цитированием
  #2  
Старый 09.12.2009, 15:27
ziro ziro вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 6
Репутация: 10
По умолчанию мои идеи!!

Для начала берём следующие соображения:
1. Смысл слова должен быть определён в текущем предложении. Т. е., например, смысл слова "коса":
Имеем: "Длинная коса" - смысл 1: коса, как вид прически. Смысл 2: коса как вид отмели на реках или других водоёмах.
Т. е. здесь смысл следует искать в других предложениях, которые расположены где-то рядом с текущим. Будем считать такие случаи пока вне рассмотрения.
2. Смысл слова в предложении зависит от слов, расположенных рядом в этом же предложении. Здесь можно применить статистический подход. Т. е. берём текст какой-то небольшой книги и запускаем поиск предложений, в которых упоминается слово "Коса". Затем для каждого найденного предложения выписываем значения слова "Коса". Затем вычисляем "весовые" коэффициенты относительно каждого отдельного смысла для каждого из слов, которые встречаются рядом со словом "Коса".
Затем когда мы будем анализировать какое-то предложение со словом "Коса" мы выберем из этого предложения все остальные слова и проведём сравнение весов каждого из них для каждого из смыслов - тот смысл для которого суммарно получится наибольший вес - этот смысл и будет выбран для слова "коса" в данном предложении.
Таким образом нам надо разработать модель данных словаря. Такой словарь о каждом из слов будет содержать такие данные:
1. Набор различных форм слова: "Коса", "Косы", "Косой", "Косами" ...
2. Набор "смежных" слов, которые статистически часто встречаются рядом со словом "Коса".
3. Для каждого смежного слова должен быть готовый весовой коэффициент. Возмжоно даже для отдельного смежного слова будут введены отдельные весовые коэффициенты для каждой отдельной формы исходного слова: "Коса", "Косы" и пр...
4. Можно усложнить модель и добавить перекрёстные статистические связи (корреляции) не только между основным словом и смежными, но и между самими смежными словами.
Ответить с цитированием
  #3  
Старый 09.12.2009, 15:28
ziro ziro вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 6
Репутация: 10
По умолчанию вот еще:))

Эти данные образуют информацию для анализа смысла слов.
На основе этих данных следует образовать словарь. Поэтому надо ещё продумать модель данных словаря - в каком виде хранить информацию из тех 4 пунктов.
---
Затем надо продумать алгоритмы, которые будут готовить данные для словаря. Т. е. это алгоритмы, анализирующие какие-нибудь тексты книг и ведущие подсчёт статистики по словам. Статистика будет выражена в весовых коэффициентах для каждой из связей между словами.
---
Вот примерно в этом направлении надо двигаться. Можно сделать упор не на статистику, а на лингвистику. Но здесь придётся лезть в правила словообразования - это может оказаться заморокой. Тогда в самом языке придётся разбираться...
---
Ещё есть такая штука - нейронные сети. На основе алгоритмов нейронных сетей выполняется, например, анализ изображений. - Для распознавания букв и других изображений. Например, есть сейчас отечественные разработки, которые позволяют распознавать людей по их фотографиям. Т. е. есть одна фотка и прога может очень точно найти этого же человека на других фотографиях в другом ракурсе с другим светом и с другой позиции. Аналогично, нейронные сети применяются для распознавания других объектов (не обязательно графических). Это я всё к тому, что возможно распознавание смысла слова было бы удобно поручить самообучающейся нейронной сети (алгоритму нейронной сети). Нейронные сети по мере обработки информации (это мера их опыта) самообучаются. Т. е. чем больше текстов обработает нейронная сеть, тем более точно она будет распознавать смысл слов. Процесс обучения нейронной сети следует курировать конечно - чтобы её не понесло "в другую степь".
Ответить с цитированием
  #4  
Старый 09.12.2009, 17:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Так в чем тут вопрос-то?
В общем, ты расписал алгоритм действий. Ну так реализуй его.

ЗЫ. С нейронными сетями я тебе в этой задаче свзяваться не советую. По словарям тут будет лучше. Только словари, если хочется сделать что-то серьезное, надо делать многоуровневые. Т.е. не ориентироваться на одно какое-то слово, определяющее контекст, а на несколько. Исходя из твоего примера:

Она играет пъесу на рояле. <- исполняет
Она играет пъесу для гостей. <- выступает

Т.е. не только слово "пъеса" определяет контекст, но и другие тоже.
Т.е. на первом шаге, увидев слово "пъеса" ты сужаешь список значений, а полное определение дает вторая группа слов.
Ответить с цитированием
  #5  
Старый 09.12.2009, 23:25
ziro ziro вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 6
Репутация: 10
По умолчанию Я реализовал поиск слова в предложении!!

а дальше не как пожалуйста помогите реализовать дальше .
Ответить с цитированием
  #6  
Старый 10.12.2009, 09:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
Сообщение от ziro
а дальше не как пожалуйста помогите реализовать дальше .
А это вопрос или зубодробительный тест для ожидаемой программы?
Я например смысла так и не уловил.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 10.12.2009, 12:06
ziro ziro вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 6
Репутация: 10
По умолчанию ^)

пожалуйста помогите это все реализовать .
Ответить с цитированием
  #8  
Старый 10.12.2009, 12:24
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Хо хо хо тебе нужен синтаксический анализатор...
Этим нужно заниматься серьезно и долго...тут не одна тысяча строк кода ИМХО...
Либо программер должен быть этим увлечен как хобби, либо привлечен материально...никто такую сложную прогу просто так писать не будет...
Анализ русского языка проблеме не тривиальная...
Я начал делать анализатор давненько...есть так называемые текстовые квесты, я хотел создать движок, но подзабросил проект...до поры до времени...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #9  
Старый 10.12.2009, 13:48
ziro ziro вне форума
Прохожий
 
Регистрация: 09.12.2009
Сообщения: 6
Репутация: 10
По умолчанию ^)

Лично я пробовал это сделать на php и SQL но сам анализ не как. Ввод и вывод это сделал и поиск слова а смыл выводит но 2 а вот 1 хз как сделать.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025