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']
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.
Wenn Sie Wörter trennen möchten, können Sie slice()
und split()
function verwenden. Zum Beispiel:
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? :
%Vor%Eine Konkordanzansicht zeigt uns jedes Vorkommen eines gegebenen Wortes zusammen mit etwas Kontext .
Druckt 5 Wörter / Token vor dem Zielwort und 2 nach:
%Vor%Tags und Links python regex python-2.7