Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Обработка естественного языка

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Обработка естественного языка
Имя
Сообщение << Старые топики   Новые топики >>
Обработка естественного языка - 2010-10-01 03:57:06.300000   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
Работал ли кто-нибудь в области обработки естественного языка (NLP, Natural Language Processing)?
Есть задача снизить в текстах количество неключевых слов. Тексты - профили пользователей, в которых они описывают себя и свою работу.
Ключевые слова - навыки, которыми они обладают. Например, если профиль говорит "For 5 years I worked as a C++ programmer", то среди ключевых слов, за которые может зацепиться парсер, могут быть "C++" и "programmer". Ключевые слова задаются заранее, парсер только считает их количество.
Ошибка возникает в предложениях типа "I worked with a team of excellent C++ programmers". Здесь "C++" и "programmer" не будут являться ключевыми словами, поскольку не характеризуют навыки данного человека, однако эти слова будут подобраны парсером.
Соответствено, необходимо по возможности снизить количество таких ошибок за счёт NLP.
В связи с этим 2 вопроса:
1) реально ли вывести некий набор правил, позволяющий это сделать?
2) если да, то какие библиотеки (платформа - JVM) лучше для этого использовать.

Пока что пытаюсь крутить что-то с прямыми-непрямыми дополнениями и Стэнфордской реализацией NLP парсера ( http://nlp.stanford.edu:8080/parser/index.jsp ). К сожалению, документации или сколько-нибудь нормальной информации ни по одному из вопросов не нашёл, поэтому буду очень благодарен за ссылки.
Post #: 1
RE: Обработка естественного языка - 2010-10-01 07:53:22.556666   
hromjo_forever

Сообщений: 119
Оценки: 0
Присоединился: 2010-08-02 12:45:32.986666
?
Post #: 2
RE: Обработка естественного языка - 2010-10-01 13:27:01.906666   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
Смешно, ага.
Post #: 3
RE: Обработка естественного языка - 2010-10-01 16:03:49.560000   
hromjo_forever

Сообщений: 119
Оценки: 0
Присоединился: 2010-08-02 12:45:32.986666

quote:

ORIGINAL: kreol

Смешно, ага.

Тебе смешно, а мне правда. Или тебе нужно что то другое?
Post #: 4
RE: Обработка естественного языка - 2010-10-01 16:21:05.143333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
hromjo_forever
Ну ты прочитай первый пост. Как ты регекспом по предложению оценишь как слово C++ относится к местоимению I? Если ты знаешь способ, не пиши здесь, отпиши мне в личку: я буду твоим менагером, и мы заработаем кучу бабок, работая в команде. Начнём с того, что попросим у kreol'а денег, за моментальное и безболезненное решение всех его проблем. ;)
kreol
Я как-то интересовался, но не до такой степени – я размышлял, как пожать текст используя корреляции уровня структуры предложения. Но это работа на чуть более низком уровне – это примерно как создание данных для обучения для библиотеки, что по твоей ссылке.
Так что на поставленные вопросы я не могу ответить. Мне кажется, что не выйдет ничего. Ну или почти ничего: может и удастся отбросить часть ошибок, но… Но чёрт его знает. Естественный язык – по природе своей неточен, в приведённом примере, мне неясно, какое отношение `I' имеет к программированию на C++: то ли он работал быдлокодером для черновой работы, то ли просто кофе разносил, а может он тоже excellent программер, но с комплексом неполноценности.
Но я бы с интересом узнал, чем всё дело кончится.
Post #: 5
RE: Обработка естественного языка - 2010-10-01 16:38:33.853333   
Sрam

Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
Если делать расчет на конкретный язык, то грамматику в зубы и пошел правила составлять, если речь идет о абстрактном понятии то тут солидарен с rgo.
Сори за линки, у мну работала)
Post #: 6
RE: Обработка естественного языка - 2010-10-01 19:33:15.796666   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666

quote:

ORIGINAL: rgo

Мне кажется, что не выйдет ничего. Ну или почти ничего: может и удастся отбросить часть ошибок, но…

Ну вот идея именно в том, чтобы отбросить хотя бы часть этих ошибок. Сейчас статистический анализатор работает на 92-95% правильно, если удастся отбросить ещё пару процентов - будет вообще отлично. Тем более, что NLP спокойно добавляется поверх, не ломая структуры всей остальной части.
На самом деле не всё так печально, как кажется на первый взгляд. Задача сводится к одному языку (английскому) и только к отрицательным ответам, то есть тем, где навыки человека определяются неверно. Плюс глядя на успехи того же стенфордского парсера (демо доступно по ссылке выше), который довольно точно определяет связи между словами, да ещё посмотрев на системы автоматического извлечения фактов, картина становится не такой уж суровой.
Например, если взять два упрощённый предложения:

1) I worked as a programmer.
2) I worked with a team of programmers.

Для первого предложения стендфордский парсер покажет связи:
nsubj(worked-2, I-1) prep(worked-2, as-3) pobj(as-3, programmer-5) То есть I связано с worked, причём абсолютно определённо - как подлежащее и сказуемое, worked связано с as, который в свою очередь связан с programmer. То есть если выбросить предлог as, можно вывести логический кортеж <I, worked, programmer>, что уже является основанием для использования этого предложения.

Для второго предложения результат будет:
nsubj(worked-2, I-1) prep(worked-2, with-3) pobj(with-3, team-5) prep(team-5, of-6) pobj(of-6, programmers-7) Кортежи, которые можно вывести отсюда: <I, worked, team> и <team, , programmers>. То есть I и programmers напрямую не связаны.

Другое дело, что реализовывать такие системы с нуля, как мне сейчас приходится делать, очень и очень затратно. Поэтому вот и ищу реализации, идеи, наработки и вообще что угодно по теме :)
Post #: 7
RE: Обработка естественного языка - 2010-10-01 19:34:27.583333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666

quote:

ORIGINAL: Sрam

Если делать расчет на конкретный язык, то грамматику в зубы и пошел правила составлять, если речь идет о абстрактном понятии то тут солидарен с rgo.
Вот тут вроде твоя задача затрагивается http://www.osp.ru/text/print/302/183694.HТМL
Здесь больше не по теме, но кое-что почеркнуть можно http://www.solarix.ru/for_developers/api/grammar-engine.sHТМL

Эмм… обе ссылки битые :)
Post #: 8
RE: Обработка естественного языка - 2010-10-01 19:59:46.653333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: kreol
Другое дело, что реализовывать такие системы с нуля, как мне сейчас приходится делать, очень и очень затратно. Поэтому вот и ищу реализации, идеи, наработки и вообще что угодно по теме :)

Я чего-то недопонял, наверное. Тот стендфордский код не удастся использовать?
Post #: 9
RE: Обработка естественного языка - 2010-10-02 00:58:50.656666   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666

quote:

ORIGINAL: rgo

quote:

ORIGINAL: kreol
Другое дело, что реализовывать такие системы с нуля, как мне сейчас приходится делать, очень и очень затратно. Поэтому вот и ищу реализации, идеи, наработки и вообще что угодно по теме :)

Я чего-то недопонял, наверное. Тот стендфордский код не удастся использовать?

Вопрос не в коде, вопрос в языке. То, что я привёл - это один частный случай. Но даже для его простейших модификаций может понадобиться гораздо большее количество правил. Например, часто люди не пишут "I", пишут просто "Worked as a programmer", соответственно в картеже будет отсутствовать предикат. Эту ситуацию тоже нужно как-то обрабатывать. Нужно смотреть на выход парсера, нужно продумывать, проверять, комбинировать, разбирать сложные предложения и так далее. Если бы были какие-то готовые наработки - в виде библиотек или просто информации - было бы значительно проще и быстрее.
Post #: 10
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Обработка естественного языка







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.