有人可以解释这段代码的作用吗?
def stemmer(word):
[(stem,end)] = re.findall('^(.*ss|.*?)(s)?$',word)
return stem
答案 0 :(得分:4)
它将一个单词分为两部分:stem
和end
。有三种情况:
ss
(或更多s
)结尾:stem <- word
和end <- ""
s
结尾:stem <- word without "s"
和end <- "s"
s
:stem <- word
和end <- ""
这是通过正则表达式完成的,该表达式捕获完整的单词(由于^....$
)。第一部分(即stem
)尽可能以ss
(.*ss
)结尾,或者尽可能不尽可能(.*?
) 。然后可能结尾s
被视为end
部分。
请注意,在第一种情况下(尽可能以ss
结尾),s
部分永远不会有额外的end
。