python構建詞篇矩陣

2022-08-21 14:33:12 字數 2223 閱讀 4706

from pprint import

pprint

import xlrd #

讀取excel資料

import

reimport jieba #

使用結巴進行中文分詞

path = r"

d:\01研\01大四\2020.3.13-國家突發衛生事件\20201008\lda.xlsx"#

修改路徑

data =xlrd.open_workbook(path)

sheet_1_by_index = data.sheet_by_index(0) #

讀取表一

title = sheet_1_by_index.col_values(1) #

第二列n_of_rows =sheet_1_by_index.nrows

doc_set = #

空列表for i in range(1,n_of_rows): #

逐行讀取

#從檔案匯入停用詞表

defstopwordslist(filepath):

stopwords=[line.strip() for line in open(filepath,'

r',encoding='

utf-8

').readlines()]

return

stopwords

stopwords=stopwordslist(r"

d:\01研\01大四\2020.3.13-國家突發衛生事件\20201008\stopwords.txt")

texts = #

stpwrdlst2 = ['

和', '

等', '

對', '

的', '

不','

與', '

一','

化']#

去停用詞2自編,這裡是我自己覺得需要去掉的詞

for doc in

doc_set:

#只保留中文

cleaned_doc = ''.join(re.findall(r'

[\u4e00-\u9fa5]

', doc))

#分詞doc_cut =jieba.lcut(cleaned_doc)

#去停用詞

text_list0 = [word for word in doc_cut if word not

in stopwords and len(word)>1]

text_list1 = [word for word in text_list0 if word not

instpwrdlst2]

#if len(doc_cut)>1 and doc_cut not in stopwords:##

最終處理好的結果存放於text中

#利用 gensim 庫構建詞篇矩陣

import

gensim

from gensim import

corpora

#構建字典,把剛剛處理好的詞都存進去

dictionary =corpora.dictionary(texts)

#構建文件-詞頻矩陣,得到的是詞袋矩陣

corpus = [dictionary.doc2bow(text) for text in

texts]

#print('\n文件-詞頻矩陣:')

#pprint(corpus)

#pprint(corpus[0:19])

#for c in corpus:

#print(c)

#轉換成稀疏矩陣

from gensim.matutils import

corpus2dense

corpus_matrix=corpus2dense(corpus, len(dictionary))

print(corpus_matrix)

[[1. 0. 0. ... 0. 0. 0.]

[1. 0. 0. ... 0. 0. 0.]

[1. 0. 1. ... 1. 0. 0.]

...[0. 0. 0. ... 0. 0. 1.]

[0. 0. 0. ... 0. 0. 1.]

[0. 0. 0. ... 0. 0. 1.]]

corpus_matrix.shape

(1342, 15)

python構建共現矩陣

資料預處理部分可以參考之前的那篇lda模型 import numpy as np import pandas as pd from pprint import pprint import xlrd 讀取excel資料 import reimport jieba 使用結巴進行中文分詞 path r d...

詞嵌入矩陣 Word Embeddings 的生成

詞嵌入矩陣是自然語言處理裡非常重要的東西。它可以幫助我們快速的使用小樣本建立乙個不錯的自然語言處理任務。那麼他是如何生成的呢。詞嵌入矩陣一般在乙個很大的字型檔裡學習的,其中包含許多的單詞,格式為 keyword num,vec num keyword num就是訓練字型檔的字的數量 英文為乙個單詞或...

構建詞向量(單向量版)

為了節省記憶體,詞向量的結果進行了惰性計算,返回的是乙個記憶體位址 如果想要使用,請list展開 共計三個結果,原順序 詞向量,單詞標籤,以及乙個排序結果 import re import numpy as np import matplotlib.pyplot as plt import scip...