Обработка естественного языка
Пользователи, просматривающие топик: 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 ). К сожалению, документации или сколько-нибудь нормальной информации ни по одному из вопросов не нашёл, поэтому буду очень благодарен за ссылки.
|
|
|
RE: Обработка естественного языка - 2010-10-01 07:53:22.556666
|
|
|
hromjo_forever
Сообщений: 119
Оценки: 0
Присоединился: 2010-08-02 12:45:32.986666
|
?
|
|
|
RE: Обработка естественного языка - 2010-10-01 13:27:01.906666
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
Смешно, ага.
|
|
|
RE: Обработка естественного языка - 2010-10-01 16:03:49.560000
|
|
|
hromjo_forever
Сообщений: 119
Оценки: 0
Присоединился: 2010-08-02 12:45:32.986666
|
quote:
ORIGINAL: kreol Смешно, ага. Тебе смешно, а мне правда. Или тебе нужно что то другое?
|
|
|
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 программер, но с комплексом неполноценности. Но я бы с интересом узнал, чем всё дело кончится.
|
|
|
RE: Обработка естественного языка - 2010-10-01 16:38:33.853333
|
|
|
Sрam
Сообщений: 2863
Оценки: 372
Присоединился: 2009-01-16 15:23:43.276666
|
Если делать расчет на конкретный язык, то грамматику в зубы и пошел правила составлять, если речь идет о абстрактном понятии то тут солидарен с rgo. Сори за линки, у мну работала)
|
|
|
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 напрямую не связаны. Другое дело, что реализовывать такие системы с нуля, как мне сейчас приходится делать, очень и очень затратно. Поэтому вот и ищу реализации, идеи, наработки и вообще что угодно по теме :)
|
|
|
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 Эмм… обе ссылки битые :)
|
|
|
RE: Обработка естественного языка - 2010-10-01 19:59:46.653333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: kreol Другое дело, что реализовывать такие системы с нуля, как мне сейчас приходится делать, очень и очень затратно. Поэтому вот и ищу реализации, идеи, наработки и вообще что угодно по теме :) Я чего-то недопонял, наверное. Тот стендфордский код не удастся использовать?
|
|
|
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", соответственно в картеже будет отсутствовать предикат. Эту ситуацию тоже нужно как-то обрабатывать. Нужно смотреть на выход парсера, нужно продумывать, проверять, комбинировать, разбирать сложные предложения и так далее. Если бы были какие-то готовые наработки - в виде библиотек или просто информации - было бы значительно проще и быстрее.
|
|
|
|
|