this is a really interesting question. Maybe the following papers, blogs and websites contribute to answering this question. The first paper is also available on researchgate:
Article A Generalizable NLP Framework for Fast Development of Patter...
In terms of software / programming languages, there are links to a Java implementation and a Matlab toolbox on the following website: