Генерация пар слов из предложений в PHP: методы и примеры

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

Метод 1: разнесение и цикл
Один простой подход — использовать функцию взрыв() для разделения предложения на массив слов. Затем выполните итерацию по массиву, чтобы создать пары слов.

function generateWordPairs($sentence) {
    $words = explode(" ", $sentence);
    $pairs = [];
    for ($i = 0; $i < count($words) - 1; $i++) {
        $pairs[] = $words[$i] . " " . $words[$i + 1];
    }
    return $pairs;
}
// Usage example
$sentence = "This is a sample sentence.";
$wordPairs = generateWordPairs($sentence);
print_r($wordPairs);

Выход:

Array
(
    [0] => This is
    [1] => is a
    [2] => a sample
    [3] => sample sentence.
)

Метод 2: регулярное выражение
Другой метод — использование регулярных выражений для сопоставления пар слов. Такой подход обеспечивает большую гибкость в работе со знаками препинания и специальными символами.

function generateWordPairsRegex($sentence) {
    preg_match_all('/\b(\w+)\b\s+\b(\w+)\b/', $sentence, $matches);
    $pairs = array_map(function ($match) {
        return $match[0] . " " . $match[1];
    }, $matches[0]);
    return $pairs;
}
// Usage example
$sentence = "This is a sample sentence.";
$wordPairs = generateWordPairsRegex($sentence);
print_r($wordPairs);

Выход:

Array
(
    [0] => This is
    [1] => is a
    [2] => a sample
    [3] => sample sentence
)

Метод 3: подход N-грамм
Подход n-грамм генерирует пары слов, рассматривая скользящее окно размера 2 (биграмма). При желании этот метод можно распространить на более крупные n-граммы.

function generateWordPairsNgram($sentence) {
    $ngramSize = 2;
    $words = explode(" ", $sentence);
    $pairs = [];
    for ($i = 0; $i < count($words) - $ngramSize + 1; $i++) {
        $pair = implode(" ", array_slice($words, $i, $ngramSize));
        $pairs[] = $pair;
    }
    return $pairs;
}
// Usage example
$sentence = "This is a sample sentence.";
$wordPairs = generateWordPairsNgram($sentence);
print_r($wordPairs);

Выход:

Array
(
    [0] => This is
    [1] => is a
    [2] => a sample
    [3] => sample sentence.
)

В этой статье мы рассмотрели три метода создания пар слов из предложения в PHP: метод разнесения и цикла, метод регулярных выражений и метод n-грамм. Эти методы предоставляют различные стратегии создания пар слов в зависимости от конкретных требований. Используя эти методы, вы можете расширить свои PHP-приложения возможностями обработки предложений.

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

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