Мне нужна реализация функции хэш-функции, сохраняющая местность для C# (или, возможно, альтернативное решение). Я хотел бы выяснить способ сопоставления строк (например, аналогичных токенов последовательности генов, иногда немного отличающихся друг от друга) в те же самые ведра с использованием порога подобия. Например, если два токена последовательности генов имеют значение Левенштейна редактирования, то есть < заданный порог 5, 10, 25 и т. Д. ... Я хотел бы присвоить их одному и тому же ведру/категории. Тем не менее, я не могу использовать расстояние редактирования, так как категории токенов не известны заранее, и вычисление требует больших затрат. Мне нужна очень эффективная локация, сохраняющая хеш-функцию (или альтернативное решение), которая позволит мне определить ведро, самое близкое к хэш-значению, на основе порогового значения или создать новое ведро, когда не существует достаточно достаточно ведра. До сих пор я даже не смог реализовать одну функцию сохранения хэширования в C#, только публикации. Я подумал, что попрошу, прежде чем пытаться написать свое.Местность Сохранение функции хэша для C#
2
A
ответ
0
Может возникнуть некоторый фонетический алгоритм (например, http://en.wikipedia.org/wiki/Soundex).
Он в основном преобразует слово в массив символов, которые описывают его произношение. Его можно использовать для поиска похожих слов. Важно также отметить, что такие алгоритмы - это язык (язык человека, а не язык программирования).
+0
Я кратко рассмотрел это, но Soundex() не работает хорошо для ограниченного набора символов, подобного последовательностям генов. Например, AAAA = A000, AAAT = A300, TAAA = T000, но все три разделены только 1 символом. –
Смежные вопросы
- 1. Сохранение хэша, сгенерированного модулем 'crypto', для mysql
- 2. Обратный геокод - вернуть местность
- 3. Изометрическая местность
- 4. Невидимая местность
- 5. Локальное тестирование на местность
- 6. Cache местность с большими структурами в C
- 7. Как создать реалистичную местность
- 8. Назначение хэша для хэша
- 9. Сохранение функции в массивах C++
- 10. Найти местность lat lng
- 11. Отсутствует местность en_US, необходимая для python
- 12. Impala данные Местность
- 13. Возможная местность в Unity3D?
- 14. Unity3d Понять местность Вокселя
- 15. Нерабочая местность Heroku?
- 16. Сохранение хэша идентификаторов в поле базы данных?
- 17. Сохранение вложенного хэша в Ruby on Rails
- 18. Сохранение URL-адреса хэша на смену страницы
- 19. Что определяет местность для приложения MapReduce?
- 20. Cython parallel prange - местность резьбы?
- 21. Создание хэша с помощью функции
- 22. crc32() против хэша() различия функции
- 23. Сохранение функции для запуска позже
- 24. Снятие хэша C#
- 25. Symfony2 - Местность в модульных тестах
- 26. Pygame: Как создать разрушаемую местность?
- 27. LibCurl Функции для создания жетонов или хэша shared-secret
- 28. Что означает местность структуры данных?
- 29. Асинхронные программы, показывающие местность ссылки?
- 30. Как выбрать соль для функции хэша, предназначенной для защиты паролей?
Я так мало знаю о вашей проблеме, что мой комментарий, вероятно, не поднимается до уровня «немой», но я все равно его выброшу. Я предполагаю, что ваши входные данные имеют ограниченное пространство символов (т. Е. Только «ABCDEF»). Если вы создаете точку в x-мерном пространстве, где x - количество символов в пространстве символов, подсчитывая количество вхождений каждого символа, затем используйте расстояние между точками, чтобы определить вероятность сходства. Отфильтруйте точки, используя порог минимального расстояния, чтобы определить пары, которые стоят расчета расстояния Левенштейна. – William
Последовательности генов обычно содержат 4 символа (T, A, G или C). Если бы я мог найти способ превратить эту четырехмерную «точку» в числовое значение, это может сработать. Мне нужно преобразовать токен гена в число и знать, какой ведро должен быть помещен маркер гена, основанный на его числе. т. е. если вычисленная «точка» равна 10 990, я бы просто поместил это значение в ближайший ковш на основе заданной чувствительности. Если ведра были разделены на 100, то 10 990 были бы помещены в ведро 11 000, без каких-либо корректировок расстояния редактирования, которые будут выполняться против любых существующих ковшей. –
Наиболее важным моментом является то, что результирующее число должно поддерживать исходный порядок сортировки входных токенов последовательности генов (или приближаться довольно близко). Это очень похожие маркеры последовательности генов, которые отображаются в одни и те же ведра, без необходимости расчета расстояния. –