利用.csr_matrix构建term-document矩阵

时间:2024-10-13 21:06:02
  • # coding: utf-8
  • from import csr_matrix
  • docs = [["hello", "world", "hello"], ["goodbye", "cruel", "world"]]
  • indptr = [0] # 存放的是行偏移量
  • indices = [] # 存放的是data中元素对应的列编号(列编号可重复)
  • data = [] # 存放的是非0数据元素
  • vocabulary = {} # key是word词汇,value是列编号
  • for d in docs: # 遍历每个文档
  • for term in d: # 遍历文档的每个词汇term
  • # setdefault如果term不存在,则将新term和他的列
  • # 编号len(vocabulary)加入到词典中,返回他的编号;
  • # 如果term存在,则不填加,返回已存在的编号
  • index = (term, len(vocabulary))
  • (index)
  • (1)
  • (len(indices))
  • # csr_matrix可以将同一个词汇次数求和
  • csr_matrix((data, indices, indptr), dtype=int).toarray()