Regex Stemmer Code Erklärung

Kann jemand bitte erklären, was macht dieser Code?

def stemmer(word): [(stem,end)] = re.findall('^(.*ss|.*?)(s)?$',word) return stem 

One Solution collect form web for “Regex Stemmer Code Erklärung”

Es teilt ein Wort in zwei Teile: stem und end . Es gibt drei Fälle:

  1. Das Wort endet mit ss (oder noch mehr s ): stem <- word und end <- ""
  2. Das Wort endet mit einem einzigen s : stem <- word without "s" und end <- "s"
  3. Das Wort endet nicht mit s : stem <- word und end <- ""

Dies geschieht durch einen regulären Ausdruck, der das volle Wort (wegen ^....$ ) einfängt. Der erste Teil (dh der stem ) besteht entweder so weit wie möglich in ss ( .*ss ) oder wenn dies nicht möglich ist, so wenig wie möglich ( .*? ). Dann wird vielleicht ein Ende gesetzt, um das end zu sein.

Beachten Sie, dass im ersten Fall (so viel wie möglich endet in ss ) kann es niemals eine zusätzliche s für das end .

  • Schwierigkeiten beim Beitreten einer Liste von mehreren Strings zurück zu einer Liste einer einzelnen Zeichenfolge in Python
  • Nummern löschen nicht in Python (regex)
  • Parsing ungültiges Anker-Tag mit BeautifulSoup oder Regex
  • Finden Sie Telefonnummern im Python-Skript
  • Regex, um String und Attribut innerhalb des Ausdrucks auszuschließen
  • Parsing FIX Protokoll in Regex?
  • Python Regex Split String unter Beibehaltung Trennzeichen mit Wert
  • So finden Sie alle Vorkommen eines einzigen Zitats nicht innerhalb eines Wortes mit Python Regex
  • Regulärer Ausdruck: wie man einen String mit "\ n" (newline) übereinstimmt?
  • Hilfe bei Multiline Regex Match
  • Gibt es einen Weg, um wirklich komplizierte reguläre Ausdrücke in Python zu pflücken?
  • Python ist die beste Programmiersprache der Welt.