擅长:python、mysql、java
<p>你现在似乎在努力学习如何用一致的方式来词干。
对于您的场景,您可以使用模式替换规则列表,即“如果单词以<em>this</em>模式结尾,则将其替换为<em>that</em>”。
使用正则表达式,您可以很容易地指定模式和替换,包括“如果它以一个重复的字母结尾,则用该字母的一个实例替换它”之类的内容。你知道吗</p>
<p>例如:</p>
<pre class="lang-py prettyprint-override"><code>def root(word):
pattern_replacements = [
("e$", ""), # fine => fin (to match finer, finest)
("y$", "i"), # tiny => tini (to match tinier, tiniest)
("er$", ""),
("est$", ""),
(r"([a-z])\1$", r"\1") # bigger => big
]
for pattern, replacement in pattern_replacements:
word = re.sub(pattern, replacement, word)
return word
words = "big bigger biggest tiny tinier tiniest fine finer finest same samer samest good gooder goodest".split(" ")
map(root, words)
# ['big', 'big', 'big', 'tini', 'tini', 'tini', 'fin', 'fin', 'fin', 'sam', 'sam', 'sam', 'good', 'good', 'good']
</code></pre>