首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >haskell中词干词条的删除

haskell中词干词条的删除
EN

Stack Overflow用户
提问于 2013-12-30 08:34:01
回答 1查看 159关注 0票数 0

我对Haskell和函数式编程很陌生。

我的目标是从用户那里获得一个字符串,并检查该字符串中是否有任何词干词根可用。如果是这样的话,我希望删除词干并返回字符串。

代码语言:javascript
复制
Eg: if input is :"He is fishing and catching"
    output is : "he is fish and catch"

我可以用其他语言做这件事。但我不知道在Haskell该怎么做。有人知道如何用Haskell解决这个问题吗。

代码语言:javascript
复制
checkstemming :: [String] -> [String]
checkstemming [] = []
checkstemming xs = foldr (++) [] ( [ drop x |x <- xs, x="ing"])

我试过了,但我知道这是错误的。有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-30 08:46:20

一次只处理一个词,这会使事情变得容易得多:

代码语言:javascript
复制
removeStemming :: String -> String
removeStemming []        = []
removeStemming (x:"ing") = [x]
removeStemming (x:xs)    = x : removeStemming xs

checkStemming :: [String] -> [String]
checkStemming = map removeStemming

另一种方法是使用来自Data.ListData.List

代码语言:javascript
复制
removeStemming :: String -> String
removeStemming xs
  | "ing" `isSuffixOf` xs = take (length xs - 3) xs
  | otherwise             = xs
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20835998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档