Разбор чисел из большого текста, возможно, без регулярных выражений (критичен к производительности) - PullRequest
2 голосов
/ 12 сентября 2011

Я очень хорошо знаком с регулярным выражением, прежде чем вы все начнете отвечать с вариациями: / d +

Я хочу знать, есть ли альтернативы регулярному выражению для разбора чисел из большого текстового файла.

Я анализирую тонны огромных файлов, и мне нужно провести анализ группы / местоположения по позициям ключевых слов.Сейчас я нахожусь в точке, где мне нужно начинать находить группы чисел, которые также тесно связаны с интересующим меня содержанием.Я хочу избежать регулярных выражений, если это вообще возможно, потому что это должен быть быстрый процесс.

Можно взять куски файла для проверки на интересующие номера.Это, однако, потребует больше работы и добавить жестко закодированные ограничения для поиска(Я бы хотел этого избежать)

Я открыт для любых предложений.

ОБНОВЛЕНИЕ

Извините за отсутствие выборки данных.По причинам HIPAA я бы даже не подумал о том, чтобы зашифровать текст и опубликовать его.

Отличной заменой будет источник HTML любой страницы вопросов stackoverflow.com.Представьте, что мне нужно получить репутацию (оценку) всех людей, которые разместили ответ на вопрос.Это также означает, что запятая (,) также необходима.Я не могу удалить HTML, чтобы упростить контент, потому что я использую некоторый анализ плотности, чтобы отсеять несвязанный контент.Удаление HTML могло бы смешать содержимое слишком близко друг к другу.

1 Ответ

1 голос
/ 12 сентября 2011

Если файл не является чем-то вроде SGML, то я не знаю ни одного метода (который не означает, что нет, я просто не знаю ни одного)

Однако нельзя сказать, что вы не можете создать свой собственный анализатор; Вы можете устранить некоторые издержки библиотеки регулярных выражений .Net, написав что-то, что находит только диапазоны чисел.

По сути, я думаю, что это все, что могла бы сделать любая библиотека на самом базовом уровне.

Может ли помочь опубликовать образец данных, которые вы будете обрабатывать?

...