我有兩個矩陣,文本之一併且在文本字頻率中的一個從矩陣2提取行。我從字頻矩陣中刪除一行。那我怎樣才能從文字頻率矩陣中提取一行,使用文本編號(文本矩陣中的行索引)?使用索引從矩陣1
例如:
步驟1:
>>print type(texts)
>>print texts.shape
<type 'numpy.ndarray'>
(53,)
:文本
我有行文本,其中,每個文本是由它的行號碼稱爲列表的列表第2步:根據自己的行數
選擇文本和我有AR這樣的天使:
>>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
中只有52行索引。在下面的示例中,第一行(第0行)被去除,爲0不是在train_range
:
texts[train_range]
步驟3:取得文本
案文然後分析的詞頻率(由字頻)返回一個稀疏矩陣train_X
。由於每個文本是texts
一排,所述詞頻率爲每個文本被放置在一個行中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
的數字(如train_range
)參考texts
中的行。這些數字不涉及train_X
中的行。我如何使用這個範圍內得到train_X
基礎上,他們會出現在texts
正確的頻率?
我已經試過referencing rows in a matrix using index from another matrix。但是,我不知道如何可以工作,因爲功能沒有考慮到其中的文本從texts
刪除的帳戶。
你可能不得不某處節省一些有關哪些行被刪除,然後獲取用於'train_X'正確的索引使用一個函數。像'train_X [get_correct_indexes([4,7,8],who_got_deleted)]''。 至少這不應該太難實現,也許有更好的方法來做到這一點。 – Bakuriu
從粗略的角度來看,您似乎將不同類型的數據關聯在一起。而不是將它們存儲在單獨的並行列表中(其中關聯基於列表中的位置),也許字典數據類型的鍵/值對可能更好地滿足您的需求? – abought