首先生成生成 維度為 在最大相似度的向量
# -*- 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修類類不可以被繼承,但...