Beispiel #1
0
        static void Main(string[] args)
        {
            var TekstA = new List <string>();
            var TekstB = new List <string>();

            string[] stringSeparators = { ", ", ".", "!", "?", ";", ":", " ", "-", "\"", "(", ")" };

            var test1 = new LoadEachWordToList(@"C:\Users\Patri\OneDrive\Dokumenter\Visual Studio 2015\Projects\CompareTexts\Nyheder_Database\All_articles\False\03_11_2016_Higgs_News_Network_BBC_And_CNN_News_Caught_Staging_FAKE_News.txt");
            var test2 = new LoadEachWordToList(@"C:\Users\Patri\OneDrive\Dokumenter\Visual Studio 2015\Projects\CompareTexts\Nyheder_Database\All_articles\False\05_03_2017_Koran_Bible_Same1.txt");
            var test3 = new LoadEachWordToList(@"C:\Users\Patri\OneDrive\Dokumenter\Visual Studio 2015\Projects\CompareTexts\Nyheder_Database\All_articles\True\20_04_2017_Syria_news_BBC.txt");


            string[] tags = { "Brexit" };

            var testJaccard = new CompareTextUsingJaccardSimilarity(test1.Words, null);

            Console.WriteLine("False: " + testJaccard.FalseArticlesSimilarity);
            Console.WriteLine("True: " + testJaccard.TrueArticlesSimilarity);


            var testCosine = new CompareTextUsingCosineSimilarity(test2.Words, tags);

            Console.WriteLine("\n");
            Console.WriteLine("False: " + (decimal)testCosine.FalseArticlesSimilarity);
            Console.WriteLine("True: " + (decimal)testCosine.TrueArticlesSimilarity);

            Console.ReadLine();
        }
Beispiel #2
0
        public void FullImplementationFalseArticleSimilarity(string fileName, string tag, string trueOrFalse, int expectedResult,
                                                             params string[] tags)
        {
            string path = GetFilePath(fileName, tag, trueOrFalse);

            var text = new LoadEachWordToList(path);

            var test = new CompareTextUsingCosineTestClass(text.Words, tags);

            Assert.AreEqual(expectedResult, test.FalseArticlesSimilarity);
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            Stopwatch stopwatch = new Stopwatch();

            Console.WriteLine(Stopwatch.IsHighResolution);
            stopwatch.Start();

            #region LevenshteinDistance
            //Indlæser hver linje af teksten til en liste af strings
            LoadStringToList tekstA = new LoadStringToList(@"C:\Users\Patri\Dropbox\Projekt\P2\Program\Nyheder_Database\Koran_Bible_Same1.txt");
            LoadStringToList tekstB = new LoadStringToList(@"C:\Users\Patri\Dropbox\Projekt\P2\Program\Nyheder_Database\Koran_Bible_Same2.txt");

            // Beregner LevenshteinDistance
            LevenshteinDistance levDis = new LevenshteinDistance(tekstA.Lines, tekstB.Lines, tekstA.GetAmountOfChars(),
                                                                 tekstB.GetAmountOfChars(), tekstA.LinesInText, tekstB.LinesInText);
            levDis.Print(); // Printer LevenshteinDistance mellem de to tekster
            #endregion
            Console.WriteLine(stopwatch.ElapsedMilliseconds);
            stopwatch.Restart();

            #region CosineDistance
            //Indlæser hvert ord fra teksten til en liste af strings
            LoadEachWordToList TextA = new LoadEachWordToList(@"C:\Users\Patri\Dropbox\Projekt\P2\Program\Nyheder_Database\Koran_Bible_Same1.txt");
            LoadEachWordToList TextB = new LoadEachWordToList(@"C:\Users\Patri\Dropbox\Projekt\P2\Program\Nyheder_Database\Koran_Bible_Same2.txt");

            CalculateCosine CalcCos = new CalculateCosine(TextA.Words, TextB.Words); // Beregner CosineDistance
            CalcCos.Print();                                                         // Printer CosineSimilarity mellem de to tekster
            #endregion
            Console.WriteLine(stopwatch.ElapsedMilliseconds);
            stopwatch.Restart();

            #region JaccardDistance
            JaccardSimilarity nytekstA = new JaccardSimilarity(TextA.Words, TextB.Words); // TextA og TextB er indlæst i #region CosineDistance - (LoadEachWordToList)

            nytekstA.Print();                                                             // Printer JaccardSimilarity mellem de to tekster
            #endregion
            Console.WriteLine(stopwatch.ElapsedMilliseconds);
            stopwatch.Stop();

            #region TryDiffrentLoadMethod (Resources)
            //var TekstA = new List<string>();
            //var TekstB = new List<string>();
            //string[] stringSeparators = { ",", ".", "!", "?", ";", ":", " ", "-", "\"", "(", ")" };

            //TekstA = Resources.Pizzagate1.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries).ToList();
            //TekstB = Resources.Pizzagate2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries).ToList();

            //CalculateCosine CalcCos2 = new CalculateCosine(TekstA, TekstB); // Beregner CosineDistance
            //CalcCos2.Print(); // Printer CosineDistance mellem de to tekster
            #endregion

            Console.ReadLine();
        }
Beispiel #4
0
        public void FullImplementationTrueArticleSimilarity(string fileName, string tag, string trueOrFalse, decimal expectedResult,
                                                            params string[] tags)
        {
            string path = GetFilePath(fileName, tag, trueOrFalse);

            var text = new LoadEachWordToList(path);

            var test = new CompareTextUsingJaccardTestClass(text.Words, tags);

            decimal result = Math.Round(test.TrueArticlesSimilarity, 5);

            Assert.AreEqual(expectedResult, result);
        }
Beispiel #5
0
        private void calculateValue_Click(object sender, EventArgs e)
        {
            LoadEachWordToList tekstA   = new LoadEachWordToList(@"C:\Users\Aryan\Dropbox\P1 Projekt\P2\Program\Nyheder_Database\" + firstText);
            LoadEachWordToList tekstB   = new LoadEachWordToList(@"C:\Users\Aryan\Dropbox\P1 Projekt\P2\Program\Nyheder_Database\" + secondText);
            JaccardSimilarity  nytekstA = new JaccardSimilarity();
            JaccardSimilarity  nytekstB = new JaccardSimilarity();

            nytekstA.GetShingles(tekstA.Words);
            nytekstB.GetShingles(tekstB.Words);


            jaccardSimilarity = nytekstA.CalculateSimilarity(nytekstA.shingles, nytekstB.shingles);
            this.label1.Text  = "The Jaccard similarity of the two texts is: " + jaccardSimilarity;
        }
Beispiel #6
0
        // Returns the greatest JaccardSimilarity optained by comparing the text to texts in the directory
        public override decimal CompareWithTexts(List <string> paths)
        {
            decimal greatestSimilarity = 0;

            foreach (string path in paths) // Gets JaccardSimilarity for all false articles
            {
                var databaseText = new LoadEachWordToList(path);

                var compareTexts = new JaccardSimilarity(TextToBeCompared, databaseText.Words);

                // Happens if the jaccardSimilarity between the two current texts are the greatest so far
                if (compareTexts.Similarity > greatestSimilarity)
                {
                    greatestSimilarity = compareTexts.Similarity;
                }
            }

            return(greatestSimilarity);
        }
        // Returns the greatest CosineSimilarity optained by comparing the text to all texts in the directory
        public override decimal CompareWithTexts(List <string> paths)
        {
            int greatestSimilarity = 0;

            foreach (string path in paths) // Gets CosineSimilarity for all false articles
            {
                var databaseText = new LoadEachWordToList(path);

                var compareTexts = new CalculateCosine(TextToBeCompared, databaseText.Words);

                // Happens if the CosineSimilarity between the two current texts are the greatest so far
                if (compareTexts.Procent > greatestSimilarity)
                {
                    greatestSimilarity = compareTexts.Procent;
                }
            }

            return((decimal)greatestSimilarity);
        }