public ApproximationItem(ArchiveDocumentType type, string line)
        {
            Type = type;
            Line = line;

            var words = line.ToLower().Replace("-", " ")
                .Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            // fill one-letter sequence frequencies
            foreach (var word in words)
            {
                var counter = 0;
                while (counter + 0 < word.Length)
                {
                    var combo = word.Substring(counter, 1);
                    int value;
                    if (OneLetterOccurrence.TryGetValue(combo, out value))
                    {
                        OneLetterOccurrence.Remove(combo);
                    }
                    OneLetterOccurrence.Add(combo, value + 1);
                    counter++;
                }
            }

            // fill two-letter sequence frequencies
            foreach (var word in words)
            {
                var counter = 0;
                while (counter + 1 < word.Length)
                {
                    var combo = word.Substring(counter, 2);
                    int value;
                    if (TwoLetterOccurrence.TryGetValue(combo, out value))
                    {
                        TwoLetterOccurrence.Remove(combo);
                    }
                    TwoLetterOccurrence.Add(combo, value + 1);
                    counter++;
                }
            }

            // fill three-letter sequence frequencies
            foreach (var word in words)
            {
                var counter = 0;
                while (counter + 2 < word.Length)
                {
                    var combo = word.Substring(counter, 3);
                    int value;
                    if (ThreeLetterOccurrence.TryGetValue(combo, out value))
                    {
                        ThreeLetterOccurrence.Remove(combo);
                    }
                    ThreeLetterOccurrence.Add(combo, value + 1);
                    counter++;
                }
            }
        }
        /// <summary>Converts POC property to textual representation</summary>
        /// <param name="type">POC object property</param>
        /// <returns>Textual representation</returns>
        private static string ConvertTypeToText(ArchiveDocumentType? type)
        {
            if (type == null) return string.Empty;
            switch (type.Value)
            {
                case ArchiveDocumentType.BirthCertificate: return "Свидетельство о рождении";
                case ArchiveDocumentType.DeathCertificate: return "Свидетельство о смерти";
                case ArchiveDocumentType.MarriageCertificate: return "Свидетельство о браке";
                case ArchiveDocumentType.NameChangeCertificate: return "Свидетельство о перемене ФИО";
                case ArchiveDocumentType.AnnulmentCertificate: return "Свидетельство о расторжении брака";
                case ArchiveDocumentType.EvidenceOfPaternity: return "Свидетельство об установлении отцовства";
                case ArchiveDocumentType.MarriageReference: return "Справка о заключении брака";
                case ArchiveDocumentType.AnnulmentReference: return "Справка о расторжении брака";
                case ArchiveDocumentType.ActOfBirth: return "Акт рождения";
                case ArchiveDocumentType.ActOfDeath: return "Акт смерти";
                case ArchiveDocumentType.BaptismalCertificate: return "Свидетельство о крещении";
                case ArchiveDocumentType.TestimonyAboutWedding: return "Свидетельство о венчании";
                case ArchiveDocumentType.AccountOpeningAgreement: return "Договор об открытии счета";
                case ArchiveDocumentType.TreatyOfTelematics: return "Договор о телематике";
                case ArchiveDocumentType.EmployeeWorkbook: return "Трудовая книжка";
                case ArchiveDocumentType.CaseOptacii: return "Дело оптации";

                case ArchiveDocumentType.SpellingStatement: return "Заявление о правописании имени и фамилии";
                case ArchiveDocumentType.PassportAndIdCardForm: return "Анкета на паспорт и ID-карту";
                case ArchiveDocumentType.BirthReference: return "Справка о рождении";
                case ArchiveDocumentType.PpaLetter: return "Письмо из PPA";
                case ArchiveDocumentType.LatvianMigrationDepartmentLetter: return "Письмо из отдела гражданства и миграции Латвии";
                case ArchiveDocumentType.LithvanianMigrationDepartmentLetter: return "Письмо из отдела гражданства и миграции Литвы";
                case ArchiveDocumentType.PowerOfAttorney: return "Доверенность";
                case ArchiveDocumentType.ArchiveReference: return "Справка из архива";
                case ArchiveDocumentType.ApplicationToPpa: return "Заявление в PPA";

                case ArchiveDocumentType.Other: return "Иной документ";
                default: throw new Exception("Unknonw Archive Document Type");
            }
        }