Как провести поверхностный анализ текста: различия между версиями
Материал из Поле цифровой дидактики
Patarakin (обсуждение | вклад) Новая страница: «{{Scripting Tutorials |Description=Поверхностный анализ текста — это анализ легко измеримых, формальных характеристик текста, которые не требуют глубокого лингвистического анализа или интерпретации смысла. К ним относятся: * Количество слов, символов, предложений...» |
Patarakin (обсуждение | вклад) Нет описания правки |
||
| Строка 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)
