繁体   English   中英

常用词的字数统计 - haskell

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM