Чтобы получить tfidf maxtrix, я обучил 50000 документов с помощью sklearn.feature_extraction.text.TfidfVectorizer,
from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer(stop_words=stop_words_file_list,smooth_idf=True)
crops_vect = vec.fit_transform(crops).toarray()
Я знаю, что строка crop_vect - это каждый документ, а столбец - это слово, извлеченное извесь корпус, такой как crop_vect [document_id1], представляет вектор, состоящий из tdidf, обученного корпусом.У меня вопрос, что означает vec.transform (['America strong']. Toarray ():
np.where(vec.transform(['america strong']).toarray())
>>>(array([0, 0]), array([112609, 195997]))
[i for i in vec.transform(['america strong']).toarray()[0] if i != 0]
>>>[0.675671442580281, 0.7372028904456914]
[i for i in vec.transform(['strong']).toarray()[0] if i != 0]
>>>[1]
Я посмотрел на вектор слова "сильный" в корпусе
np.array([i for i in crops_vect.T[195997].toarray()[0] ])
>>>array([0., 0., 0., ..., 0., 0., 0.])
np.where(np.array([i for i in crops_vect.T[195997].toarray()[0] ]))
>>>array([ 20, 239, 250, 272, 303, 786, 797, 836, 924,
1202, 1218, 1613, 1645, 1651, 1662, 1670, 1673, 1688,
1691, 1697, 1721, 1728, 1766, 1780, 1849, 1935, 1975,
1988, 1999, 2017, 2018, 2199, 2344, 2354, 2721, 2752,
2775, 2785, 2788, 2809, 2818, 2826, 2830, 2841, 2844,
.....]
в чем заключается мой вопрос: 1) я знал vec.transform (['strong']). Toarray ()! = Crop_vect.T [195997] .toarray () и что означает vec.transform (['strong ']). toarray ()
2) что представляет собой vec.transform ([' word1 ',' word2 ']), эквивалентно ли это добавлению нового документа [' word1 ',' word2 '] к ранее обученной матрице tfidf, а затем вычислить новую матрицу tdidf нового документа?
3) vec.transform (['word1', 'word2']), Как он вычисляет ее внутренне
спасибо