Разбор по звуко буквенный разбор слова онлайн: Поиск слов по словарю фонетических разборов

Содержание

Реализация Elm задачи exercism.io «Подсчет слов» с использованием Elm-Parser · GitHub

24 октября 2020 г.

Кирк Шиллингфорд

Тл;др Это краткий отчет о том, как я использовал библиотеку elm-parser для решения задачи кодирования на exercism.io. Это заняло у меня гораздо больше времени, чем я ожидал, потому что на данный момент ресурсов по синтаксическому анализу в Elm не так много, поэтому я надеюсь, что эта статья дополнит доступные ресурсы для других. Чтобы сразу перейти к реализации, нажмите здесь, чтобы увидеть, как я это сделал. Чтобы увидеть полный код и тесты, нажмите здесь.

Содержание

  • Введение
  • Методология
  • Реализация
  • Заключение

Введение

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

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

Зачем использовать синтаксические анализаторы вместо регулярных выражений?

Моей первоначальной и непосредственной мыслью было использовать регулярные выражения, так как раньше я всегда выполнял сопоставление с образцом для строк именно так. Представьте мое удивление, когда я просмотрел библиотеку elm-regex и увидел следующую строку как первую вещь в библиотеке Readme.md :

«Вообще говоря, будет проще и приятнее использовать вместо этого библиотеку синтаксического анализа, такую ​​как elm/parser.»

Какая библиотека говорит вам использовать другую библиотеку?

Что ж, сообщество Elm уделяет большое внимание двум вещам;

пытается сделать все правильно , но также практично. Иногда это означает, что вы должны предоставить решение, признав при этом, что это не самое лучшее решение. Автор продолжает объяснять, почему он считает, что elm-regex не должен быть вашим первым выбором для большинства вещей, и это, безусловно, был интересный аргумент. Это определенно стоит прочитать в оригинальном документе, но грубое резюме будет таким:

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

Я думаю, что он поднимает правильный вопрос. Регулярное выражение простое, быстрое и мощное, но есть недостатки в использовании строки текста 9.), за которым следует любая строчная буква (a–z), цифра (0–9), знак подчеркивания или дефис. Затем {6,18} гарантирует, что таких символов не менее 6, но не более 18. Наконец, нам нужен конец строки ($).

И это… хорошо? Но очевидно ли это из выражения регулярного выражения? Может быть, если вы знакомы. Но если вы не знакомы с регулярными выражениями, можете ли вы сказать, правильно ли вы набрали строку? Если вы знакомы с регулярными выражениями и сделаете ошибку, сможете ли вы ее заметить?

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

Учитывая все это, я подумал, почему бы не попробовать elm-parser. Конечно, это не может быть так уж плохо.*

* На самом деле это было довольно плохо 😬, но на самом деле это не вина библиотеки. Библиотека Elm-parser довольно разумна, если вы знаете, что делаете, а я нет. Мне потребовалось несколько часов, чтобы получить работающее решение, и это включает в себя бесчисленные возвраты, правки и чтение, перечитывание и перечитывание этой статьи Алекса Корбана (благослови вас, Алекс) и документов, потому что я пытался оба изучают библиотеку и изучают концепцию синтаксического анализа и решают конкретную проблему. Может быть, не лучшая идея, но мы здесь.

Методология

Остальная часть этой статьи будет попыткой объяснить мою методологию, если бы я знал, что делаю с самого начала, потому что, если бы я попытался провести вас по моему действительному пути, это заняло бы 50 страниц.

Инструкции по подсчету слов на сайте exercism.io

Давайте рассмотрим реальные требования к программе.

Для заданной фразы подсчитайте количество вхождений каждого слова в этой фразе.

Для целей этого упражнения вы можете ожидать, что слово всегда будет одним из:

  • Число, состоящее из одной или нескольких цифр ASCII (например, «0» или «1234») ИЛИ
  • Простое слово, состоящее из одной или нескольких букв ASCII (например, «а» или «они») ИЛИ
  • Сокращение двух простых слов, соединенных одним апострофом (например, «это» или «они»)

При подсчете слов можно исходить из следующих правил:

  • Счетчик нечувствителен к регистру (т.
    е. «вы», «вы» и «вы» — это 3 употребления одного и того же слова)
  • Счетчик неупорядочен; тесты будут игнорировать порядок слов и счетов
  • Кроме апострофа в сокращении все формы пунктуации игнорируются
  • Слова могут быть разделены пробелами любой формы (например, «\t», «\n», » «)

В конце выставляем одну функцию WordCount с сигнатурой типа: WordCount : String -> Dict String Int означает, что функция примет некоторую строку текста и вернет словарь с ключами строк и значениями целых чисел, представляющих наши слова и частоту их появления соответственно. Как мы это реализуем, полностью зависит от нас.

Итак, какова наша стратегия

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

Мы можем разбить нашу программу на два отдельных шага:

  1. Разобрать строку в список допустимых слов
  2. Преобразовать список слов в наш словарь
Краткое отступление: что вообще такое синтаксический анализатор?

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

Это мощная техника, потому что она гарантирует, что после шага синтаксического анализа у вас будет либо:

  • Данные именно той формы, которая вам нужна для вашей бизнес-логики (и вам не нужно снова проверять их без вашей программной логики)
  • Представление несовместимого объекта, с которым ваша программа может работать до , может вызвать ошибки в вашей внутренней логике.

Парсеры можно разбить на три отдельных этапа/части:

Токенизатор разбивает поток текста на токены, обычно путем поиска пробелов (табуляции, пробелов, новых строк).

Лексер в основном представляет собой токенизатор, но обычно он добавляет к токенам дополнительный контекст: этот токен является числом, этот токен является строковым литералом, этот другой токен является оператором равенства.

Парсер берет поток токенов из лексера и превращает его в абстрактное синтаксическое дерево, представляющее (обычно) программу, представленную исходным текстом.

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

Итак, как нам это сделать?

Реализация

Определение наших токенов

 псевдоним типа Сокращение =
    Может быть, строка
введите ValidWord
    = числовая строка
    | Алфавитное сокращение струн 

Во-первых, давайте воспользуемся системой типов для определения типа токенов, которые мы хотим возвращать из нашего синтаксического анализатора. В соответствии с инструкциями мы можем ожидать два типа допустимых слов. Один представляет собой последовательность всех числовых символов, а другой представляет собой последовательность всех буквенных символов, которые могут иметь или не иметь одиночный апостроф. Наш тип ValidWord будет представлять эти два параметра. Обратите внимание, что ветвь Alphabetic принимает два аргумента; первая — это строка, представляющая последовательность символов. Второй, Contraction , представляет собой Maybe String . Следовательно, слова с апострофами будут иметь сокращение Just somestring , а слова без апострофа будут иметь сокращение Nothing .

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

 isIgnorable : Char -> Bool
игнорируется =
    не << Char.isAlphaNum
numericWord : Парсер ValidWord
числовое слово =
    успех Числовой
        |. chompWhile isIgnorable
        |= (getChompedString <|
                преуспеть личность
                    |.  chompIf Char.isDigit
                    |. chompWhile Char.isDigit
           )
        |. chompWhile isIgnorable 

Хорошо, я знаю, что это много. Я постараюсь изо всех сил объяснить, что здесь происходит.

  • isIgnorable — это просто вспомогательная функция, которая возвращает true, если символ не является буквенным или числовым. Мы собираемся использовать его, когда нам нужно проверить наличие пробелов и случайных символов между словами
  • .
  • numericWord — это наш парсер ValidWord. В частности, он пытается создать ветвь Numeric ValidWord 9.Тип 0034. Он не обрабатывает случай Alphabetic (для этого у нас будет другой парсер).
    • success — это первая функция, которую мы видим в библиотеке синтаксического анализатора, и пока мы можем просто рассматривать ее как функцию, которая помогает нам начать определение последовательности шагов синтаксического анализа
    • |. — это вспомогательная функция из библиотеки синтаксического анализа, которая позволяет анализировать часть потока без передачи содержимого обратно. Это отлично подходит, когда вы хотите убедиться, что что-то существует, но не хотите передавать это своим конструкторам токенов
    • chompХотя делает именно то, на что похоже. Он будет потреблять поток текста до тех пор, пока выполняется переданное ему условие. В сочетании с (|.) мы, по сути, говорим: «В начале могут быть некоторые не буквенно-цифровые символы, нам они не нужны
    • |= противоположно |. It проходит независимо от результата синтаксического анализатора, следующего за ним
    • getChompedString — обычно жучки ничего не возвращают. Они просто потребляют и проверяют. getChompedString превращает результат того, что вы проглотили, в String . ( Обратите внимание , мне понадобилась целая вечность, чтобы понять, что это был лучший способ вернуть странно определенные строки, подобные этой. Это не единственный способ - см. Parser.variable - но это лучший способ для этой конкретной ситуации). Мы передаем getChompedString другую подкатегорию синтаксических анализаторов, которая на самом деле является тем, что мы хотим использовать для создания нашего числового токена.
      • тождество — это обычная вспомогательная функция в функциональном программировании, которая просто возвращает все, что ей передается.
      • chompIf - chomps только char точно соответствует следующей функции. В этом случае мы хотим грызть, только если символ является цифрой.
      • Затем мы даем chompWhile , чтобы сказать: «После того, как вы определите хотя бы одну цифру, вы можете получить последовательность из стольких цифр, сколько захотите
    • Наконец, мы добавляем еще одну проверку для небуквенно-цифровых символов.
  • В целом мы можем прочитать этот парсер как:

"Эй, проверьте, есть ли какие-то не буквенно-цифровые символы в начале этой штуки. Мне все равно, сколько. Тогда вы должны увидеть по крайней мере одну цифру . Возьмите эту последовательность цифр. Тогда вы должны увидеть еще немного не буквенно-цифровых символов. Конец" ❤️

Это было много! Но, по сути, теперь у нас есть парсер, который может обрабатывать допустимые числовые слова.

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

 апостроф : Char
апостроф =
    Char.fromCode 39
сокращение: парсер (может быть, строка)
сокращение =
    (получитьЧомпеднуюСтроку <|
        преуспеть личность
            |. chompIf ((==) апостроф)
            |. chompIf Char.isAlpha
            |. chompWhile Char.isAlpha
    )
        |> Parser.map Просто
AlphabeticWord : синтаксический анализатор ValidWord
алфавитное слово =
    добиться успеха по алфавиту
        |. chompWhile isIgnorable
        |= (getChompedString <|
                преуспеть личность
                    |. chompIf Char. isAlphaNum
                    |. chompWhile Char.isAlpha
           )
        |= oneOf [сокращение с возвратом, ничего не удается]
        |. chompWhile isIgnorable 

"О нет, это даже сложнее числового." Если вы так думаете, вы правы. Но основная техника та же. Основное отличие состоит в том, что Alphabetic ValidWords принимает две части данных; первая строка для буквенного текста перед апострофом и вторая Maybe String , представляющая вторую часть союза. Давайте рассмотрим здесь то, что отличается от числовой версии.

  • апостроф — Во-первых, мы видим, что мы определили константу, называемую апострофом, которая представляет символ апострофа. Я сделал это, потому что Elm представляет символы с помощью апостофов/одинарных кавычек. Так "n" - это строка n, но 'n' - это Char n. Обычно это нормально, но в случае самого апострофа мы видим, что его представление Char должно быть ''' , что, похоже, не понравилось компилятору. 😬 Итак, мы использовали кодовый номер из библиотеки Unicode для создания символа апострофа. Могут быть и другие способы сделать это, но в то время это казалось ясным и разумным.
  • contraction — это синтаксический анализатор сокращенной части нашего допустимого слова. Обратите внимание, что в первую очередь проверяется, является ли первый символ апострофом.
    • Затем мы проверяем, следует ли за апострофом буквенный символ. Это означает, что завершающие апострофы отклоняются.
    • Parser.map — вспомогательная функция с сигнатурой типа Parser.map : (a -> b) -> Parser a -> Parser b . Это позволяет нам преобразовывать значения внутри синтаксического анализатора и возвращать новый синтаксический анализатор преобразованного значения. В данном случае мы оборачиваем Строка из getChompedString в значение Может быть .
    • В целом мы можем интерпретировать сокращение как: "Эй, проверьте, есть ли апостроф, за которым следует хотя бы один символ алфавита. Оберните это в Maybe."
  • AlphabeticWord — основная функция для создания парсера для Alphabetic ветви типа ValidWord . Его структура аналогична numericWord 9.0034 , проверяя пробелы, затем ища последовательность буквенных символов
    • oneOf — это функция, которую мы раньше не видели. oneOf применяет список синтаксических анализаторов к последовательности, пробуя их один за другим, пока один из них не будет принят.
      • backtrackable — это вспомогательная функция в библиотеке синтаксического анализатора, которая говорит, что если синтаксический анализатор дает сбой, переход к следующей части синтаксического анализатора осуществляется с того места, где он начался.
      • всего, oneOf пробует наш синтаксический анализатор сокращений, и если он терпит неудачу (поскольку сокращения не существует), он возвращает синтаксический анализатор другого случая нашего, может быть, Ничего .
    • Обратите внимание, что слово в алфавитном порядке имеет два оператора |= , каждый из которых принимает входные данные для конструктора Alphabetic . Мы можем прочитать весь парсер как: "Эй, проверьте, есть ли небуквенно-цифровые символы. Затем возьмите последовательность хотя бы из одного буквенного символа. Затем, если вы увидите последовательность апострофа, за которой следуют другие буквенные символы, верните Просто , иначе верните Ничего ."

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

Преобразование списка в словарь

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

 validWordToString : ValidWord -> Строка
допустимаяWordToString vw =
    случай vw из
        Числовое слово ->
            слово
        Алфавитное сокращение слова_ ->
            сокращение_
                |> Может быть. со значением по умолчанию ""
                |> Строка.добавление слова
dictUpdate : String -> Dict String Int -> Dict String Int
Ключ dictUpdate dict =
    case Dict.get key dict of
        Просто посчитайте ->
            Ключ Dict.insert (количество + 1) dict
        Ничего ->
            Ключ Dict.insert 1 dict
 

Для этого мы должны определить две вспомогательные функции, validWordToString и dictUpdate .

validWordToString делает именно то, что говорит, и может преобразовать любой экземпляр ValidWord в простую String . Мы используем операторы case, чтобы определить, с каким типом ValidWord мы имеем дело. Обратите внимание, что в то время как случай Numeric представляет собой довольно простую декомпозицию шаблона, Alphabetic 9Дело 0034 имеет надоедливое сокращение, которое представляет собой Maybe String . Здесь мы используем Maybe. withDefault для предоставления значения по умолчанию в случае, если сокращение равно Nothing (наше значение по умолчанию — пустая строка "" ), и мы используем String.append, чтобы присоединить ее к первой части строки.

dictUpdate — это функция, которая принимает ключ и словарь и делает следующее:

  • если ключ уже существует в словаре, заменить значение этого ключа самим собой плюс еще один
  • если ключ не существует, вставить ключ в словарь со значением 1.

Эти две функции будут объединены с несколькими последними функциями, которые мы должны собрать воедино.

Собираем все вместе с петлями

 validWordHelper : List ValidWord -> Parser (Шаг (List ValidWord) (Dict String Int))
валидвордхелпер revValidWords =
    позволять
        continueLooping: ValidWord -> Step (List ValidWord) (Dict String Int)
        продолжить цикл vw =
            Цикл (vw::revValidWords)
        stopLooping: a -> Step (List ValidWord) (Dict String Int)
        остановить цикл _ =
            revValidWords
                |> List. map (validWordToString >> String.toLower)
                |> List.foldl dictUpdate Dict.empty
                |> Готово
    в
    один из
        [успешно продолжить цикл
            |= oneOf [отслеживаемое алфавитное слово, числовое слово]
        , успех () |> Parser.map stopLooping
        ]
validWord : Parser (Dict String Int)
допустимое слово =
    цикл [] валидвордхелпер 

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

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

шлейф имеет сигнатуру типа

цикл: состояние -> (состояние -> Анализатор (Шаг состояния a)) -> Анализатор a

Если эта подпись вас немного пугает, не беспокойтесь об этом. Я буквально понял это только во время написания этого документа. 😅 Это также помогает, если вы привыкли сворачивать функции для последовательностей.

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

Шаг определяется:

 тип Состояние шага a
    = состояние цикла
    | Сделано 

По сути, цикл позволяет вам проходить последовательность, применяя синтаксический анализатор (парсеры) и обновляя некоторое «состояние» каждый раз, когда синтаксический анализатор завершается успешно. Как только синтаксический анализатор завершается успешно, ветвь Loop типа Step определяет, что делать дальше, а ветвь Done определяет, что делать, если больше не осталось токенов для захвата.

В нашем случае наше «состояние», которое мы обновляем, — это List ValidWords , а наша «a», форма данных после завершения цикла, — это Dict String Int , который мы хотим получить в качестве конечного продукта.

По мере того, как мы пережевываем нашу строку, мы приносим это постоянно обновляемое состояние, а затем, наконец, когда мы stopLooping , мы используем функции validWordToString и dictUpdate , которые мы определили ранее, для преобразования нашего List ValidWord state to List String , а затем мы "складываем" этот список в словарь, используя нашу функцию dictUpdate для правильной обработки добавления каждой строки из нашего списка в словарь.

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

И наконец...

И последнее, но не менее важное: мы определяем фактическую функцию, которая определяет наш API wordCount .

 wordCount : String -> Dict String Int
количество слов предложение =
    case Parser.run validWord предложение из
        Хорошо проанализировано ->
            проанализировано
        Ошибка _ ->
            Dict.пусто 

До сих пор мы только создавали Парсеры. Parser.run — это функция, которая фактически может принять парсер и и вернуть значение. Чтобы быть более конкретным, Parser.run имеет подпись:

запуск: Парсер -> Строка -> Результат (список тупиковых)

Здесь мы видим еще один печально известный тип функционального программирования, тип Result!

Результат имеет подпись

 тип Значение ошибки результата
    = нормальное значение
    | Ошибка 

Аналогично Возможно , Результат используется для инкапсуляции данных операций, которые могут завершиться успешно или неудачно. В отличие от Maybe , который просто возвращает Nothing , Result имеет случай Err a , где a может быть любым типом данных, который мы хотим, который вы можете использовать для хранения дополнительного контекста для вашей ошибки.

В банке функции run связан тип ошибки List DeadEnd , в то время как в основном это список всех способов, с помощью которых ваш парсер потерпел неудачу.

Все это к тому, что когда мы запускаем наш синтаксический анализатор в wordCount , мы должны обрабатывать оба случая Result , случай, когда он успешен (в этом случае мы возвращаем успешно проанализированный словарь), и случай, когда он терпит неудачу ( мы решили игнорировать тип ошибки и просто вернуть пустой словарь)

Заключение

Резюме

  • Нам нужно было создать функцию, которая принимала бы строку и преобразовывала ее в словарь ключевых слов и количество их вхождений
  • допустимые слова могут быть последовательностью цифр, букв или букв со встроенным в них апострофом. Мы создали тип «маркера» ValidWords для представления двух способов создания допустимого слова
  • Мы определили синтаксический анализатор для каждого случая ValidWord , предназначенный для извлечения if из текстовой строки
  • Мы определили цикл, который будет продолжать попытки перекусить ValidWord из нашей текстовой строки
  • Мы определили некоторые вспомогательные функции для преобразования между или основными типами, ValidWord , String , List и Dict

Заключительные мысли

Я потратил слишком много времени на этот проект, но он мне очень понравился. Синтаксический анализ является основополагающим методом разработки программного обеспечения, и библиотека elm-parser на самом деле чрезвычайно надежна. Я мог бы потратить много времени на настройку этого решения для повышения производительности или более строгого соблюдения правил типов, но я думаю, что пока могу оставить его в этом месте. Я не берусь думать, что это идеальная статья. Но идеальное — враг хорошего.

Дополнительные ресурсы

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

Если вы думаете, что я могу сделать для улучшения этой статьи, напишите мне по адресу [email protected]. Я также состою в слабых группах Elm и F# под именем @Kirk Shillingford

.

Спасибо за ваше время. 🙏🏾

разбор греческого койне – Рабочая тетрадь по греческому языку Нового Завета

Недавно я обнаружил, что у организации Blue Letter Bible есть ресурс для разбора как греческого Нового Завета, так и греческой Септуагинты. Его легко использовать.

1) Начните с этой ссылки для Нового Завета на греческом языке: Новый Завет

или этой ссылки для Септуагинты: Септуагинта

(я буду использовать примеры из Нового Завета для остальной части моего объяснения.)

2) Вы увидите первые стихи Евангелия от Матфея 1:

3) Самый простой способ навигации – использовать кнопку QUICKNAV вверху:

4)  Затем вы можете перейти к книге и стих на выбор:

5) Оказавшись в выбранной вами книге и стихе, щелкните любое слово для анализа, например, форму глагола  ἐγέννησεν в Матфея 1:2:

или форму формы существительного в βασιλέα Матфея 1:6:

Эта информация доступна в других местах в Интернете, но веб-сайт blueletter особенно прост в использовании.

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

Наслаждайтесь!

 

evienia греческий койне, греческий Новый Завет, разбор греческого койне Оставить комментарий
Мы вернулись к истории о двух слепцах.
καί στάς ὁ Ἰησοῦς . . . и выстояв Иисус
ἐφώνησεν αὐτούς . . . он позвонил им
καί εἶπεν . . . и сказал
Τί θέλετε ποιήσω ὑμῖν; . . . «Что бы ты хотел, чтобы я сделал для тебя?»
Иисус остановился и позвал их. — Что ты хочешь, чтобы я сделал для тебя? он спросил. (НИВ)
Примечания:
Поскольку это такой короткий стих, я добавил скриншоты его разбора с веб-сайта «Писание4Все»:
Разбор στάς («CTAC») расшифровывается как «причастие глагола, второй аорист, активный, именительный падеж, мужской род единственного числа». Помните, что причастия включают в свой разбор род, число и падеж.
Строка разбора не дает исходного глагола, который нужно искать по номеру Стронга. В данном случае это глагол на -μι, ἵστημι («Я стою, я заставляю стоять»).
У этого глагола есть как первый, так и второй аорист, причем второй используется для более общего значения «я стою», а не «я что-то стою».
Обратите также внимание, что в этом стихе в некоторых переводах вместо στἀς используется слово «остановился», а в других (как в приведенном выше NIV) используется слово «остановился», предположительно потому, что, если вы стоите, вы также останавливаетесь.
Вот следующие слова стиха:
Разбор должен быть простым. Аббревиатура «pp» означает «личное местоимение».
И, наконец,
Обратите внимание, что ποιήσω разбирается здесь как сослагательное наклонение аориста («vs»). Написание будущего 1-S идентично — ποίησω — поэтому синтаксический анализ должен определяться контекстом. В этом стихе сослагательное наклонение имеет больше смысла, но в других стихах эта форма анализируется как будущее, например:

 – 

– 

 

evyenia Греческий Новый Завет, Новый Завет, греческий Новый Завет, разбор греческого койне Оставить комментарий
Как и было обещано, вот ссылка на руководство по разбору Нового Завета на веб-сайте «Священное Писание 4 Все»:
Разбор Нового Завета
Вот начало того, что вы увидите:
Обратите внимание, что использован греческий текст Scriveners Textus Receptus 1894 года, а не одно из недавних эклектичных изданий, таких как Nestle-Aland. Используемый английский перевод — это перевод «Авторизованной версии», то есть Короля Иакова.
Вот скриншот из Матфея 20:31, вчерашний стих:
Хотя шрифт здесь очень мелкий, см. ниже. Каждая глава загружается в виде файла PDF и хорошо увеличивается.
За верхней строкой греческого языка следует транслитерация латинскими буквами. Поскольку идеальная побуквенная транслитерация между греческим и латинским алфавитами невозможна, есть некоторые обходные пути: заглавная O для ω, заглавная E для η, «ch» для χ и так далее.
Ниже транслитерации находится число, начинающееся с «G» — это число Стронга для этого греческого слова.
А затем — что наиболее важно для нашей цели — мы проводим синтаксический анализ этой конкретной формы этого конкретного греческого слова. Например, ἐπετίμησεν:
Число Стронга дает вам глагол: ἐπιτιμάω. Затем
'vi' = 'изъявительный глагол'
Aor = время аориста
Act = действительный залог
3 = третье лицо
Sg = единственное число
Сокращения не всегда говорят сами за себя, но если вы нажмете при «разборе» (см. также первый скриншот выше) вы получите список.
Таким образом, этот веб-сайт чрезвычайно полезен, основная проблема – греческий машинописный шрифт: все буквы написаны заглавными, в нем используются полулунная сигма и омега W. Это немного незнакомо и трудно для чтения для многих изучающих греческий язык, с дополнительной проблемой, заключающейся в том, что, поскольку все буквы написаны заглавными буквами, в нем не указаны ударения или знаки дыхания.
Но если вы сможете выйти за рамки этого, это может стать хорошим инструментом для синтаксического анализа, помогающим ориентироваться в Новом Завете.

9

9 evyenia Греческий Новый Завет, греческий Новый Завет, разбор греческого койне Оставить комментарий

Вернемся к циклу парсинга. В этом посте я дам несколько советов по идентификации форм глагола ἀφίημι.
Ἀφίημι имеет основное значение «отправить», будучи соединением предлога ἀπό и глагола ἵημι, «приводить в движение, отправлять». О самом ἵημι чем меньше сказано, тем лучше, так как я помню, как впервые посмотрел на его спряжение и подумал, что оно состоит исключительно из гласных. Во всяком случае, ἵημι не используется в Новом Завете, так что мы можем отложить его.
Ἀφίημι имеет важный вариант значения – ‘я прощаю’.
Этот глагол используется дважды в Луки 11:4, например: .
καί ἄφες ἡμῖν τάς ἁμαρτίας ἡμῶν, καί γάρ αὐτοί ἀφίομεν παντί ὀφείλονμ9τι 300
и прости нам наши грехи, как и мы прощаем тем, кто грешит против нас
Главные части этого глагола
                      ἀφίημι, ἀφήσω, ἀφῆκα, – ,  ἀφέωμαι, ἀφέθην
с затруднениями в спряжении, возникающими в основном в настоящем времени.
Подсказка 1:  Буква «ι», следующая сразу за «φ», указывает на форму, основанную на основной части I, за исключением 2-S настоящего активного изъявительного наклонения (ἀφεῖς). Ἀφεῖς встречается только один раз, в Откровении 2:20.
Подсказка 2:  Присутствие «κ» в форме во всех случаях указывает на то, что это аорист, активное изъявительное наклонение. Из этой группы наиболее распространенным (19 случаев) является 3-S ἀφῆκεν.
Подсказка 3:   Если форма начинается с ἀφήσ-, это будущее изъявительное действие.
Подсказка 4:  Запомните эти четыре слова, которые, помимо ἀφῆκεν, являются единственными другими формами ἀφίημι, которые используются десять или более раз в Новом Завете:
Действующее причастие именительного падежа аориста мужского рода множественного числа ἀφέντες,
3-S будущее пассивное изъявительное наклонение ἀφεθήσεται и
аорист активных императивов ἄφες и ἄφετε (см. Луки 11:4, выше).
Форма ἀφεθήσεται чаще всего используется в значении «будет (или не будет!) прощено», где «это» относится к какому-либо греху.
–  

evienia Греческий Новый Завет, разбор койне Греческий, разбор глагола Оставить комментарий
Готовя примечания к следующему стиху Евангелия от Матфея (20:18), я понял, что упустил один намек на разбор δίδωμι.
Подсказки 3 и 4 говорят:
Любая форма δίδωμι, начинающаяся с δο- или δω-  (включая δῳ с нижним индексом йота), является неизъявительным аористом или будущим .
Самый простой способ отличить будущее от неизъявительного аориста — просто запомнить спряжение будущего.
Верно. Но я упустил один важный элемент будущего спряжения, а именно форму будущего пассива δίδωμι, которая встречается в Новом Завете: δοθήσεται, 3-S, будущее пассивное изъявительное наклонение.
Поскольку эта единственная форма используется около 15 раз, это было значительным упущением. Вот один пример из Матфея 7:7:
Αἰτεῖτε, καί δοθήσεται ὑμῖν· ζητεῖτε, καί εὑρ·σετε
Просите, и дано будет вам; ищите и найдете –
Я также внес это исправление в исходный пост. Удачного разбора!

 

evienia Греческий Новый Завет, разбор греческого койне Оставить комментарий
Предыдущее обсуждение было сосредоточено на аористе ἔρχομαι. Сегодня мы обратим внимание на аугменты.
Что такое дополнение?
Одним из ключевых факторов при разборе глагола является наличие или отсутствие дополнения. Дополнение чаще всего представляет собой слоговое добавление «ε» к глаголу, например
λαμβάνω  –> ἐλάμβανον (несовершенный)
γράφω -> ἐγραψα (аорист)
указательные времена.
Когда слоговое дополнение встречается в сложном глаголе, то есть в глаголе, состоящем из предложной приставки и корневого глагола, дополнение обычно находится между ними, т. е.
, а не в начале. Это называется внутренним дополнением. Таким образом,
λαμβάνω -> ἔλαβον (аорист), но
παραλαμβάνω -> παρέλαβον (AORIST)
, что aug ε π π έ ω ω αααααα ω.
Не выпадает последняя гласная в следующих предлогах:  περί, πρό.
Таким образом ἀποβάλλω, ἀπέβαλον, но περιβάλλω, περιέβαλον.
Откуда мы знаем, что это дополнение?
Как мы можем отличить эпсилон-аугмент, указывающий на несовершенное или аорист изъявительное, от глагола, который просто начинается с эпсилон?
1  Улучшение эпсилон всегда принимает плавное дыхание. По общему признанию, это не очень полезно, так как большинство глаголов, начинающихся с «ε» в первой главной части, также принимают плавное дыхание (отчасти из-за большого количества глаголов, начинающихся с предложных префиксов ἐκ, ἐν, ἐπί и εἰσ-). Это действительно различает несколько глаголов, например, ἑρμηνεύω, ἕλκω/ἑλκύω, ἑλίσσω, хотя только последний из этой группы может правдоподобно начинаться со второй буквы (λκύω??).
2  Мы можем использовать эту информацию для другого совета: ищите префиксы с эпсилон: ἐπι, ἐκ/ἐξ, ἐν, εἰσ- и т. д. Вы можете исключить первый эпсилон этих префиксов как возможное дополнение, но продолжайте искать внутреннее дополнение после префикса.

* Также возможно — хотя и не всегда — в pluperfect, но последнее время встречается достаточно редко, поэтому мы не будем его здесь обсуждать.

 

evyenia разбор греческого койне, глагол увеличивает Оставить комментарий
Продолжаем короткую серию статей об идентификации и разборе глагольных форм.
Мое первое предложение — из последнего поста — было запомнить связь ἔρχομαι-ἦλθον. Но ἦλθον — изъявительная форма; как насчет остальных?
Важно помнить следующее правило: только формы изъявительного наклонения прошедшего времени имеют аугментацию. Не сослагательные наклонения, императивы, причастия или инфинитив. «η» в ἦλθον — это увеличение глагола, и когда вы удаляете его, форма возвращается к «ε». Таким образом:
ἦλθεν εἰς τήν συναγωγήν αὐτῶν .
. . он вошел в их синагогу (ориентировочно)
но
ὅταν οὖν ἔλθῃ ὁ κύριος τοῦ ἀμπελῶνος. . . поэтому, когда должен прийти хозяин виноградника (сослагательное наклонение)
Буквенная комбинация -ηλθ- теперь становится -ελθ-, и мой второй совет таков: когда вы видите это последнее сочетание букв в глаголе, заподозрите не- ориентировочная форма аориста от ἔρχομαι или одного из его производных.
Помните также, что ἦλθον — это второй аорист, так что окончания глаголов обычно напоминают те, которые связаны с настоящим временем. например,
ἐλθεῖν – аорист инфинитив активный, употребляется около 40 раз в Новом Завете
ἐλθών, έλθόντες - формы именительного падежа мужского рода активного причастия аориста; между этими двумя и остальными активное причастие аориста встречается в Новом Завете около 100 раз. . . король, войдя
καί ἐξελθόντες ἐκήρυξαν . . . и выйдя, они проповедовали
Так -ελθ- предполагает неизъявительную форму аориста ἔρχομαι; а как насчет неизъявительных падежей настоящего и несовершенного времени?
Ἔρχομαι является депонентным в настоящем и имеет только средние/пассивные формы.
Все формы настоящего времени начинаются с ερχ-, и решение о наклонении будет зависеть от окончаний. Несовершенные формы имеют только изъявительные формы и распознаются по начальному «ηρχ-».
Следующий блог вернется к Матфею, глава 20; позже мы рассмотрим идентификацию и разбор глаголов с внутренними дополнениями.

 

evyenia Греческий, греческий Новый Завет, греческие глаголы, греческий Новый Завет, разбор греческого койне Оставить комментарий
Это второй из серии советов и методов определения и разбора глагольных форм. В сегодняшнем посте я продолжаю обсуждение основных частей.
Кстати, правильное и традиционное написание всегда было «главным». Слово используется как прилагательное, а «принцип» — как существительное.
Таким образом,
Ее основное возражение касается вопроса принципа.
В дополнение к ссылке на главу школы, капитал или имущество перед процентами, при использовании в качестве прилагательного «главный» означает «первый или главный по рангу». Таким образом, «главные части» — это первый ранг или подразделение склонения глагола.
Далее . . .
Что происходит, когда вы сталкиваетесь с трудной главной частью, где, например, аорист совсем не похож на настоящий? Для начала рассмотрим ἔρχομαι.
Само по себе слово ἔρχομαι используется в Новом Завете более 600 раз. Три из его производных (ἀπέρχομαι, εἰσέρχομαι и ἐξέρχομαι) добавляют более 500 применений, с менее распространенными производными (προσέρχομαι, Διέρχομαι, παρέρχέοο и некоторые другие), внося более чем 20001 39 906 4. 4. 4066 4. 40666 4. 40666 6. 406666 6. 4066 6. 40666 6. 901 39. И хотя не каждый производный от ἔρχομαι глагол имеет форму аориста в Новом Завете, для тех, у которых она есть, основная часть 3 оканчивается на -ῆλθον.
Например,
ἀπῆλθον (ἀπέρχομαι), ἀνῆλθον (ἀνέρχομαι), περιῆλθον (περιέρχομαι)
и так далее. Так что мой первый совет таков: запомните связь ἔρχομαι — ἦλθον. Каждый глагол, содержащий комбинацию букв -ηλθ-, следует подозревать в том, что он является активным аористом, указывающим на ἔρχομαι или родственный глагол.
Далее коротко о неиндикативных аористах ἔρχομαι.

 

evyenia Греческий, греческий Новый Завет, греческий Новый Завет, разбор греческого койне Оставить комментарий
Вот ответы. . .
1   ὃς οὐ λαμβάνει τόν σταυρόν  (Matt 10: 38)
he who does not take the (his) cross
λαμβάνει – present active indicative, 3-S
2    ἔλαβεν τούς ἑπτά ἄρτους (Мф 15:36)
он взял семь хлебов
ἔλαβεν-Aorist Active Indiate, 3-S
3 τήν ἐντολήν ἔλαβον παρά τοῦ πατρός μου (Jonle 10: 18)
6666666666 гг.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *