欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 點互信息

張吉惟1年前8瀏覽0評論

Python點互信息是一種常用的文本處理方法,主要用于詞頻統(tǒng)計和信息提取。點互信息是指兩個單詞同時出現(xiàn)的概率與它們各自出現(xiàn)的概率的乘積之比。這種方法可以幫助我們發(fā)現(xiàn)兩個單詞之間的潛在關(guān)聯(lián)性,同時也可以用于構(gòu)建自然語言處理模型。

import math
def word_count(word_list):
"""
計算單詞出現(xiàn)次數(shù)
"""
count = {}
for word in word_list:
count[word] = count.get(word, 0) + 1
return count
def get_word_pair_count(word_list):
"""
計算單詞對出現(xiàn)次數(shù)
"""
word_pair_count = {}
for i in range(len(word_list) - 1):
word_pair = word_list[i] + ' ' + word_list[i + 1]
word_pair_count[word_pair] = word_pair_count.get(word_pair, 0) + 1
return word_pair_count
def calc_pointwise_mutual_information(word_list, word_pair_count, count):
"""
計算點互信息
"""
pmis = {}
N = len(word_list)
for word_pair, freq in word_pair_count.items():
word1, word2 = word_pair.split()
pmi = math.log((freq * N) / (count[word1] * count[word2]), 2)
pmis[word_pair] = pmi
return pmis
if __name__ == '__main__':
text = 'Python是一種廣泛使用的高級編程語言'
word_list = text.split()
count = word_count(word_list)
word_pair_count = get_word_pair_count(word_list)
pmis = calc_pointwise_mutual_information(word_list, word_pair_count, count)
print(pmis)

在上面的代碼中,我們首先定義了三個函數(shù),分別用于計算單詞出現(xiàn)數(shù)量、單詞對出現(xiàn)數(shù)量和點互信息。在主程序中,我們首先定義一個文本字符串,然后將其轉(zhuǎn)換為單詞列表。接著,我們使用上面定義的三個函數(shù)計算單詞數(shù)、單詞對數(shù)以及點互信息。最后,我們輸出點互信息結(jié)果。

在實際使用中,我們可以將點互信息應用于自然語言處理任務中,例如文本分類、關(guān)鍵詞提取、語義匹配等。因此,掌握Python點互信息的計算方法,對提高自然語言處理的效果和精度都有一定幫助。