From e7124cc36d57c9c6018672c2a37b6b7c995dddd6 Mon Sep 17 00:00:00 2001 From: Daniil Demidko Date: Thu, 13 Feb 2025 13:00:37 -0300 Subject: [PATCH] Refactoring --- .github/workflows/gradle.yml | 6 +- README.md | 7 +- build.gradle.kts | 2 +- .../com/github/demidko/aot/PartOfSpeech.java | 206 ------------------ .../github/demidko/aot/WordformMeaning.java | 3 +- 5 files changed, 9 insertions(+), 215 deletions(-) delete mode 100644 src/main/java/com/github/demidko/aot/PartOfSpeech.java diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index baad5c9..d206d88 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -16,11 +16,11 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v2 with: - java-version: '17' - distribution: 'adopt' + java-version: '21' + distribution: 'temurin' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build with Gradle diff --git a/README.md b/README.md index 0bdf074..638004f 100644 --- a/README.md +++ b/README.md @@ -71,9 +71,8 @@ class Example { ## Откуда взяты слова и морфология? За слова и морфологическую информацию спасибо проекту [morph_dict](https://github.com/sokirko74/morph_dict). Из него и -были взяты исходные [mrd и tab файлы словарей](https://github.com/sokirko74/morph_dict/tree/master/data/Russian). +были взяты исходные текстовые [mrd и tab файлы словарей](https://github.com/sokirko74/morph_dict/tree/master/data/Russian). Документация для них лежит [здесь](https://github.com/sokirko74/aot/blob/master/Docs/Morph_UNIX.txt). В нашей java-библиотеке, эти исходные словари [скомпилированы](https://github.com/demidko/aot-compiler) в бинарный формат, -более удобный для быстрой загрузки в память и -поиска. В качестве общего стандарта для библиотеки и компилятора, используется -библиотека [aot-bytecode](https://github.com/demidko/aot-bytecode). +более удобный для быстрой загрузки в память и поиска. В качестве общего стандарта для библиотеки и компилятора, +используется [aot-bytecode](https://github.com/demidko/aot-bytecode). diff --git a/build.gradle.kts b/build.gradle.kts index 617fdd6..7e22ad3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ plugins { } dependencies { api("com.github.demidko:bits:2022.08.06") - api("com.github.demidko:aot-bytecode:2025.02.09") + api("com.github.demidko:aot-bytecode:2025.02.15") testImplementation("org.junit.jupiter:junit-jupiter:5.9.0") testImplementation("org.hamcrest:hamcrest:2.2") } diff --git a/src/main/java/com/github/demidko/aot/PartOfSpeech.java b/src/main/java/com/github/demidko/aot/PartOfSpeech.java deleted file mode 100644 index 11ce362..0000000 --- a/src/main/java/com/github/demidko/aot/PartOfSpeech.java +++ /dev/null @@ -1,206 +0,0 @@ -package com.github.demidko.aot; - -import com.github.demidko.aot.morphology.MorphologyTag; - -/** - * Часть речи, например существительное, глагол и т. д. - */ -public enum PartOfSpeech { - - /** - * Местоимение-существительное - */ - Pronoun("Местоимение-существительное"), - - /** - * Краткое прилагательное - */ - ShortAdjective("Краткое прилагательное"), - - /** - * Междометие - */ - Interjection("Междометие"), - - /** - * Наречие - */ - Adverb("Наречие"), - - /** - * Глагол в личной форме - */ - Verb("Глагол в личной форме"), - - /** - * Прилагательное - */ - Adjective("Прилагательное"), - - /** - * Существительное - */ - Noun("Существительное"), - - /** - * Вводное слово - */ - Introduction("Вводное слово"), - - /** - * Местоимение-предикатив - */ - PronounPredicative("Местоимение-предикатив"), - - /** - * Местоименное прилагательное - */ - PronounAdjective("Местоименное прилагательное"), - - /** - * Причастие - */ - Participle("Причастие"), - - /** - * Деепричастие - */ - VerbalParticiple("Деепричастие"), - - /** - * Краткое причастие - */ - BriefCommunion("Краткое причастие"), - - /** - * Некая часть речи (?) - */ - POSL_PART_OF_SPEECH("Некая часть речи"), - - /** - * Предикатив - */ - Predicative("Предикатив"), - - /** - * Частица - */ - Particle("Частица"), - - /** - * Числительное (количественное) - */ - Numeral("Числительное"), - - /** - * Предлог - */ - Pretext("Предлог"), - - /** - * Инфинитив - */ - Infinitive("Инфинитив"), - - /** - * Порядковое числительное - */ - OrdinalNumber("Порядковое числительное"), - - /** - * Фразеологизм - */ - Idiom("Фразеологизм"), - - /** - * Союз - */ - Union("Союз"); - - private final String description; - - PartOfSpeech(String description) { - this.description = description; - } - - /** - * Метод преобразует морфологический тег в часть речи - * - * @param tag тег морфологической информации - * @return извлеченная часть речи или null - */ - public static PartOfSpeech partOfSpeech(MorphologyTag tag) { - switch (tag) { - case Pronoun: - return Pronoun; - case PronounAdjective: - return PronounAdjective; - case ShortAdjective: - return ShortAdjective; - case Introduction: - return Introduction; - case Interjection: - return Interjection; - case Participle: - return Participle; - case Infinitive: - return Infinitive; - case Adjective: - return Adjective; - case Numeral: - return Numeral; - case Adverb: - return Adverb; - case Union: - return Union; - case Idiom: - return Idiom; - case Verb: - return Verb; - case Noun: - return Noun; - case PronounPredicative: - return PronounPredicative; - case VerbalParticiple: - return VerbalParticiple; - case BriefCommunion: - return BriefCommunion; - case POSL_PART_OF_SPEECH: - return POSL_PART_OF_SPEECH; - case Predicative: - return Predicative; - case Particle: - return Particle; - case Pretext: - return Pretext; - case OrdinalNumber: - return OrdinalNumber; - default: - return null; - } - } - - /** - * Метод извлекает часть речи из набора всей морфологической информации - * - * @param tags вся морфологическая информация - * @return извлеченная часть речи или null - */ - static PartOfSpeech partOfSpeech(Iterable tags) { - for (MorphologyTag tag : tags) { - PartOfSpeech maybe = partOfSpeech(tag); - if (maybe != null) { - return maybe; - } - } - return null; - } - - /** - * @return описание части речи - */ - @Override - public String toString() { - return description; - } -} diff --git a/src/main/java/com/github/demidko/aot/WordformMeaning.java b/src/main/java/com/github/demidko/aot/WordformMeaning.java index 06af12e..b546e78 100644 --- a/src/main/java/com/github/demidko/aot/WordformMeaning.java +++ b/src/main/java/com/github/demidko/aot/WordformMeaning.java @@ -1,6 +1,7 @@ package com.github.demidko.aot; import com.github.demidko.aot.morphology.MorphologyTag; +import com.github.demidko.aot.morphology.PartOfSpeech; import com.github.demidko.bits.BitReader; import com.github.demidko.bits.BitWriter; @@ -14,7 +15,7 @@ import static com.github.demidko.aot.AotReader.*; import static com.github.demidko.aot.ByteBlock.readBlockFrom; -import static com.github.demidko.aot.PartOfSpeech.partOfSpeech; +import static com.github.demidko.aot.morphology.PartOfSpeech.partOfSpeech; import static java.util.Arrays.asList; import static java.util.Collections.emptyList; import static java.util.Objects.hash;