LINUX.ORG.RU

Находить и что дальше с ними делать?
Расстояние по строкам? Или искать по всему документу?

Zhbert ★★★★★
()
Ответ на: комментарий от anonymous

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

cs
() автор топика

вообще, еще требуется, чтобы расстояние между данной парой могло быть изменяемым (например, не более N слов или встречается в одном предложении)

cs
() автор топика
Ответ на: комментарий от cs

Находишь все вхождения «первого слова» и строишь историю слов после него на глубину поиска. Получаешь индекс «второго слова» в полученных строках (или NA). Всё.

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

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

cs
() автор топика
Ответ на: комментарий от cs

Раз так, значит строишь эту матрицу (она вообще именная :) ) один раз на имеющую для тебя смысл глубину поиска (иам же если надо нормализацию и всякие фичи для слова считаешь, да и свёртки тоже)

Потом первым запросом выбираешь все строки в первой позиции имеющие нужное тебе слово. Вторым запросом... как выше вообщем.

Если нужно «вообще всё», то сразу начинаешь заполнять гигантскую кросстаблицу — все первые слова vs всех остальных слов

Бежишь по построенной именной матрице и приплюсовывашь по ячейкам кросстаблицы согласно строке-слову и столбцу-слову

для кросстаблицы естественно строят индексы ускоряющие доступ к номеру столбца — строки по приписанному им слову

psv1967 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.