У меня есть большой набор захваченных данных (потенциально сотни тысяч записей), и мне нужно иметь возможность разбить их, чтобы я мог их классифицировать, а также сам создавать «типичные» данные. Поясню дальше...
Если у меня есть следующие строки данных:
132T339G1P112S
164T897F5A498S
144T989B9B223T
155T928X9Z554T
...
вы можете начать делать следующие выводы:
- возможно, все строки имеют длину 14 символов
- 4-й, 8-й, 10-й и 14-й символы всегда могут быть буквами, а остальные — цифрами.
- первый символ всегда может быть «1»
- 4-й символ всегда может быть буквой «Т»
- 14-й символ может быть ограничен только «S» или «T»
- и так далее...
По мере того, как вы будете получать все больше и больше выборок реальных данных, некоторые из этих «правил» могут исчезнуть; если вы видите длинную строку из 15 символов, то у вас есть доказательства того, что 1-е «правило» неверно. Однако, учитывая достаточно большую выборку строк длиной ровно 14 символов, вы можете начать предполагать, что «все строки имеют длину 14 символов», и присвоить числовое значение вашей степени достоверности (с соответствующим набором предположений относительно факта что вы видите достаточно случайный набор всех возможных захваченных данных).
Как вы, вероятно, можете сказать, человек может сделать большую часть этой классификации на глаз, но я не знаю библиотек или алгоритмов, которые позволили бы это сделать компьютеру.
Имея набор захваченных данных (значительно более сложный, чем приведенный выше...), существуют ли библиотеки, которые я могу применить в своем коде для выполнения такой классификации для меня, которая будет идентифицировать «правила» с заданной степенью уверенности?
В качестве следующего шага мне нужно иметь возможность брать эти правила и использовать их для создания собственных данных, соответствующих этим правилам. Я предполагаю, что это значительно более простой шаг, чем классификация, но мне никогда раньше не приходилось выполнять подобную задачу, поэтому я действительно не уверен, насколько это сложно.
Полагаю, что Python или Java (или, возможно, Perl или R), возможно, являются «распространенными» языками, которые, скорее всего, будут иметь такие библиотеки, и, возможно, некоторые биоинформатические библиотеки делают подобные вещи. Мне действительно все равно, какой язык я должен использовать; Мне нужно решить проблему любым возможным способом.
Любой указатель на информацию был бы очень полезен. Как вы, наверное, заметили, я изо всех сил пытаюсь четко описать эту проблему, и может быть набор подходящих ключевых слов, которые я могу ввести в Google, которые укажут мне на решение.