機器學習必會工具gensim

2022-05-15 15:04:59 字數 2704 閱讀 3894

1

import

jieba

2import

gensim

3from gensim import

corpora

4from gensim import

models

5from gensim import

similarities

67 l1 = ["

你的名字是什麼

" ,"

你今年多少歲

","你今年幾歲了

" ,"

你有多高你胸多大

", "

你胸多大"]

8 a = "

你今年多大了"9

10 all_doc_list =

11for doc in

l1:12 doc_list = [word for word in

jieba.cut(doc)]

1314

print

(all_doc_list)

1516 doc_test_list = [word for word in

jieba.cut(a)]

17print

(doc_test_list)

181920#

製作語料庫

21 dictionary = corpora.dictionary(all_doc_list) #

製作詞袋22#

詞袋的理解23#

詞袋就是將很多很多的詞,進行排列形成乙個 詞(key) 與乙個 標誌位(value) 的字典24#

例如: 25#

至於它是做什麼用的,帶著問題往下看

2627

print("

token2id

", dictionary.token2id)

28print("

dictionary

", dictionary, type(dictionary))

2930 corpus = [dictionary.doc2bow(doc) for doc in

all_doc_list]31#

語料庫:32#

這裡是將all_doc_list 中的每乙個列表中的詞語 與 dictionary 中的key進行匹配33#

得到乙個匹配後的結果,例如['你', '今年', '幾歲', '了']34#

就可以得到 [(1, 1), (5, 1), (6, 1), (7, 1)]35#

1代表的的是 你 1代表出現一次, 5代表的是 了 1代表出現了一次, 以此類推 6 = 今年 , 7 = 幾歲

36print("

corpus

", corpus, type(corpus))

3738

#將需要尋找相似度的分詞列表 做成 語料庫 doc_test_vec

39 doc_test_vec =dictionary.doc2bow(doc_test_list)

40print("

doc_test_vec

", doc_test_vec, type(doc_test_vec))

4142

#將corpus語料庫(初識語料庫) 使用lsi模型進行訓練

43 lsi =models.lsimodel(corpus)44#

這裡的只是需要學習lsi模型來了解的,這裡不做闡述

45print("

lsi"

, lsi, type(lsi))46#

語料庫corpus的訓練結果

47print("

lsi[corpus]

", lsi[corpus])48#

獲得語料庫doc_test_vec 在 語料庫corpus的訓練結果 中的 向量表示

49print("

lsi[doc_test_vec]

", lsi[doc_test_vec])

5051

#文字相似度52#

稀疏矩陣相似度 將 主 語料庫corpus的訓練結果 作為初始值

53 index = similarities.sparsematrixsimilarity(lsi[corpus], num_features=len(dictionary.keys()))

54print("

index

", index, type(index))

5556

#將 語料庫doc_test_vec 在 語料庫corpus的訓練結果 中的 向量表示 與 語料庫corpus的 向量表示 做矩陣相似度計算

57 sim =index[lsi[doc_test_vec]]

5859

print("

sim"

, sim, type(sim))

6061

#對下標和相似度結果進行乙個排序,拿出相似度最高的結果62#

cc = sorted(enumerate(sim), key=lambda item: item[1],reverse=true)

63 cc = sorted(enumerate(sim), key=lambda item: -item[1])

64print

(cc)

6566 text =l1[cc[0][0]]

6768

print(a,text)

可用於機器學習,進行相似度比對,問題庫越豐富,機器學習效果越準確

gensim學習筆記

1 詞向量建模的word2vec模型和用於長文字向量建模的doc2vec模型 在gensim中實現word2vec模型非常簡單。首先,我們需要將原始的訓練語料轉化成乙個sentence的迭代器 每一次迭代返回的sentence是乙個word utf8格式 的列表 class mysentences ...

機器學習必知必會 交叉驗證

當我們根據資料訓練出乙個機器學習模型時,我們希望它在新的資料上也保持較高的準備率,這就需要我們對學習到的不同模型有乙個模型評估準則。為了評估模型的泛化效能 指模型在未知資料上的 能力 防止模型落入 過擬合 的陷進。我們人為地將原始資料劃分為訓練集和測試集,前者用於訓練模型,後者用於評估模型的泛化效能...

機器學習工具彙總

從機器學習談起 介紹工具是機器學習的重要組成部分,選擇合適的工具與使用最好的演算法同等重要。在這篇文章中,你將會見識到各種機器學習工具。了解它們為什麼重要,以及可供選擇的工具型別。機器學習工具使得應用機器學習更快,更簡單,更有趣。你不希望為學習 使用機器學習工具而學習 使用機器學習工具。必須有目的地...