国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

.NET下文本相似度算法余弦定理和SimHash淺析及應(yīng)用實(shí)例分析

2024-07-10 12:48:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了.NET下文本相似度算法余弦定理和SimHash淺析及應(yīng)用。。具體分析如下:

余弦相似性

原理:首先我們先把兩段文本分詞,列出來(lái)所有單詞,其次我們計(jì)算每個(gè)詞語(yǔ)的詞頻,最后把詞語(yǔ)轉(zhuǎn)換為向量,這樣我們就只需要計(jì)算兩個(gè)向量的相似程度.
 
我們簡(jiǎn)單表述如下
 
文本1:我/愛(ài)/北京/天安門(mén)/ 經(jīng)過(guò)分詞求詞頻得出向量(偽向量)  [1,1,1,1]
 
文本2:我們/都愛(ài)/北京/天安門(mén)/ 經(jīng)過(guò)分詞求詞頻得出向量(偽向量)  [1,0,1,2]
 
我們可以把它們想象成空間中的兩條線(xiàn)段,都是從原點(diǎn)([0, 0, ...])出發(fā),指向不同的方向。兩條線(xiàn)段之間形成一個(gè)夾角,如果夾角為0度,意味著方向相同、線(xiàn)段重合;如果夾角為90度,意味著形成直角,方向完全不相似;如果夾角為180度,意味著方向正好相反。因此,我們可以通過(guò)夾角的大小,來(lái)判斷向量的相似程度。夾角越小,就代表越相似。
 
C#核心算法:
代碼如下:    public class TFIDFMeasure
    {
        private string[] _docs;
        private string[][] _ngramDoc;
        private int _numDocs=0;
        private int _numTerms=0;
        private ArrayList _terms;
        private int[][] _termFreq;
        private float[][] _termWeight;
        private int[] _maxTermFreq;
        private int[] _docFreq;
 
        public class TermVector
        {       
            public static float ComputeCosineSimilarity(float[] vector1, float[] vector2)
            {
                if (vector1.Length != vector2.Length)               
                    throw new Exception("DIFER LENGTH");
               
 
                float denom=(VectorLength(vector1) * VectorLength(vector2));
                if (denom == 0F)               

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 慈溪市| 翁牛特旗| 马边| 长治市| 财经| 瓮安县| 郯城县| 五大连池市| 阜平县| 庆阳市| 新昌县| 苏州市| 抚顺县| 沽源县| 靖西县| 天等县| 边坝县| 红桥区| 博罗县| 北宁市| 长顺县| 富蕴县| 武强县| 东至县| 宣恩县| 巴中市| 洪雅县| 临洮县| 镇原县| 金沙县| 临澧县| 谷城县| 石台县| 渭源县| 济阳县| 桑植县| 贵溪市| 潜江市| 岳西县| 南充市| 鹿邑县|