Что методы/инструменты там для обнаружения общих фраз в блоках текста?

Строки количеств кода полезны при подаче обширности всестороннего продукта клиенту, который полагает, что строки кода общий индикатор размера продукта. Например, когда Вы пытаетесь убедить кого-то, кого Ваш продукт обрабатывает много угловых случаев, или когда Вы пытаетесь войти в бету для средства разработки, где поставщик инструмента хочет получить максимальное покрытие кода для тестирования.

6
задан JohannesH 15 September 2009 в 10:55
поделиться

3 ответа

Посмотрите N -граммы . Самые распространенные фразы обязательно приведут к наиболее частым N -граммам. Я бы начал со словесных триграмм и посмотрел, к чему это приведет. (Требуется пространство, умноженное на N длины текста, поэтому вы не можете позволить N стать слишком большим.) Если вы сохраните позиции, а не просто счет, вы можете затем посмотрим, можно ли расширить триграммы для образования общих фраз.

6
ответ дан 16 December 2019 в 21:43
поделиться

Я не уверен, что это то, что вы хотите, но проверьте самая длинная общая проблема с подстрокой и алгоритмы утилиты diff.

1
ответ дан 16 December 2019 в 21:43
поделиться

Что-то вроде этого может сработать, в зависимости от того, заботитесь ли вы о границах слов. В псевдокоде (где LCS - это функция для вычисления самой длинной общей подпоследовательности ):

someMinimumLengthParameter = 20;
foundPhrases = [];

do {
    lcs = LCS(mailbodies);
    if (lcs in ignoredPhrases) continue;

    foundPhrases += lcs;

    for body in mailbodies {
        body.remove(lcs);
    }    
} while(lcs.length > someMinimumLengthParameter);
1
ответ дан 16 December 2019 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: