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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.05.2013, 15:49
Лизавета Лизавета вне форума
Прохожий
 
Регистрация: 12.05.2013
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Извлечение фактов из текста

Ребята,помогите,пожалуйста,набросать программку для извлечения фактов из текста. Например, "Андрей Васильев,директор торговой сети Евроопт заключил сделку с крупными поставщиками из России". Из этого должно быть извлечено:
Имя: Андрей Васильев
Должность: Директор
Организация:Евроопт
Ответить с цитированием
  #2  
Старый 12.05.2013, 18:15
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

На форму надо кинуть баттон и мемо
Код:
uses
 StrUtils;
procedure TForm1.Button1Click(Sender: TObject);
var
 i, b: integer;

 s,st: string;
 sl  : TStrings;
begin
 Memo1.Clear;
 st:= 'Андрей Васильев,директор торговой сети Евроопт заключил сделку ' +
      'с крупными поставщиками из России';
 b:= pos(',', st);
 Memo1.Lines.Add(Copy(st,1,b-1));
 s:= Copy(st, b+1, Length(st));
 Memo1.Lines.Add('Должность: '+Copy(s, 1, pos(' ', s)));

 sl:= TStringList.Create;
 sl.Delimiter:= ' ';
 sl.DelimitedText:=s;
 for i:=0 to sl.Count-1 do
  for b:=1 to length(sl.Strings[i]) do
   if sl.Strings[i][b] in ['А'..'Я'] then
    begin
     Memo1.Lines.Add('Организация:'+sl.Strings[i]);
     exit;
     end;

 sl.Free;
end;
Ответить с цитированием
  #3  
Старый 13.05.2013, 01:21
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Э нет коллега, тут не все так просто. Нет явных указаний на начало и конец объектов в тексте. Тут нужен довольно сложный анализ шаблонов.
Программа должна понимать, что Андрей Васильев это один объект а не два отдельных. Что фраза "директор торговой сети Евроопт" включает как название организации, так и должность первого объекта. И т.д. и тому подобное. Подобные системы семантического анализа текста стоят бешеных денег и на коленке не пишутся.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 13.05.2013, 01:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Здесь уж дело принципа, увж. коллега Страдалецъ. Каков вопрос, таков ответ.
Оно работает по предложенной схеме:
первая привязка - запятая после имени,
дальше первое слово после запятой - должность имярека,
потом организация - это первое слово из строки начинающееся с заглавной буквы, всё соблюдено
Ответить с цитированием
  #5  
Старый 13.05.2013, 08:01
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну вот вам тогда другой текст, где как вы говорите все соблюдено.

Красный Петух, здание гостинницы в центре Лондона давно обветшало и требовало ремонта.

И что вы тут в итоге получите по вашей схеме?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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