[英]Word count with common words - haskell
我正在使用 Haskell 进行一个小项目。 我想根据牛津英语语料库 (OEC) 排名计算一个段落或几个句子中的单词数量,以及任何常用单词。
我有一些代码可以使用,但是我是 Haskell 的新手,需要一些帮助。
<your code here>
text = "the best book in the world is harry potter. my favourite author is
JK Rowling."
main = do
let wordCount = toWordCount text
putStrLn "Report:"
putStrLn ("\t" ++ (show $ length wordlist) ++ " words")
putStrLn ("\t" ++ (show $ countCommonWords wordlist) ++ " common words")
预期的结果应该是这样的
Report:
15 words
5 common words
帮助我开始使用这种新语言将不胜感激。
谢谢
到目前为止,我唯一能做的尝试是,
import Data.List (nub)
import Data.Char (toLower)
toWordCount ns xs = map (\x -> length (filter (==x) xs)) ns
nubl = nub . map (map toLower) -- to lowercase
wordCount ws = zip ns (countCommonWords ns ws)
where ns = nubl ws
这是我所做的最好的尝试,任何解决方案都会有所帮助
由于您是 Haskell 和 StackOverflow 的新手,让我给您一些提示。 完整的解决方案取决于您。
is!
与is
不同。 检查filter
功能words
Data.List
库,你会发现这样做的有用函数。如果您被堆叠,请更新问题并发布您的尝试
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.