From 9ed9b82bf77d359198371ebe96c3866729c9642d Mon Sep 17 00:00:00 2001 From: Samuel Sloniker Date: Tue, 5 Jul 2022 18:46:29 -0700 Subject: [PATCH] Update project and README --- README.md | 18 +++++++++++++++++- gptc_scratch.sb3 | Bin 10867 -> 11163 bytes 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ac0236..0a0b648 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,19 @@ # gptc_scratch -GPTC, ported to Scratch \ No newline at end of file +gptc_scratch uses the same algorithm as GPTC, in a Scratch project. However, it +only supports two categories, and they are numbered (1 and 2) rather than +named. + +Models are formatted differently than in the Python version of GPTC. A model +consists of two files, each containing the text for a category. gptc_scratch +does not have a tokenizer, so each line must consist of one lowercase word with +no other characters. To load the model, right-click "Category 1 Words" in the +project, click "import," then choose one of the files. Do the same thing again +with "Category 2 Words" and the other file. + +The text to classify must be stored in the same format as the model files. +Follow the same procedure that you used for loading the model files, but with +"Words in text to classify" and the file containing the text to classify. Then, +click "Compile." If the button changes to a lighter color, wait for it to +change back. Next, click "classify." This should update the "Cat1" and "Cat2" +variables with the confidence valued for the given text and categories. diff --git a/gptc_scratch.sb3 b/gptc_scratch.sb3 index 3f29c6822f963b006dda96ef1de4885ca61eefd8..bf437b2ae82270f620c799431415ba9d9444c573 100644 GIT binary patch delta 8197 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 delta 7837 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