在文本处理任务中,首先要做的事情之一是计算每个单词在给定文档中出现的频率。在此任务中,您将完成一个函数,该函数返回标记化单词文档的唯一词频。
编写代码来完成 count_frequencies 函数。输入参数 (arr) 是一个字符串列表,表示一个标记化的 word 文档。示例输入如下所示:
['the', 'dog', 'got', 'the', 'bone']
您的 count_frequencies 函数应返回元组列表,其中元组中的第一个元素是来自 arr 的唯一单词,元组中的第二个元素是它在 arr 中出现的频率。返回的列表应按每个元组的第一个元素的字母顺序排序。对于上面的示例,正确的输出将是以下元组列表:
**[('bone', 1), ('dog', 1), ('got', 1), ('the', 2)]**
下面显示了更多示例(以及解决方案):
**Input: ['we', 'came', 'we', 'saw', 'we', 'conquered']**
**Solution: [('came', 1), ('conquered', 1), ('saw', 1), ('we', 3)]**
**Input: ['a', 'square', 'is', 'a', 'rectangle']**
**Solution: [('a', 2), ('is', 1), ('rectangle', 1), ('square', 1)]**
您可以在输入文本框中编写自己的测试用例。 在这种情况下,您的测试用例应该是空格分隔的单词,代表 count_frequencies 函数的输入列表。
请您参考如下方法:
您可以使用 collections.Counter 来使用这个简单的函数:
from collections import Counter
def count_words(list_of_words):
return sorted(Counter(list_of_words).items())
>>> count_words(['we', 'came', 'we', 'saw', 'we', 'conquered'])
# [('came', 1), ('conquered', 1), ('saw', 1), ('we', 3)]
