单词的出现率

 

问题

在一篇正规的英文文档中,单词都会以空格、逗号、句号或回车分隔,“-”符号表示连接回车符前后的字符为一个单词。

现有一篇符合上述特征的文档,请找出其中一共出现过多少个不同的单词,以及每个单词的次数,并找出出现频率最高的单词。

思路

读取文档内容,将文档内容拆成单个字符组成的序列,然后将序列中所有大写字母全部转换为小写字母,序列中的非字母字符全部变成空格。将连续的空格删减成一个,将序列拼成一个字符串,再将字符串以空格拆成序列,于是形成了一个单词一个成员的序列。将相同的单词分成一组,返回分组后长度最大的成员值即为出现频率最高的单词。

  1. 读取文件内容

  2. 将内容拆成单个字符组成的序列,将序列中的大写字母全部转换为小写,非字母的字符变成空格

  3. 将连续的空格删减成一个,将序列拼成一个字符串,再将字符串以空格拆成序列,于是形成了一个单词一个成员的序列。

  4. 将相同的单词分成一组,返回分组后长度最大的成员值即为出现频率最高的单词

代码

A
1 E:\\esProc exercise\\word.txt
2 =file(A1).read()
3 =A2.split().(if(isalpha(~), lower(~)," " )) 将内容拆成单个字符组成的序列,将序列中的大写字母全部转换为小写,非字母的字符变成空格
4 =A3.select(~!="" || ~[-1]!=" " ) 连续的多个空格删减成一个
5 =A4.concat().split(" ") 将序列拼成字符串,再将字符串以空格拆成序列,这样形成了一个单词一个成员
6 =A5.group().maxp(~.len())(1) 将序列进行分组,查询出分组后长度最大的成员,即为出现频率最高的单词

结果

imagepng