文字相似度:
向量間相似度
nltk實現詞頻統計
import nltk
from nltk import freqdist
text1 =
'i like the movie so much '
text2 =
'that is a good movie '
text3 =
'this is a great one '
text4 =
'that is a really bad movie '
text5 =
'this is a terrible movie'
text = text1 + text2 + text3 + text4 + text5
words = nltk.word_tokenize(text)
freq_dist = freqdist(words)
print
('詞頻:'
,freq_dist[
'is'
])
# 取出常用的n=5個單詞
n =5
# 構造「常用單詞列表」
most_common_words = freq_dist.most_common(n)
print
(most_common_words)
def
lookup_pos
(most_common_words)
:"""
查詢常用單詞的位置
"""result =
pos =
0for word in most_common_words:
result[word[0]
]= pos
pos +=
1return result
# 記錄位置
std_pos_dict = lookup_pos(most_common_words)
print
(std_pos_dict)
# 新文字
new_text =
'that one is a good movie. this is so good!'
# 初始化向量
freq_vec =[0
]* n
# 分詞
new_words = nltk.word_tokenize(new_text)
# 在「常用單詞列表」上計算詞頻
for new_word in new_words:
if new_word in
list
(std_pos_dict.keys())
: freq_vec[std_pos_dict[new_word]]+=
1print
(freq_vec)
文字相似度
這種相似度計算方式相對簡單,原理也易於理解,就是計算單詞集合之間的交集和並集大小的比例,該值越大,表示兩個文字越相似。在涉及到大規模平行計算時,該方法效率上有一定的優勢。jaccard 相似度公式 舉例 句子a 我喜歡看電視,不喜歡看電影。句子b 我不喜歡看電視,也不喜歡看電影。分詞去噪後 a 我,...
計算文字相似度 文字相似度演算法之 simhash
文字相似度演算法種類繁多,今天先介紹一種常見的網頁去重演算法simhash。1 什麼是simhash 2 simhash步驟 人工智慧,1 大資料,2 科技,3 網際網路,4 機器學習,5 人工智慧 00101 大資料 11001 科技 00110 網際網路 10101 機器學習 01011 has...
計算文字相似度
計算文字相似度 推薦2收藏 簡單講解 文字相似度計算在資訊檢索 資料探勘 機器翻譯 文件複製檢測等領域有著廣泛的應用。比如 控制,我們假設你開發了乙個微博 並且已經把世界上罵人的句子都已經收錄進了資料庫,那麼當乙個使用者發微博時會先跟罵人句子的資料庫進行比較,如果符合裡面的句子就不讓使用者發出。通常...