Как провести поверхностный анализ текста: различия между версиями

Материал из Поле цифровой дидактики
Новая страница: «{{Scripting Tutorials |Description=Поверхностный анализ текста — это анализ легко измеримых, формальных характеристик текста, которые не требуют глубокого лингвистического анализа или интерпретации смысла. К ним относятся: * Количество слов, символов, предложений...»
 
Нет описания правки
 
Строка 9: Строка 9:
|Environment=VOYANT Tools, R
|Environment=VOYANT Tools, R
}}
}}
<syntaxhighlight lang="R" line>
library(tidyverse)
library(stringr)
library(ggplot2)
# Предполагаем, что у нас есть данные corpus с полями:
# title (название статьи), category (Историки или Филологи), text (полный текст)
# Вычисляем базовые поверхностные метрики
surface_metrics <- corpus %>%
  mutate(
    # === Объём текста ===
    word_count = str_count(text, "\\S+"),          # количество слов
    char_count = nchar(text),                      # количество символов
    char_count_no_spaces = str_count(text, "\\S"),  # символы без пробелов
   
    # === Структурные единицы ===
    sent_count = str_count(text, "[.!?]+"),        # количество предложений
    paragraph_count = str_count(text, "\\n\\n") + 1, # количество абзацев
   
    # === Средние показатели ===
    avg_word_length = char_count / word_count,      # средняя длина слова (символов)
    avg_sent_length = word_count / sent_count,      # средняя длина предложения (слов)
    avg_para_length = word_count / paragraph_count, # средняя длина абзаца (слов)
   
    # === Плотность текста ===
    text_density = char_count_no_spaces / char_count, # отношение букв к общему числу символов
   
    # === Дополнительные метрики ===
    sentence_per_paragraph = sent_count / paragraph_count
  ) %>%
  select(title, category, word_count, char_count, sent_count, paragraph_count,
        avg_word_length, avg_sent_length, avg_para_length, text_density,
        sentence_per_paragraph)
# Просмотрим первые строки
glimpse(surface_metrics)
head(surface_metrics, 10)
</syntaxhighlight>

Текущая версия от 16:44, 10 декабря 2025

Описание Поверхностный анализ текста — это анализ легко измеримых, формальных характеристик текста, которые не требуют глубокого лингвистического анализа или интерпретации смысла. К ним относятся:
  • Количество слов, символов, предложений
  • Средняя длина слова и предложения
  • Плотность текста

Главное преимущество поверхностного анализа: быстрота, объективность, воспроизводимость результатов.

Область знаний Лингвистика, Статистика
Область использования (ISTE)
Возрастная категория 16


Поясняющее видео
Близкие рецепту понятия
Среды и средства для приготовления рецепта: VOYANT Tools, R


library(tidyverse)
library(stringr)
library(ggplot2)

# Предполагаем, что у нас есть данные corpus с полями:
# title (название статьи), category (Историки или Филологи), text (полный текст)

# Вычисляем базовые поверхностные метрики
surface_metrics <- corpus %>%
  mutate(
    # === Объём текста ===
    word_count = str_count(text, "\\S+"),           # количество слов
    char_count = nchar(text),                       # количество символов
    char_count_no_spaces = str_count(text, "\\S"),  # символы без пробелов
    
    # === Структурные единицы ===
    sent_count = str_count(text, "[.!?]+"),         # количество предложений
    paragraph_count = str_count(text, "\\n\\n") + 1, # количество абзацев
    
    # === Средние показатели ===
    avg_word_length = char_count / word_count,      # средняя длина слова (символов)
    avg_sent_length = word_count / sent_count,      # средняя длина предложения (слов)
    avg_para_length = word_count / paragraph_count, # средняя длина абзаца (слов)
    
    # === Плотность текста ===
    text_density = char_count_no_spaces / char_count, # отношение букв к общему числу символов
    
    # === Дополнительные метрики ===
    sentence_per_paragraph = sent_count / paragraph_count
  ) %>%
  select(title, category, word_count, char_count, sent_count, paragraph_count,
         avg_word_length, avg_sent_length, avg_para_length, text_density,
         sentence_per_paragraph)

# Просмотрим первые строки
glimpse(surface_metrics)
head(surface_metrics, 10)