Как я могу удалить большое количество фраз за один проход из большого текстового файла? - PullRequest
4 голосов
/ 10 ноября 2011

Мне было интересно - можно ли как-то удалить большое количество (100 тысяч) текстовых фраз за один проход из большого (18 ГБ) текстового файла?

Ответы [ 4 ]

0 голосов
/ 03 января 2012

Эти фразы одинаковы?Как это то же самое слово, которое вы хотите удалить?Тогда, возможно, вы можете удалить его, используя ключевое слово «in».проверка каждой строки с использованием цикла while и удаление всех экземпляров слова из этой строки.Нужна дополнительная информация о проблеме, хотя.

0 голосов
/ 10 ноября 2011

Вы можете создать дерево суффиксов из списка фраз и просмотреть файл, используя его. Это позволит вам идентифицировать все строки. Это часто используется для пометки вещей, но вы должны иметь возможность адаптировать его для удаления строк.

0 голосов
/ 10 ноября 2011

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

0 голосов
/ 10 ноября 2011

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

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

И еще одна мысль, которая у меня возникла, заключается в том, что вы можете расширить это, чтобы использовать небольшой набор, скажем, q длин фраз, в зависимости от ваших поисковых фраз. И вы можете изменить Рабина-Карпа так, чтобы q катящихся хешей вместо одного, с q наборами хешей. Это поможет, если вы сможете разбить свои фразы на подмножества q , которые имеют одинаковую длину.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...