数词按字母顺序出现

anm*_*mol 1 python processing text nlp

在文本处理任务中,要做的第一件事就是弄清楚每个单词在给定文档中出现的频率。在此任务中,您将完成一个函数,该函数返回标记化Word文档的唯一词频。

编写代码以完成count_frequencies函数。输入参数(arr)是一个字符串列表,代表一个带标记的Word文档。输入示例如下所示:

['the','dog','got','the','bone']

您的count_frequencies函数应该返回一个元组列表,其中元组中的第一个元素是arr中的唯一单词,而元组中的第二个元素是它在arr中出现的频率。返回的列表应按每个元组的第一个元素按字母顺序排序。对于上面的示例,正​​确的输出将是以下元组列表:

**[('bone', 1), ('dog', 1), ('got', 1), ('the', 2)]**
Run Code Online (Sandbox Code Playgroud)

下面显示了更多示例(包含解决方案):

**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)]**
Run Code Online (Sandbox Code Playgroud)

您可以在输入文本框中编写自己的测试用例。在这种情况下,您的测试用例应该用空格隔开,代表count_frequencies函数的输入列表。

pis*_*all 5

您可以使用以下简单功能collections.Counter

from collections import Counter

def count_words(list_of_words):
    return sorted([(k, v) for (k,v) in dict(Counter(list_of_words)).items()])

>>> count_words(['we', 'came', 'we', 'saw', 'we', 'conquered'])

# [('we', 3), ('came', 1), ('saw', 1), ('conquered', 1)]
Run Code Online (Sandbox Code Playgroud)