LINUX.ORG.RU

История изменений

Исправление alex4321, (текущая версия) :

NLP тут не нужно (потому что задача, вероятно, отлично решится регулярками или основанным на них механизмом). Разве что его небольшое подмножество.

Но если ты так хочешь усложнить себе жизнь - у меня тут возникла, возможно, схожая задача.

Но кое-кому взбрело в голову (ну а я, дурак, подогрел интерес :-) ), что без NLP никуда (хайп же, вот). Потому я накатал на третьепхытоне один велосипед с :

  • разбором текста в дерево (spacy)
  • написанием правил для извлечения поддеревьев (читай - у нас на входе «когда $условие $действие» - а в дереве (действие (когда (условие)) )
  • собственно, извлечением сего поддерева (к которому потом можно применить ещё пачку таких же извлекалок или обработать как есть).
  • парой хрен знает как решаемых проблем (одна решаема, но влом, вторая - с решением на уровне «жопой чую, что так должно работать»).

Если интересно - смогу забросить в течение дня-другого. Разумеется, возможно, что придётся мне напомнить :-)

з.ы. но если тебе таки нужен русский - придётся отказаться от spacy. По идее - мой код легко адаптировать под NLTK-ю обёртку вокруг MaltParser, а для него вроде есть модель с русским. Делать я этого, конечно, не стану - максимум подскажу, куда копать.

з.ы.2. но я почти уверен, что яндексоидный «томита-парсер» справится с задачей лучше моего велосипеда. Если его осилить.

Исправление alex4321, :

NLP тут не нужно (потому что задача, вероятно, отлично решится регулярками или основанным на них механизмом). Разве что его небольшое подмножество.

Но если ты так хочешь усложнить себе жизнь - у меня тут возникла, возможно задача.

Но кое-кому взбрело в голову (ну а я, дурак, подогрел интерес :-) ), что без NLP никуда (хайп же, вот). Потому я накатал на третьепхытоне один велосипед с :

  • разбором текста в дерево (spacy)
  • написанием правил для извлечения поддеревьев (читай - у нас на входе «когда $условие $действие» - а в дереве (действие (когда (условие)) )
  • собственно, извлечением сего поддерева (к которому потом можно применить ещё пачку таких же извлекалок или обработать как есть).
  • парой хрен знает как решаемых проблем (одна решаема, но влом, вторая - с решением на уровне «жопой чую, что так должно работать»).

Если интересно - смогу забросить в течение дня-другого. Разумеется, возможно, что придётся мне напомнить :-)

з.ы. но если тебе таки нужен русский - придётся отказаться от spacy. По идее - мой код легко адаптировать под NLTK-ю обёртку вокруг MaltParser, а для него вроде есть модель с русским. Делать я этого, конечно, не стану - максимум подскажу, куда копать.

з.ы.2. но я почти уверен, что яндексоидный «томита-парсер» справится с задачей лучше моего велосипеда. Если его осилить.

Исходная версия alex4321, :

NLP тут не нужно (потому что задача, вероятно, отлично решится регулярками или основанным на них механизмом). Разве что его небольшое подмножество.

Но если ты так хочешь усложнить себе жизнь - у меня тут возникла, возможно задача. Но кое-кому взбрело в голову (ну а я, дурак, подогрел интерес :-) ), что без NLP никуда (хайп же, вот). Потому я накатал на третьепхытоне один велосипед с : - разбором текста в дерево (spacy) - написанием правил для извлечения поддеревьев (читай - у нас на входе «когда $условие $действие» - а в дереве (действие (когда (условие)) ) - собственно, извлечением сего поддерева (к которому потом можно применить ещё пачку таких же извлекалок или обработать как есть). - парой хрен знает как решаемых проблем (одна решаема, но влом, вторая - с решением на уровне «жопой чую, что так должно работать»).

Если интересно - смогу забросить в течение дня-другого. Разумеется, возможно, что придётся мне напомнить :-)

з.ы. но если тебе таки нужен русский - придётся отказаться от spacy. По идее - мой код легко адаптировать под NLTK-ю обёртку вокруг MaltParser, а для него вроде есть модель с русским. Делать я этого, конечно, не стану - максимум подскажу, куда копать.

з.ы.2. но я почти уверен, что яндексоидный «томита-парсер» справится с задачей лучше моего велосипеда. Если его осилить.