单词计数

实践练习C++17

简介

你为高中生教授英语作为外语。

你决定把整个课程建立在电视剧上,因此需要分析剧中使用了哪些单词,以及它们出现的频率。

这样就能从较简单的节目开始,逐渐增加难度。

任务说明

统计一段电视剧字幕中每个单词出现的次数。

字幕只使用 ASCII 字符。

人物常使用口语缩写,如 they're、it's。虽然它们来自两个词,但本练习将 we're 这样的缩写视为一个单词。

单词可由各种标点,例如冒号、感叹号、问号,或空白字符,例如 \t、\n、空格分隔。唯一不分词的标点是缩写内部的撇号。

数字也算单词。例如 It costs 100 dollars. 中,100 是独立单词。

不区分大小写。例如,下句中的 you 出现三次:

You come back, you hear me? DO YOU HEAR ME?

结果中词频的排列顺序不限。

下面的示例综合了前述多种情况:

  • 普通单词。
  • 缩写。
  • 数字。
  • 大小写混用。
  • 标点分词,包括非缩写中的撇号。
  • 不同形式的空白分词。

"That's the password: 'PASSWORD 123'!", cried the Special Agent.\nSo I fled.

这段字幕应得到如下词频映射:

123: 1
agent: 1
cried: 1
fled: 1
i: 1
password: 2
so: 1
special: 1
that's: 1
the: 2