Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 56998|Отговор: 2

[Източник] Имплементирайте алгоритъма за сходство на низовете в C#

[Копирай линк]
Публикувано в 23.04.2019 г. 12:59:18 ч. | | | |
Напоследък възниква проблем, който трябва да се реши, а именно да се сравни низа, въведен от потребителя, и низа, получена от системата; ако грешката не е много голяма, системата ще я прецени за отговаряща на изискванията и е най-добре да се зададе праг.
Когато се занимавате с CAPTCHA разпознаване, трябва да сравните сходството между кодовете на знаците и да използвате алгоритъма "edit distance algorithm", за да направите запис на принципа и реализацията на C#.

Според енциклопедията Baidu:

Edit distance, известно още като Levenshtyin distance (известно още като edit distance), е минималният брой редакции, необходими за превключване от една на друга между две струни, и колкото по-голямо е разстоянието, толкова по-различни са те. Разрешените операции по редактиране включват замяна на един символ с друг, вмъкване на знак и премахване на символ.

Например, превърнете думата котенце в седнало:

Ситън (К→с)

Ситин (E→i)

седящ (→g)

Руският учен Владимир Левенщайн предлага тази концепция през 1965 г. Оттук идва и името Левенщайнска дистанция.

Например

Ако str1="ivan", str2="ivan", тогава се изчислява да е равно на 0. Не е конвертиран. сходство=1-0/Math.Max(str1.length,str2.length)=1
Ако str1="ivan1", str2="ivan2", тогава се изчислява да е равно на 1. "1" на str1 се преобразува в "2", преобразува символ, така че разстоянието е 1, сходство = 1-1/Math.Max(str1.length, str2.length) = 0.8

Приложение:

  • ДНК анализ
  • Проверка на правописа
  • Разпознаване на реч
  • Откриване на плагиатство



Алгоритъмът е реализиран на C#:

Тестов код:






От резултатите от тестовете се заключава, чепросторилиПунктуацияПозиция на струнатаРазлични градовеРезултати, които влияят на сходствотоЗатова при сравняване на разпознаването на низове се препоръчва да се премахнат всички интервали и специални символи в низа преди да се извикне алгоритъмът

Ресурси:Входът към хиперлинк е видим.

В GitHub има и библиотека за сравнения на сходство на низове в C#

FuzzyString е библиотека, разработена за моята ежедневна работа, за да координирам конвенциите за именуване между различни мрежови модели. Премахнах кода, специфичен за захранващата система, и съставих това, което може ефективно да се използва като удължаване на струна, за да определя приблизителното равенство между двете струни. Всички алгоритми, използвани тук, са извлечени от онлайн източници, конвертирани в C# и компилирани в тази библиотека. Открих няколко други подобни реализации с отворен код, които не са налични за . NET / C#。 Добавянето на *.dll към проекта ви дава достъп до това разширение и до отделните разширения под разширението ApproximatelyEquals().



Адрес:Входът към хиперлинк е видим.

Инсталация на NUGET:

Алгоритми, включени в този проект:

  • Хамингова дистанция
  • Разстояние Жакар
  • Разстоянието Джаро
  • Разстоянието Яро-Уинклер
  • Дистанция Левенщайн
  • Най-дългият публик
  • Най-дългата обща подлиния на подпоследователността
  • Коефициент на припокриване
  • Прилика между Ратклиф-Обершелп
  • Дистанцията на Соренсен-Дайс
  • Коефициент на Танимото



Използване:


Резултат:



(Край)




Предишен:Изкуството на тестването на софтуер, 3-то издание pdf
Следващ:"Осем компетенции на анализаторите на данни" не криптира целия курс
Публикувано в 6.05.2019 г. 13:11:34 ч. |
Знанието идва
Публикувано в 7.09.2021 г. 15:01:05 ч. |
Възможно ли е да се види кодът след отговор?
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com