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