婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python實現余弦相似度文本比較的示例

python實現余弦相似度文本比較的示例

熱門標簽:悟空智電銷機器人6 溫州旅游地圖標注 蘇州電銷機器人十大排行榜 外呼不封號系統 荊州云電銷機器人供應商 幫人做地圖標注收費算詐騙嗎 電信營業廳400電話申請 遼寧400電話辦理多少錢 江蘇房產電銷機器人廠家

向量空間模型VSM:

VSM的介紹:

  一個文檔可以由文檔中的一系列關鍵詞組成,而VSM則是用這些關鍵詞的向量組成一篇文檔,其中的每個分量代表詞項在文檔中的相對重要性。

VSM的例子:

  比如說,一個文檔有分詞和去停用詞之后,有N個關鍵詞(或許去重后就有M個關鍵詞),文檔關鍵詞相應的表示為(d1,d2,d3,...,dn),而每個關鍵詞都有一個對應的權重(w1,w1,...,wn)。對于一篇文檔來說,或許所含的關鍵詞項比較少,文檔向量化后的向量維度可能不是很大。而對于多個文檔(2篇文檔或兩篇文檔以上),則需要合并所有文檔的關鍵詞(關鍵詞不能重復),形成一個不重復的關鍵詞集合,這個關鍵詞集合的個數就是每個文檔向量化后的向量的維度。打個比方說,總共有2篇文檔A和B,其中A有5個不重復的關鍵詞(a1,a2,a3,a4,a5),B有6個關鍵詞(b1,b2,b3,b4,b5,b6),而且假設b1和a3重復,則可以形成一個簡單的關鍵詞集(a1,a2,a3,a4,a5,,b2,b3,b4,b5,b6),則A文檔的向量可以表示為(ta1,ta2,ta3,ta4,ta5,0,0,0,0,0),B文檔可以表示為(0,0,tb1,0,0,tb2,tb3,tb4,tb5,tb6),其中的tb表示的對應的詞匯的權重。

最后,關鍵詞的權重一般都是有TF-IDF來表示,這樣的表示更加科學,更能反映出關鍵詞在文檔中的重要性,而如果僅僅是為數不大的文檔進行比較并且關鍵詞集也不是特別大,則可以采用詞項的詞頻來表示其權重(這種表示方法其實不怎么科學)。

TF-IDF權重計算:

TF的由來:

  以前在文檔搜索的時候,我們只考慮詞項在不在文檔中,在就是1,不在就是0。其實這并不科學,因為那些出現了很多次的詞項和只出現了一次的詞項會處于等同的地位,就是大家都是1.按照常理來說,文檔中詞項出現的頻率越高,那么就意味著這個詞項在文檔中的地位就越高,相應的權重就越大。而這個權重就是詞項出現的次數,這樣的權重計算結果被稱為詞頻(term frequency),用TF來表示。

IDF的出現:

  在用TF來表示權重的時候,會出現一個嚴重的問題:就是所有 的詞項都被認為是一樣重要的。但在實際中,某些詞項對文本相關性的計算來說毫無意義,舉個例子,所有的文檔都含有汽車這個詞匯,那么這個詞匯就沒有區分能力。解決這個問題的直接辦法就是讓那些在文檔集合中出現頻率較高的詞項獲得一個比較低的權重,而那些文檔出現頻率較低的詞項應該獲得一個較高的權重。

  為了獲得出現詞項T的所有的文檔的數目,我們需要引進一個文檔頻率df。由于df一般都比較大,為了便于計算,需要把它映射成一個較小的范圍。我們假設一個文檔集里的所有的文檔的數目是N,而詞項的逆文檔頻率(IDF)。計算的表達式如下所示:

  通過這個idf,我們就可以實現罕見詞的idf比較高,高頻詞的idf比較低。

TF-IDF的計算:

  TF-IDF = TF * IDF

  有了這個公式,我們就可以對文檔向量化后的每個詞給予一個權重,若不含這個詞,則權重為0。

余弦相似度的計算:

  有了上面的基礎知識,我們可以將每個分好詞和去停用詞的文檔進行文檔向量化,并計算出每一個詞項的權重,而且每個文檔的向量的維度都是一樣的,我們比較兩篇文檔的相似性就可以通過計算這兩個向量之間的cos夾角來得出。下面給出cos的計算公式:

  分母是每篇文檔向量的模的乘積,分子是兩個向量的乘積,cos值越趨向于1,則說明兩篇文檔越相似,反之越不相似。

文本比較實例:

對文本進行去停用詞和分詞:

文本未分詞前,如下圖所示:

  

文本分詞和去停用詞后,如下圖所示:

詞頻統計和文檔向量化

對經過上一步處理過的文檔,我們可以統計每個文檔中的詞項的詞頻,并且將其向量化,下面我直接給出文檔向量化之后的結果。注意:在這里由于只是比較兩篇文檔的相似性,所以我只用了tf來作為詞項的權重,并未使用tf-idf:

向量化后的結果是:

        [1,1,1,1,1,1,1,1,1,1,1,1,1,1]

  • 兩篇文檔進行相似度的計算,我會給出兩篇文檔的原文和最終計算的相似度:

    文檔原文如下所示:

    文檔A的內容

    文檔B的內容

    余弦相似度代碼實現:

    import  math
    # 兩篇待比較的文檔的路徑
    sourcefile = '1.txt'
    s2 = '2.txt'
    
    # 關鍵詞統計和詞頻統計,以列表形式返回
    def Count(resfile):
            t = {}
            infile = open(resfile, 'r', encoding='utf-8')
            f = infile.readlines()
            count = len(f)
            # print(count)
            infile.close()
    
            s = open(resfile, 'r', encoding='utf-8')
        i = 0
            while i  count:
                line = s.readline()
            # 去換行符
                line = line.rstrip('\n')
                # print(line)
                words = line.split(" ")
                #   print(words)
    
                for word in words:
                        if word != "" and t.__contains__(word):
                            num = t[word]
                        t[word] = num + 1
                        elif word != "":
                        t[word] = 1
                i = i + 1
    
            # 字典按鍵值降序
            dic = sorted(t.items(), key=lambda t: t[1], reverse=True)
            # print(dic)
            # print()
            s.close()
            return (dic)
    
    
    
    def MergeWord(T1,T2):
            MergeWord = []
            duplicateWord = 0
            for ch in range(len(T1)):
                MergeWord.append(T1[ch][0])
            for ch in range(len(T2)):
                if T2[ch][0] in MergeWord:
                        duplicateWord = duplicateWord + 1
                else:
                        MergeWord.append(T2[ch][0])
    
            # print('重復次數 = ' + str(duplicateWord))
            # 打印合并關鍵詞
            # print(MergeWord)
            return MergeWord
    
    # 得出文檔向量
    def CalVector(T1,MergeWord):
            TF1 = [0] * len(MergeWord)
    
        for ch in range(len(T1)):
                TermFrequence = T1[ch][1]
                word = T1[ch][0]
                i = 0
                while i  len(MergeWord):
                        if word == MergeWord[i]:
                        TF1[i] = TermFrequence
                        break
                        else:
                        i = i + 1
            # print(TF1)
            return TF1
    
    def CalConDis(v1,v2,lengthVector):
    
            # 計算出兩個向量的乘積
            B = 0
            i = 0
            while i  lengthVector:
                B = v1[i] * v2[i] + B
                i = i + 1
            # print('乘積 = ' + str(B))
    
            # 計算兩個向量的模的乘積
            A = 0
            A1 = 0
            A2 = 0
            i = 0
            while i  lengthVector:
                A1 = A1 + v1[i] * v1[i]
                i = i + 1
            # print('A1 = ' + str(A1))
    
            i = 0
            while i  lengthVector:
                A2 = A2 + v2[i] * v2[i]
                i = i + 1
               # print('A2 = ' + str(A2))
    
            A = math.sqrt(A1) * math.sqrt(A2)
            print('兩篇文章的相似度 = ' + format(float(B) / A,".3f"))
    
    
    
    T1 = Count(sourcefile)
    print("文檔1的詞頻統計如下:")
    print(T1)
    print()
    T2 = Count(s2)
    print("文檔2的詞頻統計如下:")
    print(T2)
    print()
    # 合并兩篇文檔的關鍵詞
    mergeword = MergeWord(T1,T2)
    #  print(mergeword)
    # print(len(mergeword))
    # 得出文檔向量
    v1 = CalVector(T1,mergeword)
    print("文檔1向量化得到的向量如下:")
    print(v1)
    print()
    v2 = CalVector(T2,mergeword)
    print("文檔2向量化得到的向量如下:")
    print(v2)
    print()
    # 計算余弦距離
    CalConDis(v1,v2,len(v1))

到此這篇關于python實現余弦相似度文本比較的文章就介紹到這了,更多相關python余弦相似度內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python 余弦相似度與皮爾遜相關系數 計算實例
  • Python 求向量的余弦值操作
  • python代碼如何實現余弦相似性計算
  • 余弦相似性計算及python代碼實現過程解析
  • Python繪制正余弦函數圖像的方法
  • Python使用matplotlib繪制余弦的散點圖示例
  • Python使用matplotlib繪制正弦和余弦曲線的方法示例

標簽:三沙 喀什 欽州 黃山 宿遷 景德鎮 臺灣 濟南

巨人網絡通訊聲明:本文標題《python實現余弦相似度文本比較的示例》,本文關鍵詞  python,實現,余弦,相似,度,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python實現余弦相似度文本比較的示例》相關的同類信息!
  • 本頁收集關于python實現余弦相似度文本比較的示例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    色欧美88888久久久久久影院| 亚洲成人免费在线观看| 奇米在线7777在线精品| 亚洲国产精品99久久久久久久久| 91丨九色丨国产丨porny| 日日夜夜精品视频免费| 一区二区在线看| 国产农村妇女精品| 精品国产伦理网| 欧美一级淫片007| 91行情网站电视在线观看高清版| 国产在线观看免费一区| 日本在线不卡视频| 五月天激情综合网| 亚洲精品国久久99热| 国产精品成人一区二区艾草| 久久久久亚洲综合| 久久久久久久久久久久电影 | 亚洲.国产.中文慕字在线| 亚洲欧洲精品成人久久奇米网| 亚洲欧洲一区二区在线播放| 中文字幕第一区第二区| 国产精品入口麻豆原神| 亚洲丝袜另类动漫二区| 亚洲永久精品大片| 日本伊人精品一区二区三区观看方式 | 亚洲视频网在线直播| 一区二区三区在线观看网站| 亚洲一线二线三线久久久| 亚洲五码中文字幕| 丝袜美腿高跟呻吟高潮一区| 日韩av在线发布| 久久爱www久久做| 国产高清在线精品| 一本到三区不卡视频| 欧美日韩在线播| 日韩一级二级三级精品视频| 久久综合色之久久综合| 国产精品麻豆一区二区| 夜夜嗨av一区二区三区| 日本aⅴ精品一区二区三区| 国产精品18久久久久久久久| 99久久精品免费看| 欧美精品乱人伦久久久久久| 久久这里只有精品视频网| 1024国产精品| 蜜桃av一区二区三区电影| 国产传媒欧美日韩成人| 色老汉av一区二区三区| 亚洲天堂网中文字| 亚洲国产综合视频在线观看| 国产主播一区二区三区| 91福利在线观看| 久久久九九九九| 亚洲自拍偷拍网站| 国产精品亚洲午夜一区二区三区| 色综合天天天天做夜夜夜夜做| 日韩欧美一区二区久久婷婷| 亚洲精品一区二区三区香蕉| 国产精品看片你懂得| 日本不卡在线视频| 色综合中文字幕国产| 欧美精品黑人性xxxx| 国产精品久久久久久亚洲伦 | 高清成人免费视频| 欧美精品精品一区| 亚洲男人电影天堂| 国产成人亚洲精品青草天美| 4438x成人网最大色成网站| 中文字幕一区av| 狠狠色狠狠色综合系列| 欧美网站一区二区| 亚洲人成在线观看一区二区| 久久成人18免费观看| 欧美三级日韩在线| 亚洲国产成人私人影院tom| 日韩激情一二三区| 色婷婷综合视频在线观看| 久久久无码精品亚洲日韩按摩| 日韩影院精彩在线| 欧美中文字幕久久 | 久久国产剧场电影| 欧美色图一区二区三区| 国产精品美女久久久久久久久 | 欧美一区二区三区婷婷月色| 国产精品热久久久久夜色精品三区| 琪琪一区二区三区| 欧美蜜桃一区二区三区| 一区二区三区欧美激情| 91免费国产视频网站| 国产精品国产自产拍在线| 风流少妇一区二区| 久久午夜色播影院免费高清| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲综合一二区| 日本电影亚洲天堂一区| 一区二区三区欧美激情| 色综合色综合色综合色综合色综合| 国产精品免费免费| 92精品国产成人观看免费| 中文字幕欧美激情一区| 风间由美性色一区二区三区| 久久综合久久久久88| 国产精品一区不卡| 欧美激情一区二区三区蜜桃视频| 国产99一区视频免费| 欧美激情在线一区二区| 成人精品电影在线观看| 国产精品久久综合| 日本福利一区二区| 美女一区二区三区在线观看| 久久久久国产成人精品亚洲午夜| 国产福利电影一区二区三区| 国产精品久久久久久久久免费桃花| 99精品视频一区二区三区| 日韩伦理av电影| 亚洲欧美偷拍另类a∨色屁股| 国产精品羞羞答答xxdd| 国产精品乱码久久久久久| 91麻豆国产香蕉久久精品| 亚欧色一区w666天堂| 91精品婷婷国产综合久久竹菊| 麻豆国产精品777777在线| 国产丝袜欧美中文另类| 9人人澡人人爽人人精品| 午夜精品久久久久久久蜜桃app| 51精品国自产在线| 丁香婷婷综合网| 亚洲一区二区三区中文字幕在线| 日韩午夜三级在线| 91污片在线观看| 看国产成人h片视频| 17c精品麻豆一区二区免费| 欧美电影影音先锋| 成人午夜视频免费看| 亚洲妇女屁股眼交7| 久久无码av三级| 欧美色偷偷大香| 不卡欧美aaaaa| 污片在线观看一区二区| 1000精品久久久久久久久| 日韩美女天天操| 精品婷婷伊人一区三区三| 成人动漫一区二区三区| 老司机精品视频一区二区三区| 亚洲精品综合在线| 欧美国产成人精品| 欧美一区二区三区免费视频| 国产乱子轮精品视频| 亚洲国产精品久久不卡毛片 | 亚洲在线成人精品| 国产精品美女久久久久av爽李琼| 日韩一区二区精品葵司在线| 色琪琪一区二区三区亚洲区| 国产福利一区二区三区视频| 久久超级碰视频| 奇米色一区二区| 亚洲va欧美va国产va天堂影院| 18欧美亚洲精品| 国产亚洲综合性久久久影院| 五月婷婷综合在线| 国产精品卡一卡二| 欧美激情中文不卡| 久久精品视频网| 久久亚洲精精品中文字幕早川悠里| 555www色欧美视频| 欧美日本一区二区三区四区| 日本韩国欧美一区| 色噜噜狠狠成人中文综合| av电影天堂一区二区在线观看| 精品一二线国产| 国内不卡的二区三区中文字幕| 日本在线播放一区二区三区| 天使萌一区二区三区免费观看| 亚洲国产一二三| 亚洲成人av福利| 日韩专区一卡二卡| 麻豆一区二区三| 国产永久精品大片wwwapp| 国产精品综合久久| 国产很黄免费观看久久| 成人免费视频一区二区| 成人av在线观| 91麻豆文化传媒在线观看| 99综合电影在线视频| 91欧美激情一区二区三区成人| 一本久道中文字幕精品亚洲嫩| 色婷婷综合中文久久一本| 在线观看精品一区| 91麻豆精品国产自产在线| 欧美一级片在线| 国产亚洲精品免费| 亚洲欧美在线高清| 亚洲一级不卡视频| 美腿丝袜亚洲一区| 国产91对白在线观看九色| 91色视频在线| 9191国产精品| 久久九九久精品国产免费直播| 国产精品久久久久久亚洲毛片 |