關鍵詞 句子 最大相似度 維度

2021-08-28 09:36:05 字數 4307 閱讀 1105

首先生成生成 維度為 在最大相似度的向量

# -*- coding:utf-8 -*-

from sklearn import svm #svm匯入

import codecs

from __future__ import division #除法

#詞向量匯入

import sys

import codecs #可以以特定編碼開啟檔案

import jieba

import jieba.posseg as pseg

reload(sys) #zzh說這種方法不好,不要再用了!!! 可是真的很好用啊 qaq

sys.setdefaultencoding('utf-8')

import gensim

# model = gensim.models.word2vec.load("22620491.model")#訓練集測試集,要改輸入文字,執行兩邊,輸出xljcsj

del model #把模型給word_vec,所以model刪掉。

keywords=codecs.open("keywords.txt","r","utf-8-sig")

lines=keywords.readlines()

for line in lines:

words=line.split(" ",6)

for word in words:

print word

word=word.replace("\r\n","")

print(ekey)

for i in ekey:

word_vec[i]

# print(word_vec[ekey[0]])

# print("end")

# print(len(ekey))

keywords.close()

smlrt_svm=codecs.open("similarity_svm_csj.txt","w","utf-8-sig")

sentence=codecs.open("csj_fenci.txt","r","utf-8-sig")

lines=sentence.readlines()

for line in lines:

stc=

e= #向量

if line.split(" ",1)[1]!="\r\n": #除掉空行

words=line.split(" ",1)[1].split(" ")

for word in words:

word=word.replace("\r\n","")

print(stc)

for key in ekey:

maxs=-1

for i in stc:

try:

s=word_vec.similarity(key, i)

if s>maxs:

maxs=s

# print(s)

except:

continue

if maxs==-1:

maxs=0

else:

print(e)

smlrt_svm.write(line.split(" ",1)[0].split(" ",1)[0]+" "+str(e)+"\r\n")

smlrt_svm.close()

然後對其進行svm多分類

xlj = codecs.open("similarity_svm_xlj.txt","r","utf-8-sig")

# doc = open("res.txt","w")

lines = xlj.readlines()

x=y=

zero=

for i in range(0,35):

for line in lines:

a=line.split(" ",1)[1].replace("[","").replace("]","").split(",")

a = map(eval, a)

if a!= zero: #去掉沒有詞向量的特徵向量

b = int(line.split(" ", 1)[0])

xlj.close()

clf = svm.svc(decision_function_shape='ovo')

clf.fit(x, y)

# print (len(x))

# print (len(y))

# print (len(a))

x_test=

y_test=

csj = codecs.open("similarity_svm_csj.txt","r","utf-8-sig")

lines = csj.readlines()

print(len(lines))

for line in lines:

a=line.split(" ",1)[1].replace("[","").replace("]","").split(",")

a = map(eval, a)

if a!= zero: #去掉沒有詞向量的特徵向量

b = int(line.split(" ", 1)[0])

print len(x_test)

print len(y_test)

print x_test

# y_hat = clf.predict(x)

print clf.score(x_test, y_test) #全部分類準確率

le,ai,nu,jing,wu=0,0,0,0,0 #五類分類準確率

sumle,sumai,sumnu,sumjing,sumwu=0,0,0,0,0

for i in range(len(x_test)):

if y_test[i]==0:

sumle+=1

if clf.predict([x_test[i]])==y_test[i] :

le=le+1

elif y_test[i]==1:

sumai+=1

if clf.predict([x_test[i]])==y_test[i] :

ai+=1

elif y_test[i]==2:

sumnu+=1

if clf.predict([x_test[i]])==y_test[i] :

nu+=1

elif y_test[i]==3:

sumjing+=1

if clf.predict([x_test[i]])==y_test[i] :

jing+=1

elif y_test[i]==4:

sumwu+=1

if clf.predict([x_test[i]])==y_test[i] :

wu+=1

print(le/sumle,ai/sumai,nu/sumnu,jing/sumjing,wu/sumwu)

print(le,ai,nu,jing,wu)

print(sumle,sumai,sumnu,sumjing,sumwu)

csj.close()

# for line in lines:

# x=line.split(" ",1)[1].replace("[","").replace("]","").split(",")

# x = map(eval, x)

# res=clf.predict([x])

# # print(clf.predict([x])) # **

# if clf.predict([x]).tolist()[0] == int(line.split(" ",1)[0]):

# cnt=cnt+1

# print(line.split(" ",1)[0])

# print cnt

關鍵詞密度

百科名片 目錄 隱藏 什麼是增加keywords密度的最好方式 關鍵字堆砌 keyword stuffing 的定義 關鍵字堆砌 keyword stuffing 關鍵字堆砌 keyword stuffing 是指在乙個網頁中非常密集地放置關鍵字。一般說來,如果關鍵字的出現過於頻繁,就會蓋過網頁的其...

關鍵詞提取

隱含主題模型優缺點 隱含主題模型可以很好地表示文件和標籤主題,有效降低標籤系統中噪音的影響。但是另外乙個方面,隱含主題相對於詞而言粒度較粗,對於具體實體 如人名 地名 機構名和產品名 的標籤沒有辦法做到很好地區分,因此對這些細粒度標籤推薦效果較差 典型的聚類演算法 層次聚類 hierarchical...

常用關鍵詞

保留字是指在程式語言中,暫時還沒有賦予含義,不過也不能用於定義變數名和類名,因為後續再公升級過程中可能會用到的單詞。final 繼承的出現提高了 的復用性,並方便開發。但隨之也有問題,有些類在描述完之後,不想被繼承,或者有些類中的部分方法功能是固定的,不想讓子類重寫。final修類類不可以被繼承,但...