2012-03-26 7 views
1

Gibt es eine einfache Möglichkeit, eine Phrasalvorlage in einem Textblock zu erkennen?Phrasal Template Detection

Zum Beispiel angesichts der Text:

nicht sicher, wie dies zu nähern. Es ist sehr schwierig, und bei Schwierigkeiten, ich meine, ich weiß nicht, wie es geht. Aber vielleicht ist es für jemand anderen offensichtlich?

Und die Vorlage:

[x], und [x] Ich meine, [Y]

in einem Spiel zur Folge hätte.

Ich würde annehmen, dass Regex einer bestimmten Beschreibung die beste Wette wäre, obwohl ich nicht weiß, ob so etwas mit Regex möglich ist.

Bonus: Was wäre der rechnerisch effizienteste Ansatz, wenn Sie versuchen, viele Vorlagen nacheinander zu finden?

Edit: Nur um zu verdeutlichen, brauche ich nur eine genaue Übereinstimmung. Zum Beispiel würde die obige Vorlage nicht hat, um mit dem folgenden:

Apfel und von Apfel meine ich Birne

Antwort

1

Wenn Sie mit dem regulären Ausdruck brauchen passende Sie diese benutzen können:

(\w+), and by \1 I mean \w+ 

apple, and by apple I mean pineapple -> match 
apple, and by apple I do mean pear -> not match 

(\w+) - matches 1 word and save it to first group 
\1 - word from first group 
\w+ - match second word 

Wiedergabe mit regexps mehr auf http://regexpal.com/

Aber wenn Sie wirklich passende brauchen mit vielen Mustern, die Sie brauchen, definieren Sie alle Muster, die Sie brauchen, und bauen Sie eigene finite state machine

+0

Großartig, danke für die Links! –