Python資料分析 文字相似度

2021-09-20 10:11:55 字數 1474 閱讀 6128

文字相似度:

向量間相似度

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收藏 簡單講解 文字相似度計算在資訊檢索 資料探勘 機器翻譯 文件複製檢測等領域有著廣泛的應用。比如 控制,我們假設你開發了乙個微博 並且已經把世界上罵人的句子都已經收錄進了資料庫,那麼當乙個使用者發微博時會先跟罵人句子的資料庫進行比較,如果符合裡面的句子就不讓使用者發出。通常...