首页 > 解决方案 > 一个函数,它接受一个字符串列表——每个元素都是一本书。此函数的输出是一个 2D NumPy 书籍计数数组

问题描述

编写一个函数,featurize,它将一个字符串列表作为其唯一的输入参数:每个元素都是一个包含整本书内容的字符串。该函数的输出是一个 2D NumPy 计数数组,其中行是文档/书籍(即每个元素一行!),列是全局词汇表中所有单词的计数。

例如,如果我通过一个双字符串列表来特征化两个字符串之间共有 50 个唯一单词,则输出矩阵应该具有形状 (2, 50):第一行将是该文档中单词的相应计数,与第二行相同。

行(文档)的顺序应与函数参数列表中给出的顺序相同,列(单词)应按字典顺序递增(也称为字母顺序)。欢迎您使用 B 部分和 E 部分中的函数(E 部分的函数在这里特别有用,因为这几乎可以完成所有繁重的工作;您只需要将字典转换为矩阵)。

import numpy as np
def featurize (a):
    vocab = ()
    for i in a:
        counts = word_counts(i)
        vocab.extend(counts)
    return (np.shape(vocab))

标签: pythonpython-3.xfunction

解决方案


家庭作业是一个尝试的机会。坚持下去。

在这种类型的问题中,您可能会因为类型正确而感到困惑。您可以查看使用类型提示,或者在命名变量时要非常小心。例如,您拥有def featurize(a)并且可能想要类似def create_table_of_books_by_wordcount(list_of_books).

第二项是您可能想查看 Python 中的 Counter 类。您可以使用split将书分解成单词并Counter数数。您应该查看的其他功能是sum(alist)sort带有key参数的。

看起来很多,但这个问题只是一堆小问题。

祝你好运!继续黑客攻击!记笔记!


推荐阅读