Regulärer Ausdruck, um das letzte Wort im Satz zu finden

8

Wie kann ich das letzte Wort in einem Satz mit einem regulären Ausdruck finden?

    
Sam 05.09.2010, 22:47
quelle

2 Antworten

11

Wenn Sie das letzte Wort in einer Zeichenfolge suchen müssen, dann tun Sie dies:

%Vor%

Nach dieser Anweisung enthält $ 1 das letzte Wort in der Zeichenfolge. Möglicherweise müssen Sie die Zeichenklasse [.!?] Erweitern, indem Sie weitere Interpunktionszeichen hinzufügen.

in PHP:

%Vor%     
Moin Zaman 05.09.2010 22:51
quelle
3

Im Allgemeinen können Sie englischen Text mit regulären Ausdrücken nicht korrekt analysieren.

Das Beste, was Sie tun können, ist, nach einer Interpunktion zu suchen, die normalerweise einen Satz beendet, aber das ist leider keine Garantie. Zum Beispiel der Text Mr. Bloggs ist hier. Willst du mit ihm reden? enthält zwei Punkte, die unterschiedliche Bedeutungen haben. Es gibt keine Möglichkeit für einen regulären Ausdruck, zwischen den beiden Verwendungen des Zeitraums zu unterscheiden.

Ich würde stattdessen vorschlagen, dass Sie eine Parsing-Bibliothek für natürliche Sprache betrachten. Zum Beispiel die Stanford Parser hat überhaupt keine Probleme, den obigen Text in die zwei Sätze zu zerlegen:

%Vor%

Es gibt viele andere frei verfügbare NLP-Bibliotheken, die Sie auch verwenden könnten, ich befürworte nicht gerade dieses eine Produkt - es ist nur ein Beispiel, um zu demonstrieren, dass es möglich ist, Text in Sätze mit einer ziemlich hohen Zuverlässigkeit zu parsen. Beachten Sie jedoch, dass selbst eine Parsing-Bibliothek für natürliche Sprachen immer noch gelegentlich einen Fehler macht - das korrekte Parsen menschlicher Sprachen ist schwierig.

    
Mark Byers 05.09.2010 22:51
quelle

Tags und Links