我有两个矩阵,一个是文本,一个是文本中的词频。我从词频矩阵中删除了一行。然后如何使用文本编号(文本矩阵中的行索引)从词频矩阵中提取一行?
例如:
第 1 步:文本列表
我有一个行中的文本列表,其中每个文本都由其行号引用:
>>print type(texts)
>>print texts.shape
<type 'numpy.ndarray'>
(53,)
第 2 步:根据行号选择文本
我有一个这样的范围:
>>print train_range
>>[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
51 52]
此范围用于从 中选择行texts
。这基本上意味着删除一个文本,因为train_range
. 在下面的示例中,第一行(第 0 行)被删除,因为 0 不在train_range
:
texts[train_range]
第三步:获取文本的词频
然后分析文本(按词频)以返回稀疏矩阵train_X
。由于每个文本都是 in 中的一行texts
,因此每个文本的词频都放在 in 中的一行中train_X
。所以texts
有 53 行,texts[train_range]
有 52 行,train_X
有 52 行:
trainX = get_word_freq_matrix( texts[train_range] )
>>print train_X.shape
(52, 6237)
>>print type(train_X)
<class 'scipy.sparse.csr.csr_matrix'>
第 4 步:获取某些文本的词频
我现在想train_X
使用新的范围从原始文本编号中获取行,如下所示:
apply_range = [4,7,8]
train_X[apply_range]
但是,apply_range
(like train_range
) 中的数字指的是 中的行texts
。这些数字不指train_X
. 如何使用此范围train_X
根据它们出现的位置获取正确的频率texts
?
我尝试使用来自另一个矩阵的索引来引用矩阵中的行。但是,我不确定这是如何工作的,因为该函数没有考虑从texts
.