0
TF_norm 행렬과 IDF 벡터에서 TF-IDF를 만들려고합니다. 나는 그들이 같은 차원을 가지고 있지 않다는 것을 알고 있습니다. 그래서 나는 어떻게이 둘을 번식시킬 수 있는지에 대해 분실합니다. TF_norm 행렬에 축소 문자를 추가하거나 IDF 벡터를 변환해야합니까? 여기에서 완전히 잃어 버렸습니다.Python TF-IDF 제품
#c) Normalized term frequency
count=0
total=lexicon_dim
matrix_TF_norm=[[0 for c in range(lexicon_dim)] for r in range(4)]
for c in lexicon:
matrix_TF_norm[0][count]=c
matrix_TF_norm[1][count]=hamlet_tok_norm_stop_stem.count(c)/total
matrix_TF_norm[2][count]=macbeth_tok_norm_stop_stem.count(c)/total
matrix_TF_norm[3][count]=pinocchio_tok_norm_stop_stem.count(c)/total
count=count+1
print(matrix_TF_norm)
#d) TF-IDF
vector_idf=[] #initialize IDF vector
for i in range(lexicon_dim): #run through loop for each token in lexicon
df=0
if matrix_binary[1][i]==1: #[1] = doc1
df=df+1
if matrix_binary[2][i]==1:
df=df+1
if matrix_binary[3][i]==1:
df=df+1
#add them together
idf=math.log(3/df)
vector_idf.append(idf)
print(vector_idf)
import numpy as np
vector_idf=np.diag(vector_idf)
tf_idf=np.cross(vector_idf,matrix_TF_norm)