Python 以'结尾的英语动词加工;e';

Python 以'结尾的英语动词加工;e';,python,nlp,text-processing,stemming,python-textprocessing,Python,Nlp,Text Processing,Stemming,Python Textprocessing,考虑到这些转换,我实现了几个字符串替换 'thou sittest' → 'you sit' 'thou walkest' → 'you walk' 'thou liest' → 'you lie' 'thou risest' → 'you rise' 如果我保持幼稚,那么在这个例子中使用regex查找和替换是可能的,比如ou[a-z]+est 但麻烦出现在以e结尾的英语动词中,因为根据上下文,我需要在某些部分修剪est,在其余部分修剪st 实现这一目标的快速解决方案是什么 可能是最快最脏的:

考虑到这些转换,我实现了几个字符串替换

'thou sittest' → 'you sit'
'thou walkest' → 'you walk'
'thou liest' → 'you lie'
'thou risest' → 'you rise'
如果我保持幼稚,那么在这个例子中使用regex查找和替换是可能的,比如
ou[a-z]+est

但麻烦出现在以
e
结尾的英语动词中,因为根据上下文,我需要在某些部分修剪
est
,在其余部分修剪
st


实现这一目标的快速解决方案是什么

可能是最快最脏的:

import nltk
words = set(nltk.corpus.words.words())
for old in 'sittest walkest liest risest'.split():
    new = old[:-2]
    while new and new not in words:
        new = new[:-1]
    print(old, new)
输出:

sittest sit
walkest walk
liest lie
risest rise
sittest sit
walkest walk
liest lie
risest rise
rotest rot
更新。稍微不那么快和脏(例如用于
rotest
→ 动词
rot
,而不是名词
rote
):

输出:

sittest sit
walkest walk
liest lie
risest rise
sittest sit
walkest walk
liest lie
risest rise
rotest rot

研究NLTK词干。注意,它还正确地从“sittest”中删除了双辅音!那真是又快又脏。。。我喜欢它。到目前为止,我确实在寻找像word.is_动词()这样的方法。这是最好的。接受。@Kirill这是我在《我在建立一个基于KJV的现代化圣经翻译》中的工作。“你应该得到很多荣誉。”谢谢。谁知道呢,也许有一天我会用到你的项目,因为我正在做一个类似的逐字翻译的工作。