public void Use_GetTokenDistance_ToCompareSingleTokens(string document1Token, string document2Token, double expectedDistance)
        {
            var first = new List <string> {
                document1Token
            };
            var second = new List <string> {
                document2Token
            };
            var actual = levenshteinCalculator.CompareDocumentsPairwise(
                new List <List <string> > {
                first, second
            }).Single();

            Assert.AreEqual(expectedDistance, actual.Distance, 1e-6);
        }
Example #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Идёт анализ решений...");
            var folder = Folders.SuspiciousSources;

            if (args.Length != 0)
            {
                folder = new DirectoryInfo(args[0]);
            }
            var documents = DocumentLoader.LoadAllStateNames(folder)
                            .Select(documentName => new DocumentContent(documentName))
                            .ToList();
            var levenshteinCalculator = new LevenshteinCalculator();
            var comparisonResults     = levenshteinCalculator
                                        .CompareDocumentsPairwise(documents
                                                                  .Select(d => d.Tokens)
                                                                  .ToList()
                                                                  )
                                        .OrderBy(GetNormalizedDistance)
                                        .Take(5);

            Console.WriteLine("Анализ окончен\n Топ-5 самых похожих пар:\n");

            GenerateReport(documents, comparisonResults);
        }