制止。我需要为此编写代码

时间:2013-08-25 04:04:47

标签: python-3.x

如果您在Google中搜索某些内容并使用“正在运行”这样的字词,Google就足够聪明地匹配“运行”或“运行”。那是因为搜索引擎在匹配单词之前会执行所谓的词干化。

在英语中,词干化涉及从单词中删除共同结尾以产生基本单词。很难想出一套适用于所有单词的完整规则,但这个简化的集合做得非常好:

如果单词以大写字母开头,则输出它而不做任何更改。 如果单词以's','ed'或'ing'结尾,则删除这些字母,但如果得到的词干只有1或2个字母长(例如从唱歌中删除),请使用原始单词。 您的程序应该读取一个输入的单词并打印出相应的词干。例如:

Enter the word: states
state

与您的计划的另一个示例互动是:

Enter the word: rowed
row

请记住,大写单词不应该被阻止:

Enter the word: James
James

也不应该在词汇后变得太短:

Enter the word: sing
sing

以下是代码:

word = input("Enter the word:") 
x = 'ing' 
y = 'ed' 
z = 's' 
first = word[:1] 
last = word[-1:] 
uppercase = first.upper 
if word == uppercase: 
 print("")

elif (x in word) == True: 
 word = (word.replace('ing',''))
 print(word)

elif (y in word) == True: 
 word = (word.replace('ed',''))
 print(word)

elif (z in word) == True: 
 word = (word.replace('s',''))
 print(word)

2 个答案:

答案 0 :(得分:1)

我看到两个选项。这是一个家庭作业问题,在这种情况下 - 请尝试解决你自己的作业。

另一种情况 - 你在现实生活中需要这个。如果是这样,请查看NLTK的Python自然语言处理需求。特别参见http://nltk.org/api/nltk.stem.html

答案 1 :(得分:0)

安装NLTK工具包 并尝试这个

from nltk.stem.porter import PorterStemmer
PorterStemmer.stem_word(word)