单词的出现率
问题
在一篇正规的英文文档中,单词都会以空格、逗号、句号或回车分隔,“-”符号表示连接回车符前后的字符为一个单词。
现有一篇符合上述特征的文档,请找出其中一共出现过多少个不同的单词,以及每个单词的次数,并找出出现频率最高的单词。
思路
读取文档内容,将文档内容拆成单个字符组成的序列,然后将序列中所有大写字母全部转换为小写字母,序列中的非字母字符全部变成空格。将连续的空格删减成一个,将序列拼成一个字符串,再将字符串以空格拆成序列,于是形成了一个单词一个成员的序列。将相同的单词分成一组,返回分组后长度最大的成员值即为出现频率最高的单词。
-
读取文件内容
-
将内容拆成单个字符组成的序列,将序列中的大写字母全部转换为小写,非字母的字符变成空格
-
将连续的空格删减成一个,将序列拼成一个字符串,再将字符串以空格拆成序列,于是形成了一个单词一个成员的序列。
-
将相同的单词分成一组,返回分组后长度最大的成员值即为出现频率最高的单词
代码
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) | 将序列进行分组,查询出分组后长度最大的成员,即为出现频率最高的单词 |
英文版