Үлкен тілдік үлгісіз ЖИ: өз үлгімізді жасаймыз 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 → түбір мен белгілерді салыстыру → екі тәжірибенің шегін айту.
Еске түсіріп, тексеріңіз
Кодты жауып, Rust болмаса да шығатын екі жолды еске түсіріңіз: Оқу үлгісі: мектептерімізде → мектеп ['тер', 'іміз', 'де'] және қосымша салыстырудың орындалмағаны туралы хабар. Көмек: len(sys.argv) == 1 тармағын қараңыз. Содан соң қате файл жолын беріңіз: бағдарлама файлы табылмады шығады. Жиі қате: түбірдің сәйкес келуін кесте дерегінің дәлелі деп санау. Сөзді талдау мен нақты деректі тексеру — екі бөлек қадам.
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.