python構建共現矩陣

2022-08-21 14:33:13 字數 3156 閱讀 9300

資料預處理部分可以參考之前的那篇lda模型

import

numpy as np

import

pandas as pd

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 = #

word_set = #

set_word = #

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]

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

for word in

texts:

word_new = list(set(word))#

去除一維陣列中相同的詞

for subword in

word_set:

for word in

subword:

if word not

inset_word:

#統計所有出現的詞

#

初始化矩陣

defbuild_matirx(set_word):

edge = len(set_word) + 1 #

'''matrix = np.zeros((edge, edge), dtype=str)

'''#

另一種初始化方法

matrix = [[''

for j in range(edge)] for i in range(edge)] #

初始化矩陣

matrix[0][1:] =np.array(set_word)

matrix = list(map(list, zip(*matrix)))

matrix[0][1:] = np.array(set_word) #

賦值矩陣的第一行與第一列

return matrix

#

defcount_matrix(matrix, texts):

for row in range(1, len(matrix)):

#遍歷矩陣第一行,跳過下標為0的元素

for col in range(1, len(matrix)):

#遍歷矩陣第一列,跳過下標為0的元素

#if matrix[0][row] ==matrix[col][0]:

# matrix[col][row] =str(0)

else

: counter = 0 #

初始化計數器

for ech in

texts:

##再放到每條原始資料中查詢

if matrix[0][row] in ech and matrix[col][0] in

ech:

counter += 1

else

:

continue

matrix[col][row] =str(counter)

return matrix

def

main():

#print(set_word)

#print(texts)

matrix =build_matirx(set_word)

matrix =count_matrix(matrix, texts)

data1 =pd.dataframe(matrix)

data1.to_csv(

'd:/02-1python/2020.08.11-lda/1008-covid/chuli/data.csv

', index=0, columns=none, encoding='

utf_8_sig')

main()

參考:

灰度共生 共現 矩陣的求法

前段時間在寫關於影象的作業時,出現了灰度共生矩陣的求法問題。於是就上網查資料發現不是很理想,翻書查閱也是不同的書籍出現的解法也是不一樣,上別的課時老師也給我們講了下,但是發現與我所看到的資料上講的不一樣。經總結思考後算是明白了,現在就班門弄斧分享下自己的心得。至於灰度共生矩陣的用途,我只知道它在檢測...

OpenCV22(灰度共現矩陣 灰度共生矩陣)

理解它的最好辦法,就是我們來一起算一次。灰度共現 共生矩陣,其上元素,是灰度影象中某種形狀的畫素對,在全圖中出現的次數 或者是概率 不理解?沒關係,一會就明白了 可以用作影象的一種特徵,藉以區分不同的影象。灰度共現矩陣是方陣,矩陣的行數是影象灰度的等級。不理解?沒關係 ok,開始做題。假設乙個影象的...

COOC1 9軟體 一鍵做共現矩陣與相異矩陣

cooc1.9軟體 一鍵做共現矩陣與相異矩陣 cooc1.8軟體介紹 本次更新解決因為電腦編碼問題導致相異矩陣部分電腦做不成功難題。如圖 乙個入口相異矩陣做不成功直接換別的入口即可,包含所有情況啦!cooc1.8軟體優勢 能夠快速計算出中國知網 cnki 中文社會科學引文索引 cssci web o...