Лексический анализатор смыслового текста

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Лексический анализатор смыслового текста

Сообщение Amed » 15.03.2009 (Вс) 16:22

Для проекта нужен лексический анализатор, выполняющий следующие функции:
1) выделение из текста (язык не важен) задаваемых пользователем "терминов"
2) поиск соответствующего термину значения

Могу привести пример разбора:
Входная строка
Кольцо выполнено из золота 585 пробы традиционного розового оттенка и украшено 1 белой жемчужиной в форме эллипса диаметром 8-8,5 мм и 4-мя фианитами. Производство: Москва (Россия).

Пользователем заданы заранее термины "Кольцо", "проба", "золото", "жемчуг", "диаметр", "фианит" и размерность "мм".

Конечный результат разбора должен содержать ряд терминов, части из них должно быть поставлено в соответствие числовое значение и размерность:
- Кольцо
- золото
- проба=585
- жемчуг
- диаметр=8-8,5 [мм]
- фианит

Весьма желательно задавать правила таким образом, чтобы происходила группировка терминов:
жемчуг => диаметр=8-8,5 мм
золото => проба=585

Мой первый вариант разбора работает, но без группировки - и обнаруживается слишком много частных случаев, когда соответствие "термин-значение" находится неправильно. К тому же, необходимо анализировать описательный текст из любой сферы (скажем, "1-комн. кварт., м. Беляево, 10 мин. пеш., Островитянова ул, д. 53-2, 41/18/10, свободна, полн. меблиров. (кухня дуб, мяг. меб. и пр.), отлич. ремонт и техника (холод., стир. маш.), застекл. лодж. 6 м, тамбур с ж/д, консьерж, закр. паркинг аренд. маш/место")

Что порекомендуете по теме, камрады?

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

Re: Лексический анализатор смыслового текста

Сообщение Хакер » 15.03.2009 (Вс) 16:43

Если для:
Кольцо выполнено из золота 585 пробы традиционного розового оттенка и украшено 1 белой жемчужиной в форме эллипса диаметром 8-8,5 мм и 4-мя фианитами. Производство: Москва (Россия).

То ещё есть мысли.

Если для (т.е. без окончаний):
1-комн. кварт., м. Беляево, 10 мин. пеш., Островитянова ул, д. 53-2, 41/18/10, свободна, полн. меблиров. (кухня дуб, мяг. меб. и пр.), отлич. ремонт и техника (холод., стир. маш.), застекл. лодж. 6 м, тамбур с ж/д, консьерж, закр. паркинг аренд. маш/место

То по моему облом.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Re: Лексический анализатор смыслового текста

Сообщение Amed » 15.03.2009 (Вс) 17:18

В первом примере плюс в том, что нет сокращений, а во втором - в том, что сокращения, как правило, стандартны.

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

Я пока уделяю внимание следующему алгоритму разбора:
1. Задаю для каждого термина нечто вроде паттерна. Например, для термина "масса" паттерн выглядит как: "[термин] [значение] [размерность]". Это означает, что под такой паттерн подпадут три лексемы-"токена", идущие в такой последовательности и принадлежащие к таким классам, например: "масса 5 граммов", "масса 15 кг."

Если термину не нужны размерность и значение, паттерн будет просто "[термин]".
Если термину нужны размерность и значение, но самого термина нет, то использую конструкцию "инвертированного термина": "[значение] [размерность]", в этом случае размерность имеет функцию термина. Пример - термин "цена". Цена пишется совершенно не всегда, но в то же время, что размерность "рубли" ассоциируется только с ценой.


2. Разбиваю текст на лексемы-токены и последовательно сравниваю с паттернами.

Проблемы начинаются, если подряд идет несколько терминов с одинаковой размерностью, подчас "инвертированных". В этом случае алгоритм путается, а вот человек - нет.

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

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Лексический анализатор смыслового текста

Сообщение jangle » 15.03.2009 (Вс) 18:05

Это не лексический анализ, а графематическй. Компьютерная лингвистика. ИМХО надо читать теорию вопроса, и на основе мнений яйцеголовых товарищей пытаться сделать что-то свое. Для примера статья:

http://www.dialog-21.ru/materials/archi ... 0&vol=6078

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Re: Лексический анализатор смыслового текста

Сообщение Amed » 15.03.2009 (Вс) 18:25

Спасибо!
Ключевые слова "графематический анализ" дают много интересного.


Вернуться в Народный треп

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList