单词的出现率

阅读(580) 标签: 频率, 序列, split, isalpha, lower, group, maxp,

l  问题

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

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

l  思路

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

1.  读取文件内容

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

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

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

l  代码

 

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)

将序列进行分组,查询出分组后长度最大的成员,即为出现频率最高的单词

 

l  结果