Shanraq.org Shanraq.org
IT

Үлкен тілдік үлгісіз ЖИ: өз үлгімізді жасаймыз 26-сабақ (барлығы 30)

26-сабақ. Оқу талдауын Adam FST жүйесімен салыстырамыз

Екі адам бір велосипедті қарайды: үйренуші таныс үш бөлшекті атайды, ал шеберхана әр тораптың күйін де жазады. Екеуін тек ортақ әрекет бойынша салыстыру керек. Біздің 11-сабақ алдын ала берілген екі тұлғаны таниды; adam_fst — қазақша сөзді түбір мен грамматикалық белгілерге талдайтын Rust құралы. Ол үйірме кестесінің дереккөзі емес.

Бұл не үшін керек?

Екі адам бір велосипедті қарайды: үйренуші таныс үш бөлшекті атайды, ал шеберхана әр тораптың күйін де жазады. Екеуін тек ортақ әрекет бойынша салыстыру керек. Біздің 11-сабақ алдын ала берілген екі тұлғаны таниды; adam_fst — қазақша сөзді түбір мен грамматикалық белгілерге талдайтын Rust құралы. Ол үйірме кестесінің дереккөзі емес.

Кодқа дейін

Бағдарлама әрқашан мектептерімізде → мектеп + тер + іміз + де оқу талдауын көрсетеді. Екінші тәжірибе міндетті емес. sys.argv — пәрмендегі сөздер тізімі: бірінші мән бағдарлама атауы, келесісі adam_fst орындалатын файлының жолы болуы мүмкін. Path(...).resolve() оны толық жолға айналдырады, ал is_file() файл барын тексереді. subprocess.run сыртқы бағдарламаны іске қосады; пәрмен бөліктерінің тізімі қабықша арқылы өтпейді. cwd Adam түбірін уақытша жұмыс қалтасы етеді, себебі құрал сөздікті оның data қалтасынан оқиды. capture_output=True оның шығысын сақтайды, text=True оны мәтінге айналдырады, check=False қатені өзіміз тексеруге мүмкіндік береді. timeout=10 күтуді шектейді, returncode іске қосу нәтижесін көрсетеді. Rust жобасы орнатылмаса да, алғашқы тәжірибе толық жұмыс істейді.

Adam бастапқы жобасы. Морфологиялық CLI adam-kernel-fst модулінде орналасқан.

Жоба түбірінен қадам қалтасына өтіп, бағдарламаны іске қосыңыз:

cd course/kazakh-ai/step-26
python3 compare.py

Windows жүйесінде python3 орнына py жазыңыз.

import subprocess
import sys
from pathlib import Path

word = "мектептерімізде"
ours = {"root": "мектеп", "parts": ["тер", "іміз", "де"]}
print("Оқу үлгісі:", word, "→", ours["root"], ours["parts"])
if len(sys.argv) == 1:
    print("adam_fst: қосымша салыстыру іске қосылмады")
else:
    binary = Path(sys.argv[1]).expanduser().resolve()
    if not binary.is_file():
        print("adam_fst: бағдарлама файлы табылмады")
    else:
        run = subprocess.run([str(binary), "analyse", word], cwd=binary.parents[2],
                             text=True, capture_output=True, timeout=10, check=False)
        if run.returncode != 0:
            print("adam_fst: іске қосу қатесі")
        else:
            print("adam_fst:", run.stdout.strip())

Қадам файлдары.

Бағдарлама қалай жұмыс істейді?

Қосымша файл жолын бермесеңіз, бағдарлама салыстыру орындалмағанын хабарлайды. Тәжірибе үшін ашық Adam репозиторийін көшіріп, онда cargo build --release -p adam-kernel-fst --bin adam_fst пәрменін орындаңыз. Содан кейін біздің бағдарламаға репозиторий ішінде қалған target/release/adam_fst файлының жолын беріңіз (Windows-та adam_fst.exe). Ол Adam түбірінен adam_fst analyse мектептерімізде пәрменін іске қосып, құралдың жауабын оқу талдауының жанына шығарады. Rust орнату — бөлек жұмыс; Python курсы оған тәуелді емес. Тек табылған түбір мен белгілерді салыстырыңыз. Бір сөздегі сәйкестік бір жүйенің «жақсырақ» екенін де, кесте дерегі мен дереккөздің дұрыстығын да дәлелдемейді.

Тірек сызба

Бір сөз → оқу талдауы → қалауыңызша Adam FST CLI → түбір мен белгілерді салыстыру → екі тәжірибенің шегін айту.

26-сабақтың тірек сызбасы

Еске түсіріп, тексеріңіз

Кодты жауып, Rust болмаса да шығатын екі жолды еске түсіріңіз: Оқу үлгісі: мектептерімізде → мектеп ['тер', 'іміз', 'де'] және қосымша салыстырудың орындалмағаны туралы хабар. Көмек: len(sys.argv) == 1 тармағын қараңыз. Содан соң қате файл жолын беріңіз: бағдарлама файлы табылмады шығады. Жиі қате: түбірдің сәйкес келуін кесте дерегінің дәлелі деп санау. Сөзді талдау мен нақты деректі тексеру — екі бөлек қадам.

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.