Python Regex, um einen Teil der Zeichenkette zu extrahieren

8

Ich möchte einen Teil einer großen Zeichenfolge extrahieren. Es gibt ein Zielwort und eine obere Grenze für die Anzahl der Wörter davor und danach. Der extrahierte Teilstring muss daher das Zielwort zusammen mit den oberen gebundenen Wörtern davor und danach enthalten. Der Vorher- und Nachher-Teil kann kleinere Wörter enthalten, wenn das Zielwort näher am Anfang oder Ende des Textes liegt.

Musterzeichenfolge

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididant ut labore et dolor magna aliqua. In diesem Fall müssen Sie sich auf eine Übung beschränken, die Sie in Ihrem Labor anwenden können representhere in voluptate velit esse cillum doloré eu fugiat nulla pariature.Excepteur sint occaecat amortisat non proident, sunt in culpa qui officia desert mollit anim id est laborum. "

Zielwort: laboris

words_before: 5

words_after: 2

Sollte ['veniam, quis nostrud exercitation ullamco laboris nisi ut']

zurückgeben

Ich dachte an ein paar mögliche Muster, aber keiner von ihnen hat funktioniert. Ich denke, es kann auch getan werden, indem einfach die Zeichenfolge vor und zurück vom Zielwort durchlaufen wird. Allerdings würde ein Regex die Dinge definitiv erleichtern. Jede Hilfe wäre willkommen.

    
user2963623 04.10.2015, 01:00
quelle

3 Antworten

3
%Vor%     
LetzerWille 04.10.2015, 01:13
quelle
5

Wenn Sie Wörter trennen möchten, können Sie slice() und split() function verwenden. Zum Beispiel:

%Vor%     
Kevin Guan 04.10.2015 01:08
quelle
2

Sie können es auch mit nltk aufrufen und es ist "Konkordanz" -Methode , inspiriert von Aufruf von NLTKs Konkordanz - Wie erhält man Text vor / nach einem Wort, das verwendet wurde? :

  

Eine Konkordanzansicht zeigt uns jedes Vorkommen eines gegebenen Wortes zusammen   mit etwas Kontext .

%Vor%

Druckt 5 Wörter / Token vor dem Zielwort und 2 nach:

%Vor%     
alecxe 04.10.2015 05:11
quelle

Tags und Links