Метод компаративного анализа группы текстов (на материале немецкоязычных научных статей)

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 04.05.2022
Размер файла 19,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Метод компаративного анализа группы текстов (на материале немецкоязычных научных статей)

А.И. Горожанов, доктор филологических наук, доцент, профессор кафедры грамматики и истории немецкого языка факультета немецкого языка Московского государственного лингвистического университета

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

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

Method of comparative analysis of a group of texts (on the material of German-language research papers)

А.I. Gorozhanov, Doctor of Philology (Dr. habil.), Associate Professor, Professor at the Department of German Grammar and History, Faculty of the German Language, Moscow State Linguistic University

The article proposes a method for text analysis based on automatic comparison of language material. Induction (when creating software) and comparative analysis (when this software is running) are used as the main research methods. The author concludes that the developed method makes it possible to establish the frequency of word forms in the aggregate text array with a high degree of accuracy, as well as to determine the most common word combinations in it, which can serve as a starting point for the subsequent interpretation of the content.

Key words: comparative analysis; the German language; Scopus international data base; scientific journals; special software.

текст файл программный алгоритм

Введение

Компаративные, или сопоставительные, исследования традиционно широко привлекаются для получения нового научного знания. В настоящее время в гуманитарных науках компаративный анализ продолжает успешно применяться в качестве центрального метода [Bueno 2020; Halchuk 2020; Istanti et al. 2020; Nilsson 2020; Ordukhanyan 2019; Orlova 2020]. В то же время в гуманитарной сфере ощущается нехватка специализированных программных решений, настроенных на достижение положительного результата в конкретных исследовательских проектах [Gorozhanov, Guseynova 2020a, с. 2036].

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

1. Разработать алгоритм и его программную реализацию первичной обработки файлов PDF для их приведения в формат TXT.

2. Разработать алгоритм и его программную реализацию сопоставления текстов, а именно - выявления повторяющихся в них последовательностей слов.

3. Провести экспериментальную апробацию созданного программного обеспечения на материале немецкоязычных научных статей.

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

1. Материал и методы исследования

Материалом исследования служат оригинальные электронные тексты немецкоязычных научных статей из изданий, входящих в международную базу данных «Scopus» и опубликованных за последние три года, а именно из журналов: Zeitschrift fur Literaturwissenschaft und Linguistik, Zeitschrift fur Erziehungswissenschaft и Unterrichtswissenschaft издательства «Springer» общим объёмом 540 360 слов или 4 165 806 знаков (включая пробелы). Такой выбор обусловлен несколькими причинами. Во-первых, язык избранных статей проявляет стилистическое единство, т е. эти тексты подлежат сравнению на основании общности формы. Во-вторых, этот материал прошел неоднократную редакторскую правку и поэтому либо вовсе не содержит языковых ошибок, либо содержит их в незначительном количестве.

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

В качестве инструментария для создания программного обеспечения был выбран язык программирования Python 3.8.

В исследовании применялся метод индукции (при составлении алгоритмов как обобщающей модели [Горожанов 2018]), а также метод компаративного анализа (в ходе экспериментальной апробации программных продуктов на языковом материале) Несмотря на то, что в исследовании применяются различные методы научного познания, мы поместили в общее название предлагаемого метода компаративный анализ потому, что на стадии работы программного обеспечения производится сравнение каждой словоформы с другими словоформами и каждой последовательности словоформ с другими последовательностями аналогичной длины..

2. Ход исследования и его результаты

Для решения первой задачи исследования необходимо было разработать специальное программное обеспечение, которое бы преобразовывало файлы PDF в файлы более удобного формата для последующей программной обработки текстового материала. Этот процесс нужно было максимально автоматизировать, чтобы при увеличении количества файлов оператору программы не пришлось бы совершать дополнительные действия. Также мы исходили из того, что файлы PDF находятся в определенной папке. После конвертации файлы TXT будут также сгруппированы в отдельную новую папку. В результате была составлена следующая функция, которая использует модуль «pdfminer» (см. листинг 1):

Листинг 1

def pdfFolderToTxtFolder(folderName):

fileNames = os.listdir(folderName)

dtstr = datetime.datetime.now().strftime(“%Y-%m-%d_%H-%M-%S”) txtFolderName = “%s_%s” % (folderName, dtstr)

# Создание новой папки для текстовых файлов

os.mkdir(txtFolderName)

i = 0

while i != len(fileNames):

output_string = StringIO()

# Чтение текста из файла, пока в папке есть файлы

with open(folderName + «/» + fileNames[i], 'rb') as in_file:

parser = PDFParser(in_file)

doc = PDFDocument(parser)

rsrcmgr = PDFResourceManager()

device = TextConverter(rsrcmgr, output_string, laparams=LAParams()) interpreter = PDFPageInterpreter(rsrcmgr, device)

for page in PDFPage.create_pages(doc):

interpreter.process_page(page)

textOut = output_string.getvalue()

textOut = textOut.replace(`-\n', `')

# Запись результата в одноименный текстовый файл

file = open(txtFolderName + «/» + «%stxt» % (fileNames[i][:-3]), «w», encoding = «utf-8»)

file.write(textOut)

file.close()

i += 1

print(i)

В результате работы приведенного программного кода вся группа файлов PDF конвертируется в группу файлов TXT в качестве копии и помещается в отдельную папку.

Для решения второй задачи исследования необходимо было учитывать особенности текстового материала. На этом этапе мы сфокусировались на том, чтобы максимально убрать из текстов научных статей метаданные. Предварительный анализ материала показал, что в структуре каждой статьи имеется введение, обозначенное существительными «Einfuhrung» или «Einleitung». Основной текст статьи завершается, как этому и следует быть, списком литературы: «Litratur» или «Literaturverzeichnis».

Таким образом, программа строка за строкой анализирует каждый файл и генерирует копию этого файла, убирая всё, что находится до введения, и всё, что входит в список литературы. Пустые строки удаляются. Дополнительно программа убирает скопления пробелов, цифры и знаки препинания. За эти действия отвечает функция «cleanTexts()» (см. листинг 2):

Листинг 2

def cleanTexts(txtFolderName):

fileNames = os.listdir(txtFolderName)

dtstr = datetime.datetime.now().strftime(«%Y-%m-%d_%H-%M-%S») txtFolderNameMod = «%s_%s» % (txtFolderName, dtstr)

# создание новой папки

os.mkdir(txtFolderNameMod)

i = 0

# чтение текста из файла, пока в папке есть файлы

while i != len(fileNames):

file = open(txtFolderName + «/» + fileNames[i], «r», encoding = «utf-8») lines = file.readlines()

file.close()

textOut = ''

counter = 0

checker = True

while ((`Einfuhr' not in lines[counter]) and (`Einleitung' not in lines[counter])) and checker:

counter += 1

if counter > int(len(lines)/10):

checker = False

counter = 0

lines = lines[::-1]

counter2 = 0

checker = True

while not lines[counter2].startswith(`Literatur') and checker:

counter2 += 1

if counter2 > int(len(lines)/3):

checker = False

counter2 = 0

print(checker)

lines = lines[::-1]

for line in lines[counter:len(lines)-counter2]:

if len(line.split()) > 8 and not line.startswith(`'):

textOut += line[:-1] + ` `

# убирает скобки и все между ними

textOut = re.sub(r'(\([A\(]+?\))', '', textOut)

# убирает кавычки и оставшиеся круглые скобки

textOut = re.sub(r'([><“”«»„\»\(\)\[\]])', '', textOut)

# убирает сноски (числа)

textOut = re.sub(r'([0-9])', `', textOut)

# убирает тире

textOut = textOut.replace(` - `, ` `).replace(` - `, ` `)

# убирает знаки препинания

textOut = re.sub(«[\.,:;!\?-%=]», «», textOut)

# приводит к написанию со строчной буквы

textOut = textOut.lower()

# убирает скопление пробелов

while ' ' in textOut:

textOut = textOut.replace(` `, ` `)

file = open(txtFolderNameMod + «/» + fileNames[i], «w», encoding = «utf-8»)

file.write(textOut)

file.close()

i += 1

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

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

Итак, все файлы из последней сгенерированной папки объединяются в один файл с помощью функции «unite()» (см. листинг 3):

Листинг 3

def unite(txtFolderName):

fileNames = os.listdir(txtFolderName)

text = `'

i = 0

# Чтение файлов из папки

while i != len(fileNames):

file = open(txtFolderName + «/» + fileNames[i], «r», encoding = «utf-8») text += file.read() + ' ' file.close()

i += 1

# Создание общего файла

file = open(`txtFolderName.txt', “w”, encoding = “utf-8”)

file.write(text)

file.close()

Следующим шагом является анализ частотности употребления каждой словоформы из объединенного файла. Для этого программа разделяет весь текст на отдельные слова, одинаковые словоформы объединяет и накапливает в переменных и выводит список этих словоформ в порядке от самого часто употребляемого к самому редко употребляемому с указанием количества употребления каждой словоформы в тексте (см. листинг 4):

Листинг 4

def freqWord(fileName):

file = open(fileName, “r”, encoding = “utf-8”)

text = file.read()

file.close()

words = text.split()

wrdUniqueLst = []

for word in words:

if word not in wrdUniqueLst:

wrdUniqueLst.append(word)

# Создание словаря уникальных слов с указанием их частотности

dictUnique = {}

for elem in wrdUniqueLst:

dictUnique[elem] = words.count(elem)

# Вывод с сортировкой по частотности. Для этого словарь преобразуется в список кортежей

res = ''

for i in sorted(dictUnique.items(), key=lambda kv: kv[1], reverse = True):

res += i[0] + « : « + str(i[1]) + '\n'

# Запись результата в файл

file = open('freqRes.txt', «w», encoding = «utf-8»)

file.write(res)

file.close()

Другим действием, которое поможет выявить частотность не только отдельных словоформ, но также и целых словосочетаний, является анализ количества последовательностей словоформ определенной длины. Для этого функция «freqWord()» получает целочисленный аргумент, который указывает длину искомых последовательностей (см. листинг 5):

Листинг 5

def freqWords(fileName, n):

file = open(fileName, “r”, encoding = “utf-8”)

text = file.read()

file.close()

words0 = text.split()

words = []

for i in range(0, len(words0) - n + 1):

words.append(“ “.join(words0[i:i+n]))

wrdUniqueLst = []

for word in words:

if word not in wrdUniqueLst:

wrdUniqueLst.append(word)

# Создание словаря уникальных слов с указанием их частотности

dictUnique = {}

for elem in wrdUniqueLst:

dictUnique[elem] = words.count(elem)

# Вывод с сортировкой по частотности. Для этого словарь преобразуется в список кортежей

res = ''

for i in sorted(dictUnique.items(), key=lambda kv: kv[1], reverse = True):

res += i[0] + « : « + str(i[1]) + '\n'

# Запись результата в файл

file = open('freqRess%d.txt' % n, “w”, encoding = “utf-8”)

file.write(res)

file.close()

Результат работы программы помещается в отдельный файл, в наименование которого включено значение целочисленного аргумента.

3. Анализ результата

Оценку результата проведенного исследования можно провести с различных позиций. Во-первых, созданное программное обеспечение показало свою эффективность и на этапе экспериментальной апробации не имело ошибок вывода. Это свидетельствует о том, что составленные алгоритмы оказались верными. Во-вторых, полученные в ходе работы программного обеспечения статистические данные оказались практически значимыми и могут быть использованы для получения представления о характере актуального немецкоязычного научного дискурса. Так, на вершине списка частотности отдельных словоформ, как и ожидалось, оказались служебные слова («die»: 21718, «der»: 20901, «und»: 16854, «in»: 11227, «von»: 7485, «den»: 6357 и т. д.). Первыми словоформами существительных в этом списке оказались «Schulerinnen»: 883 и «Schuler»: 722.

В совокупности семантическая группа «ученицы» показывает частотность 926 («Schulerinnen»: 883 + «Schulerin»: 17 + «Grundschulerinnen»: 7 + «Mitschulerinnen»: 6 + «Hauptschulerinnen»: 4 + «Realschulerinnen»: 3 + «Einzelschulerinnen»: 3 + «Oberstufenschulerinnen»: 1 + «Sekundarschulerinnen»: 1 + «Mit- schulerin»: 1), а группа «ученики» частотность 1053 («Schuler»: 722 + «Schulern»: 259 + «Grundschuler»: 17 + «Mitschuler»: 16 + «Mitschu- lern»: 14 + «Grundschulern»: 11 + «Schulers»: 7 + «Hauptschuler»: 3 + , «Einzelschuler»: 2 + «Klavierschuler»: 1 + «Tagesschuler»: 1). В целом, показатели являются равными, однако «ученики» немного опережают «учениц». Эти данные представляют собой интересный материал для последующей интерпретации содержания текстов.

Для обобщенного обозначения учеников школы в немецком языке употребляются сочетания «Schulerinnen und Schuler», «Schuler*innen», «Schuler_innen», «Schuler/innen», «Schuler*innenschaft», «Schuler/-innen».

Другими частотными существительными стали «Studien»: 709 (вместе с «Studie»: 645 имеет показатель 1354, т. е. даже опережает отдельно «учениц» и «учеников», но не их вместе) и «Ergebnisse»: 577 (вместе с «Ergebnis»: 119, «Ergebnissen»: 92, «Forschungsergebnissen»: 45, «Forschungsergebnisse»: 40, «Studienergebnisse»: 7, «Testergebnisse»: 6, «Lernergebnisse»: 5, «Lernergebnissen»: 5, «Lernergebnis»: 4, «Sucher- gebnisse»: 3, «Ergebnisses»: 3, «Unterrichtsergebnisse»: 2, «Handlungs- ergebnis»: 2, «Evaluationsergebnisse»: 2, «Suchergebnis»: 2, «Beurtei- lungsergebnis»: 2, «Wahlergebnis»: 2, «Untersuchungsergebnisse»: 2, «Aufgabenergebnisses»: 2 и «Arbeitsergebnis»: 1 имеет показатель 923).

Компаративный анализ последовательностей показывает, что самыми частотными сочетаниями из трех словоформ являются: «Schule-rinnen und Schuler»: 597, «in Bezug auf»: 253, «der vorliegenden Studie»: 138, «im Rahmen der»: 131, «in der vorliegenden»: 123, «mit Blick auf»: 106, «im Hinblick auf»: 105, «im Vergleich zu»: 87, «in diesem Artikel»: 86 и т. д. Для последовательностей из пяти словоформ имеем следующий результат: «der situativen Beobachtung und Wahrnehmung»: 30, «Digitalisierung in der kulturellen Bildung»: 21, «zur Digitalisierung in der kulturellen»: 17, «Bedeutung von Pflanzen in Okosystemen»: 11 и т. д. Для последовательности из семи словоформ: «Interesse am Lernkon-text und das situationale Interesse»: 7, «Spezifika der Ziele, Inhalte und Methoden der»: 6, «die soziale Zugehorigkeit und die empfundene Un- terstutzung»: 6 и т д. Полученные данные могут быть использованы, прежде всего, для составления учебных материалов для обучения академическому немецкому языку, таким образом обучающимся будут предъявлены актуальные языковые образцы. Далее, частотные слова и словосочетания позволят составить представление о тематическом наполнении изучаемых текстов.

Заключение

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

Демонстрируемые в ходе исследования компьютерные программы отличаются лаконичностью и использованием стандартных наборов решений лингвистических задач [Gorozhanov, Guseynova 2020b].

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

Список литературы / References

1. Горожанов А.И. Формирование обучающей виртуальной среды в контексте новых информационных технологий: дис. ... д-ра филол. наук. М., 2018. [Gorozhanov A.I. (2018). Formirovanie obuchajushhej virtual'noj sredy v kontekste novyh informacionnyh tehnologij. (Development of a learning virtual environment in the context of new information technologies): Senior Doctorate in Philology. Moscow. (In Russ.)].

2. Bueno X. Fertility decisions in transition: Young adults' perceptions on fertility three decades apart in Spain // History of the Family. 2020. Vol. 25. № 3. P 386-405.

3. Gorozhanov A.I., Guseynova I.A. Corpus analysis of the grammatical categories' constituents in fiction texts considering the linguo-regional component // J. Sib. Fed. Univ. Humanit. Soc. Sci. 2020a. Vol. 13. № 12. P 2035-2048.

4. Gorozhanov A.I., Guseynova I.A. Programming for specific purposes in linguistics: A new challenge for the humanitarian curricula // Training, Language and Culture. 2020b. Vol. 4. № 4. P 23-38.

5. Halchuk O. Apple blossoms and the apple tree: Two perspectives. typological and ideological similarities in short stories by Mykhailo Kotsiubynsky and john galsworthy // Respectus Philologicus. 2020. Vol. 38. № 43. P 150-162.

6. Istanti W., Seinsiani I.G., Visser J.G., Lazuardi A.I.D. Comparative analysis of verbal communication vocabulary between indonesian-afrikaans for foreign language teaching // International Journal of Language Education. 2020. Vol. 4. № 3. P 389-397.

7. Nilsson H. Mindfulness as a tool for ADHD drivers: A comparative study of higher levels of self-awareness // Journal of Disability and Religion. 2020. Vol. 25. № 2. P 225-238.

8. Ordukhanyan E.A. comparative study of political process: Theoretical and methodological issues // Wisdom. 2019. Vol. 13. № 2. P 39-50.

9. Orlova T.G. The implementation of the conception of friendship on the basis of com-parative structural-semantic analysis of English and Russian proverbs // RUDN Journal of Language Studies, Semiotics and Semantics. 2020. Vol. 11. № 2. P 301-318.

Размещено на Allbest.ru


Подобные документы

  • Морфологические анализаторы (морфологизаторы) на различных языках программирования. Анализ методов и технологий автоматической обработки ЕЯ-текстов. Разработка модуля графематического анализа и создания таблицы лексем. Программная реализация классов.

    дипломная работа [3,0 M], добавлен 06.03.2012

  • Разработка программного продукта для психолингвистического анализа текстов. Предметная область, основные требования. Анализ рабочих процессов отдела рекламно-выставочной и издательской деятельности. Оценка эффективности проекта и стоимости владения.

    дипломная работа [3,1 M], добавлен 12.10.2015

  • Инструменты анализа академического стиля английского языка. Проектирование архитектуры портала для анализа и оценки стиля научных публикаций на основе методов корпусной лингвистики. Моделирование жизненного цикла системы и взаимодействия её компонентов.

    дипломная работа [2,4 M], добавлен 27.08.2017

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

    презентация [853,9 K], добавлен 08.04.2019

  • Понятие семантики; обзор и анализ существующих средств семантического разбора естественно-языковых текстов. Разработка алгоритма работы системы на основе семантического анализа, его реализация на языке программирования; проектирование интерфейса системы.

    дипломная работа [1,7 M], добавлен 18.03.2012

  • Характеристика форматов файлов wav и mp3. Построение диаграмм прецедентов, разработка графического интерфейса и архитектуры приложения. Разработка алгоритмов работы программы: метод TrimWavFile, TrimMp3, ChangeVolume, speedUpX1_2, speedDownX1_2.

    курсовая работа [2,7 M], добавлен 20.12.2013

  • Состав и принцип работы аппаратуры. Выбор параметров корреляционного анализа и Фурье-анализа. Разработка и применение алгоритма корреляционного анализа. Реализация алгоритма Фурье-анализа на языке С++ и алгоритма корреляционного анализа на языке С#.

    дипломная работа [4,6 M], добавлен 30.11.2016

  • Web content, usage mining. Современные средства анализа лог-файлов. Требования к создаваемой системе, выбор инструментов реализации, описание общей архитектуры. Конвенции программирования, разработки Firebird. Кроссплатформленость, работа с Еxсel.

    дипломная работа [1,5 M], добавлен 09.10.2013

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

    курсовая работа [2,8 M], добавлен 14.01.2014

  • Понятие синтаксического анализа. Программный продукт для обработки данных строкового типа. Построение сканера текстов с использованием утилиты flex, синтаксического анализатора с помощью утилиты bison. Грамматика языка программирования обработки строк.

    курсовая работа [261,7 K], добавлен 29.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.