maxx
слип-стримом в поворот
кол-во словосочетаний в тексте и др.
Доброго времени суток!
Проблема: есть текст, необходимо подсчитать кол-во повторений двух, трех или четырех слов. Думаю на примере (для сочетания 2 слов) будет все понятно:
есть 4 слова в тексте А, Б, В, Г. текст такой:
А Б В Г В А Б Г В А Г Б.
результат:
А Б : 2 раза
Б В : 1 раз
В Г : 1
Г В : 2
В А : 2
Б Г : 1
А Г : 1
Г Б : 1
как я это делаю сейчас (только для сочетания 2 слов): каждое слово в тексте имеет позицию (первое, второе и т.д) я строю таблицу вхождений:
А: 0, 5, 9
Б: 1, 6, 11
В: 2, 4, 8
Г: 3, 7, 10
и при помощи 4 вложенных циклов прохожу по сочетаниям позиций и если позиции отличаюца на 1 то сохраняю...
на 400 словах работает 1.3 секунды и ест 10% ресурсов сервера.
ВОПРОС: мне еще нужно ведь для трех и четырех слов построить... есть ли более "правильный" и быстрый алгоритм?
Доброго времени суток!
Проблема: есть текст, необходимо подсчитать кол-во повторений двух, трех или четырех слов. Думаю на примере (для сочетания 2 слов) будет все понятно:
есть 4 слова в тексте А, Б, В, Г. текст такой:
А Б В Г В А Б Г В А Г Б.
результат:
А Б : 2 раза
Б В : 1 раз
В Г : 1
Г В : 2
В А : 2
Б Г : 1
А Г : 1
Г Б : 1
как я это делаю сейчас (только для сочетания 2 слов): каждое слово в тексте имеет позицию (первое, второе и т.д) я строю таблицу вхождений:
А: 0, 5, 9
Б: 1, 6, 11
В: 2, 4, 8
Г: 3, 7, 10
и при помощи 4 вложенных циклов прохожу по сочетаниям позиций и если позиции отличаюца на 1 то сохраняю...
на 400 словах работает 1.3 секунды и ест 10% ресурсов сервера.
ВОПРОС: мне еще нужно ведь для трех и четырех слов построить... есть ли более "правильный" и быстрый алгоритм?