環境 win10+python3.7
安裝:jieba gensim : pip3 inatll jieba,gensim
import
jieba
from
gensim
import
corpora
,models
,similarities
import
jieba
from
gensim
import
corpora
,models
,similarities if
__name__==
"__main__":
doc0 =
" 白朮 "
doc1 =
"炒白朮"
doc2 =
"白朮(先煎)"
doc3 =
"黃柏"
doc3 =
"黃柏."
doc_test=[
"白朮","
炒白朮","
黃柏"]
all_ =
#這部分只是測試用,實際引用函式時,可以不用這部分
deffindsame(
test_doc
,all_doc):
'''在all_doc中查詢test_doc近似的值
test_doc :
陣列,乙個或多目標
all_doc:
陣列,查詢範圍,找出與目標最近似的值,元素不得少於2個
'''all_doc_word=
find_list=[[
"目標","
近似值1","
近似度1","
近似值2","
近似度2"]]
fordoc
inall_doc:
doc_word=[
word
forword
injieba
.cut(doc.strip())]#分詞
dictionary=
corpora
.dictionary
(all_doc_word)
#建立詞袋,就是把詞刪除重複項編個號
corpus=[dictionary.doc2bow(
doc)
fordoc
inall_doc_word]
#建立語料庫,就是在詞袋的基礎上,計算每段文字,每個詞語出現的頻率
tfidf=
models
.tfidfmodel
(corpus)
#用語料庫建立tf-idf模型
#print(all_doc_word)
fortdoc
intest_doc:
doc_test_word=[
word
forword
injieba
.cut(tdoc.strip())]#分詞
doc_test_vec=dictionary.doc2bow(doc_test_word)
#建按all_doc的詞袋庫建語料庫
#tfidf[doc_test_vec]
index=
similarities
.sparsematrixsimilarity
(tfidf[corpus],num_features=len(dictionary.keys()))
#分析相似度
sim=index[tfidf[doc_test_vec]]
#對比相似度 #
排序 b=sorted(
enumerate
(sim),key=
lambda
item
:-item
[1])
all_doc
[int
(b[0][0])],b[0][1],
all_doc
[int
(b[1][0])],b[1][1]])
#把目標值和找到的第1、2近似值,近似度提取
return
find_list
print(findsame(doc_test,all_))
求 的近似值
請利用 正多邊形逼近 的方法求出 的近似值 問題分析與演算法設計 利用 正多邊形逼近 的方法求出 值在很早以前就存在,我們的先人祖沖之就是用這種方法在世界上第乙個得到精確度達小數點後第6位的 值的。利用圓內接正六邊形邊長等於半徑的特點將邊數翻番,作出正十二邊形,求出邊長,重複這一過程,就可獲得所需精...
求 的近似值
請利用 正多邊形逼近 的方法求出 的近似值 問題分析與演算法設計利用 正多邊形逼近 的方法求出 值在很早以前就存在,我們的先人祖沖之就是用這種方法在世界上第乙個得到精確度達小數點後第6位的 值的。利用圓內接正六邊形邊長等於半徑的特點將邊數翻番,作出正十二邊形,求出邊長,重複這一過程,就可獲得所需精度...
程式設計題 取近似值
talk is cheap,show me the code.寫出乙個程式,接受乙個正浮點數值,輸出該數值的近似整數值。如果小數點後數值大於等於5,向上取整 小於5,則向下取整。輸入描述 輸入乙個正浮點數值 輸出描述 輸出該數值的近似整數值 輸入例子 5.5 輸出例子 這道題比較簡單,但是實現方式也...