From 26c02c45dc8597d6ffe823e4a39a9f5b8de8a9c7 Mon Sep 17 00:00:00 2001 From: Robert Crellin <54702776+rsdc2@users.noreply.github.com> Date: Thu, 22 Feb 2024 18:27:58 +0000 Subject: [PATCH] latest lemmata, remove console.log etc --- src/Pure/constants/lemmataGreek.js | 360 ++++++++++++++++++++--------- src/Pure/constants/lemmataLatin.js | 2 +- src/Pure/lemmatise.js | 29 ++- src/Pure/stringedit.js | 80 +++---- src/SideEffects/epidoc/textElem.js | 15 +- tests/Pure/lemmatise.test.mjs | 2 +- tests/Pure/stringedit.test.mjs | 4 +- tests/utils/file.harness.mjs | 6 +- tests/utils/lemmata.mjs | 6 +- 9 files changed, 335 insertions(+), 169 deletions(-) diff --git a/src/Pure/constants/lemmataGreek.js b/src/Pure/constants/lemmataGreek.js index ec3b33b..b6eb943 100644 --- a/src/Pure/constants/lemmataGreek.js +++ b/src/Pure/constants/lemmataGreek.js @@ -1,65 +1,20 @@ export const lemmataGreek = { - "ἀνδρί": "ἀνήρ", - "ἔτη":"ἔτος", - "καὶ":"καί", - "χαῖρε":"χαίρω", - "ἐνθάδε":"ἐνθάδε", - "ἔζησεν":"ζῶ", - "κῖτε":"κεῖμαι", - "χρηστὰ":"χρηστός", - "χρηστὲ":"χρηστός", - "μηνὶ":"μείς", - "ἡμέρας":"ἡμέρα", - "ἄμεμπτος":"ἄμεμπτος", - "μῆνας":"μείς", - "Θεοῖς":"θεός", - "Καταχθονίοις":"καταχθόνιος", - "γ":"γ", - "ἄμεμπτε":"ἄμεμπτος", - "ζήσας":"ζάω", - "τόπος":"τόπος", - "ὁ":"ὁ", - "κεῖτε":"κεῖμαι", - "ἐτελεύτησεν":"τελευτάω", - "ἀπὸ":"ἀπό", - "τόπον":"τόπος", - "καλανδῶν":"καλάνδαι", - "χρηστὸς":"χρηστός", - "ἄμενπτος":"ἄμεμπτος", - "μ":"μ", - "τῇ":"ὁ", - "πρὸ":"πρό", - "δ":"δ", - "τὸν":"ὁ", - "βίον":"βίος", - "Θέδουλος":"Θέδουλος", - "ἔζησες":"ζάω", - "ἐποίησεν":"ποιέω", - "μνήμης":"μνήμη", - "εἴκοσι":"εἴκοσι", - "ζήσασα":"ζῶ", - "δεκαπέντε":"δεκαπέντε", - "κεῖται":"κεῖμαι", - "ν":"ν", - "ἠγόρασεν":"ἀγοράζω", - "κῖται":"κεῖμαι", - "Κλώδιε":"Κλώδιον", - "Μᾶρκος":"Μᾶρκος", - "τοῦ":"ὁ", - "ἔζησε":"ζῶ", - "ο":"ο", - "Ἰουνίου":"Ἰούνιον", - "ἐτῶν":"ἔτος", - "ἐν":"ἐν", - "Χριστῷ":"Χριστός", "Πουβλειλία":"Πουβλειλία", "Ἀγάθιν":"Ἀγάθιν", "χρηστά":"χρηστός", + "χαῖρε":"χαίρω", + "ἔζησεν":"ζάω", + "ἔτη":"ἔτος", "λγ":"λγ", "Ἐπαφρόδειτος":"Ἐπαφρόδειτος", - "Δεκενβρίαῳ":"Δεκέμβιος", + "ἐτελεύτησεν":"τελευτάω", + "μηνὶ":"μείς", + "Δεκεμβρίῳ":"Δεκεμβρίος", + "Ἰησοῦς":"Ἰησοῦς", + "Χριστὸς":"Χριστὸς", "Διονυσίου":"Διονύσιος", "Διονύσιος":"Διονύσιος", + "καὶ":"καὶ", "Ἐλπὶς":"Ἐλπίς", "ἠγοράσομεν":"ἀγοράζω", "τόπους":"τόπος", @@ -71,14 +26,29 @@ export const lemmataGreek = { "Κλώδιος":"Κλώδιος", "Ῥωμανὸς":"Ῥωμανός", "ιθ":"εἷς", + "ἡμέρας":"ἡμέρα", + "δ":"δ", "ἀμέμπτως":"ἀμέμπτως", + "τὸν":"ὁ", + "βίον":"βίος", "ψυχὴ":"ψυχή", "χαίρει":"χαίρω", "αἰώνιος":"αἰώνιος", + "Θεοῖς":"θεός", + "Χθονίοις":"Χθόνιος", "Ζώη":"Ζώη", "χρηστὴ":"χρηστός", + "ἄμεμπτος":"ἄμεμπτος", "κβ":"κβ", + "Ἀφροδισίας":"Ἀφροδισία", + "Εὐφροσύνου":"Εὐφρόσυνος", + "ἀγορασία":"ἀγορασία", + "τόπος":"τόπος", + "μηδὶς":"μηδείς", + "ἐξουσιάσῃ":"ἐξουσιάζω", + "ἄλλος":"ἄλλος", "Μνησθῇ":"μιμνῄσκω", + "ὁ":"ὁ", "θεὸς":"θεός", "τῶ":"ὁ", "δούλω":"δούλω", @@ -90,71 +60,130 @@ export const lemmataGreek = { "κ":"κ", "Δορυφόρος":"Δορυφόρος", "ἐνιαυτὸν":"ἐνιαυτός", - "ζ":"ζ", + "μῆνας":"μείς", + "ζ":"ὁ", "Διωγένια":"Διωγένια", "Κωστάντιος":"Κωστάντιος", + "Θέδουλος":"Θέδουλος", + "ἐνθάδε":"ἐνθάδε", + "κῖτε":"κεῖμαι", + "Καταχθονίοις":"καταχθόνιος", "Πρειμιτεῖβε":"Πριμιτῖβος", + "χρηστὲ":"χρηστός", + "ἔζησες":"ζάω", "θ":"θ", - "Κοπρία":"Κοπρία", - "μήτηρ":"μήτηρ", + "Κοείντα":"Κόϊντα", + "ἐβίωσεν":"βιόω", + "ιδ":"εἷς", + "Κοπρία":"Κοπρία", + "μήτηρ":"μήτηρ", + "ἐποίησεν":"ποιέω", "Νεθάρι":"Νεθάρι", "τεκνίον":"τεκνίον", + "θανεῖν":"θανέω", + "πέπρωται":"πέρνημι", "Κορνήλιος":"Κορνήλιος", "Ἀγαθήμερος":"Ἀγαθήμερος", "ἐζησεν":"ζάω", "XXXVIII":"ὁ", "Εὐφροσύνη":"Εὐφροσύνη", "ἰδίῳ":"ἴδιος", - "σύμβιος":"σύμβιος", - "σύνβιος":"σύμβιος", "συνβίῳ":"σύμβιος", + "μνήμης":"μνήμη", "χάριν":"χάριν", - "Χθονίοις":"Χθόνιος", + "Σώζουσα":"Σώζουσα", + "ἔζησε":"ζῶ", + "ε":"ε", + "μῆνες":"μείς", + "ἡμέραις":"ἡμέρα", "Ἰωβινιανός":"Ἰωβινιανός", "Ζόδωρος":"Ζόδωρος", + "ἀπὸ":"ἀπό", "Μάκρης":"Μάκρης", "Κώμης":"Κώμη", - "Δεκεμβρίῳ":"Δεκεμβρίος", "Μαρκία":"Μαρκία", "Λουκιλία":"Λουκιλία", - "ἔζωσεν":"ζάω", + "χρηστὰ":"χρηστός", + "ἔζωσεν":"ζάω", + "ἔτη":"ἔτη", + "εἴκοσι":"εἴκοσι", + "Εὐάνθης":"Εὐάνθη", + "Ζοήλου":"Ζόηλος", + "Ἰούλιος":"Ἰούλιος", + "Φρετηνσία":"Φρετηνσία", + "Στατία":"Στατία", + "Σκρειβωνία":"Σκρειβωνία", + "σεμνῶς":"σεμνῶς", + "η":"η", + "κδ":"κδ", "Ἀκουβία":"Ἀκοβία", "παρθένος":"παρθένος", + "ζήσασα":"ζῶ", "δέκα":"δέκα", "ἐννέα":"ἐννέα", + "δεκαπέντε":"δεκαπέντε", "Σωκράτης":"Σωκράτης", "πάντων":"πᾶς", - "φίλος":"φίλος", - "ἒζησεν":"ζάω", - "ἒτη":null,"Εἰρηναῖος":"Εἰρηναῖος", + "φίλος":"φίλος", + "κεῖται":"κεῖμαι", + "Ἐνθάδε":"ἐνθάδε", + "κεῖτε":"κεῖμαι", + "Βάσσος":"Βάσσος", + "ἰατρός":"ἰατρός", + "ν":"ν", + "τῇ":"τῇ", + "πρὸ":"πρό", + "ιε":"ιε", + "καλανδῶν":"καλάνδαι", + "Μαρτίων":"Μάρτιος", + "Εἰρηναῖος":"Εἰρηναῖος", "πρεσβύτερος":"πρέσβυς", - "μηδὲν":"μηδείς", - "βλάψας":"βλάπτω", + "ἠγόρασεν":"ἀγοράζω", + "τόπον":"τόπος", + "μηδὲν":"μηδείς", + "βλάψας":"βλάπτω", "τὴν":"ὁ", - "ἐντολήν":"ἐντολή", + "ἐντολήν":"ἐντολή", "Ὁ":"ὁ", "κύριός":"κύριος", - "μου":"ἐγώ", + "μου":"ἐγώ", "Εὐάγριος":"Εὐάγριος", "ἐχαρίσατό":"χαρίζω", "μοι":"μοι", - "ἐμοὶ":"ἐγώ", + "ἐμοὶ":"ἐγώ", "Θεοδούλῳ":"Θεόδουλος", + "κῖντε":"κεῖμαι", + "Κωστάντις":"Κωστάντις", + "Κεκιλία":"Κεκιλία", + "Κλημεντεῖνα":"Κλημεντεῖνα", + "Συρακουσία":"Συρακουσία", "Θεοδοσία":"Θεοδοσία", - "ἡμέραις":"ἡμέρα", + "κῖται":"κεῖμαι", + "γ":"γ", "δεῖνα":"δεῖνα", + "ἄμεμπτε":"ἄμεμπτος", "σὺ":"σύ", + "ἐντάδε":"ἐνθάδε", + "κεῖταε":"κεῖμαι", + "Εὐνόη":"Εὐνόη", + "δούλη":"δούλη", + "Κοριννίδος":"Κοριννίς", "ἔνθαδε":"ἔνθαδε", "Εὐτύχης":"Εὐτύχης", "Μαίῳ":"Μαίος", - "ιδ":"ιδ", "αἰτῶν":"ἔτος", "ἕνδεκα":"ἕνδεκα", "εὐμοίρει":"εὐμοιρέω", + "ἐνταῦθα":"ἐντείνω", + "Πετρώνιος":"Πετρώνιος", + "τελευτήσας":"τελευτάω", + "ἐτῶν":"ἔτος", + "ς":"α", "Ἄλβιος":"Ἄλβις", "Πούβλιε":"Πούβλιος", + "Κλώδιε":"Κλώδιον", "Κορνηλιανὲ":"Κορνηλιανέ", - "εὐσεβῆ":"εὐσεβής", + "εὐσεβῆ":"εὐσεβής", "Κλαυδία":"Κλαυδία", "Σωτήρις":"Σωτήρις", "ξγ’":"ξγό", @@ -164,59 +193,100 @@ export const lemmataGreek = { "Ποσαίδη":"Ποσαίδη", "Βίκτωρ":"Βίκτωρ", "Ἀερίου":"Ἀέριος", + "Κεκιλιανὸς":"Κεκιλιανός", + "ζήσας":"ζάω", + "Εἰρήvη":"Εἰρήνη", + "ὑμῖν":"ὑμεῖς", + "πᾶσιν":"πᾶς", + "ἐν":"ἐν", + "Θεῷ":"θεός", + "Μᾶρκος":"Μᾶρκος", "Βιψάνιος":"Βιψάνιος", "Ζώσιμος":"Ζώσιμος", - "καλῶς":"καλός", + "καλῶς":"καλός", "λε":"λε", "παροδεῖτα":"παροδίτης", "Σαβοῦκις":"Σαβοῦκις", "Καλλίμορφος":"Καλλίμορφος", "λβ":"λβ", + "Σαβούκις":"Σαβούκις", + "Ζωίλος":"Ζωίλος", + "πάτρων":"πάτρων", + "ἐποίησε":"ποιέω", "Ἀργύρις":"Ἀργύρις", + "Δομνῖνα":"Δομνῖνα", "ταφὴ":"ταφή", "Γεμέλλου":"Γέμελλος", + "τοῦ":"ὁ", "υἱοῦ":"υἱός", "Κλωδίας":"Κλωδία", + "Λουκιανὸς":"Λουκιανός", + "Νικοπόλη":"Νικοπόλη", + "Στεφάνη":"Στεφάνη", "Ἀλλιήνας":"Ἀλλιήνα", "Δωροθέας":"Δωροθέα", - "Ἐπαφρόδιτος":"Ἐπαφρόδιτος", + "Ἐπαφρόδιτος":"Ἐπαφρόδιτος", + "χρηστὸς":"χρηστός", "λ":"λ", "β":"β", "Φουρία":"Φουρία", "λδ":"λδ", + "Μάρκος":"Μᾶρκος", + "Ἀκειλειανὸς":"Ἀκειλειανός", + "Λεικεινιανὸς":"Λεικεινιανός", + "ἄμενπτος":"ἄμενπτος", + "λη":"λα", + "Ἑρμαδίων":"Ἑρμάδιος", "Πεσκέννις":"Πεσκέννις", "Καλάτιχος":"Καλάτιχος", "ογ":"ογ", + "Πεσκεννία":"Πεσκεννία", + "Γαμικὴ":"Γαμική", + "ἀνδρί":"·", "Πειθανῆς":"Πειθανής", "Ἰοῦστος":"Ἰοῦστος", "τριάκοντα":"τριάκοντα", - "Στεφάνι":"Στεφάνη", + "Στεφάνι":"Στεφάνη", "ἔτεα":"ἔτος", - "η":"η", - "ἡμέρες":"ἡμέρα", + "ἡμέρες":"ἡμέρα", + "ἀ":"ἀ", + "ὠ":"ὠ", "Ἀγάθων":"Ἀγάθων", + "μ":"μ", "Βουλκακία":"Βουλκακία", "Τερεντία":"Τερεντία", "εὐσεβὴς":"εὐσεβής", "ἀγαθὴ":"ἀγαθός", "Διονυσία":"Διονυσία", + "Πριμογένης":"Τριτογενής", + "ο":"ο", + "Χριστός":"Χριστός", "Κοῖντε":"Κοῖντος", "Κορνιφίκι":"Κορνιφίκι", "Στεφανηφόρε":"Στεφανηφόρης", "ἄμενπτε":"ἄμεμπτος", + "ιβ":"εἷς", "Πρέπουσα":"Πρέπουσα", "Δαψιλιανός":"Δαψιλιανός", - "Βλάστη":"βλάστη", - "θυγάτηρ":"θυγάτηρ", - "μητρὶ":"μήτηρ", - "εὐσεβεστάτῃ":"εὐσεβής", - "ἔποισε":"ποιέω", + "Δαίμοσι":"εἴκοσι", + "χθονίοις":"χθόνιος", + "Καιλία":"Καιλία", + "Ἑορτὴ":"ἑορτή", + "ἐβίωσε":"βαίνω", + "ο’":"ο’", + "Βλάστη":"βλάστη", + "θυγάτηρ":"θυγάτηρ", + "μητρὶ":"μήτηρ", + "εὐσεβεστάτῃ":"εὐσεβής", + "ἔποισε":"ποιέω", "Μαρκιανός":"Μαρκιανός", "Βικτωρῖνος":"Βικτωρῖνος", "εἴδιος":"ἴδιος", - "Ὡραία":"Ὡραία", - "Οὐρβανίων":"Οὐρβανίων", - "Γόνγε":"Γόνγος", + "Ὡραία":"Ὡραία", + "Γάμε":"Γάμος", + "Οὐρβανίων":"Οὐρβανίων", + "Γόνγε":"Γόνγος", + "Μαρκέλλα":"Μαρκέλλα", "Ἀγαλματὶς":"Ἀγαλματίς", "Τριανὸς":"Τριανός", "δοῦλοι":"δοῦλος", @@ -226,83 +296,161 @@ export const lemmataGreek = { "Κουστατία":"Κουστατία", "Δάφρος":"Δάφρος", "σωτήρ":"σωτήρ", + "Βεικτωρία":"Βεικτωρία", + "Κρισπῖνα":"Κρισπῖνα", "Στέφανος":"Στέφανος", "μακαρίας":"μακάριος", "διάκονος":"διάκονος", "ἀναπαυσάμενος":"ἀναπαύομαι", "δι":"δι", + "Ἰουνίου":"Ἰούνιον", "ὑπατίᾳ":"ὑπατία", "Μοναξίου":"Μονάξιος", "Πλίνθα":"Πλίνθας", + "Ἀλέξανδρος":"Ἀλέξανδρος", "Μαγουλνία":"Μαγουλνία", "Σπὴς":"Σπή", - "ς":"α", + "Κοστάντις":"Κοστάντις", + "Βονιφᾶ":"Βονιφᾶς", "ω":"ω", + "Ὀνησίμη":"Ὀνησίμη", + "καλῆς":"καλός", + "χρηστιανὴ":"χρηστιανή", + "τελευτήσασα":"τελευτάω", + "προχωρήσασα":"προχωρέω", + "δὲ":"δέ", + "πρὸς":"πρός", + "κύριον":"κύριος", + "καλάνδαις":"καλάνδαι", + "Ἰανουαρίαις":"Ἰανουαρία", "ἐκοιμήθη":"κοιμάομαι", "Μαρκελλα":"Μαρκελλα", "τε͂ς":"τε͂ς", "πέντε":"πέντε", "μενὸς":"μείς", + "μνησθῇ":"μιμνῄσκω", + "Κύριος":"Κύριος", + "κοιμήσεώς":"κοίμησις", "Ἰουλιανὸς":"Ἰουλιανός", - "ιε":"ιε", "Ἀπριλίων":"Ἀπρίλιος", "καταχθονίοις":"καταχθόνιος", - "Μάρκος":"Μᾶρκος", "Ἀκύλιος":"Ἄκυλις", "Αἰλιανὸς":"Αἰλιανός", + "σύμβιος":"σύμβιος", + "ἀνδρὶ":"ἀνήρ", + "εὐσεβεῖ":"εὐσεβής", + "Ιθαλλας":"Ιθαλλας", + "ναύκληρος":"ναύκληρος", + "Λεπτημαγνένσιος":"Λεπτημαγνένσιος", "Λεοντία":"Λεοντία", - "Καλλιόπη":"καλλιόπη", + "Καλλιόπη":"καλλιόπη", "ιη":"ιη", "Εὐτυχιανῆς":"Εὐτυχιανή", + "Χαρίτων":"Χαρίτων", + "ἑξήκοντα":"ἑξήκοντα", + "ἁμέρες":"ἡμέρα", + "α":"α", "θεῷ":"θεός", "κὲ":"κέ", + "Χριστῷ":"Χριστός", "Μαρτύριος":"Μαρτύριος", "Κοπριανὸς":"Κοπριανός", - "λη":"λα", - "τελευτᾷ":"τελευτάω", + "τελευτᾷ":"τελευτάω", "ια":"ια", "Ὀκτωβρήον":"Ὀκτώβριος", "Εἰρήνης":"Εἰρήνη", "Θεοδούλου":"Θεόδουλος", - "Εἰφιόνισα":"Εἰφιόνισα", + "Εἰφιόνισα":"Εἰφιόνισα", + "ἔζησε":"ἔζησε", "Ῥωσκία":"Ῥωσκία", "Νίκη":"Νίκη", "μγ":"ἕξ", "Οὐρβικὸς":"Οὐρβικός", "ἰδίᾳ":"ἴδιος", - "γυναικί":"γυνή", + "γυναικί":"γυνή", + "Μακάρι":"Μακάρι", + "ζήσῃς":"ζῶ", + "Ἐπαφροδείτιων":"Ἐπαφρόδειτια", + "Ἀδριανὸς":"Ἀδριανός", + "Δευτερία":"Δευτερία", + "ζήσητε":"ζάω", + "Σεβῆρος":"Σεβήρ", + "λεʹ":"λέʹ", + "γʹ":"γε", + "ιεʹ":"εἷς", "Αὖλος":"Αὖλος", "Ἄννιος":"Ἄννιος", "Κέλερ":"Κέλερ", + "Κόϊντε":"Κόϊντος", + "Δομίτιε":"Δομίτιος", "Ἐτελεύτησεν":"τελευτάω", "Τύχημος":"Τύχημος", "Ἰενουαρίων":"Ἰενουάριος", "π":"π", - "καλὸν":"καλός", - "Ἐπαφρόειτος":"Ἐπαφρόδιτος", + "καλὸν":"καλός", + "ἑαυτῷ":"ἑαυτοῦ", + "τοῖς":"ὁ", + "ἠδίοις":"ἴδιος", "ξ":"ξ", "Δεκομία":"Δεκομία", "Συρίσκα":"Συρίσκα", "πανδόκια":"πανδόκεια", - "Ὀπωρεῖνε":"πωρέω", + "Ἰουλιανὴ":"Ἰουλιανή", + "Λείβερτε":"Λείβερτος", + "χρηστέ":"χρηστός", + "Ὀπωρεῖνε":"πωρέω", "ι":"ι", + "Κλωδιανός":"Κλωδιανός", + "Ζώσιμε":"Ζώσιμος", + "ἔζησας":"ζῶ", + "μίαν":"εἷς", + "ἡμέραν":"ἡμέρα", + "Ἀγάθη":"Ἀγάθη", + "παρασκευῇ":"παρασκευή", + "Σεπτεμβρίων":"σεπτέμβριος", "ἐξεκομίσθη":"ἐκκομίζω", "δαὶ":"δαί", "Σαββάτοις":"Σάββατον", - "Ἐνθάδε":"ἐνθάδε", + "χαρίσου":"χαρίζω", + "τῷ":"ὁ", + "Κυρίῳ":"κύριος", + "Καπιτω":"Καπιτω", + "Φιλάδελφος":"Φιλάδελφος", + "ϛ":"ὁράω", "Εὐτυχιανὸς":"Εὐτυχιανός", - "Λουκίφερα":"Λουκίφερα", - "ζάωσα":"ζάω", + "Αὐγουστῶν":"Αὔγουστος", + "ὑπατείᾳ":"ὑπατεία", + "Ἀνικίου":"Ἀνίκιος", + "Αὐχενίου":"Αὐχένιος", + "Βάσσου":"Βάσσος", + "Φλαυίου":"Φλάυιος", + "Φιλίππου":"Φίλιππος", + "Σοσίᾳ":"Σοσία", + "Ἐλάτῃ":"Ἐλάτη", + "γλυκυτάτῃ":"γλύκιος", + "Ἀφροδείσιος":"Ἀφροδίσιος", + "Τελέσφορος":"Τελέσφορος", + "αἴζησεν":"ζῶ", + "κα":"κα", + "Ἀνατασέας":"Ἀνατασία", + "Ἰσπὴς":"Ἰσπής", + "Λουκίφερα":"Λουκίφερα", + "ζῶσα":"ζάω", "ἑαυτῇ":"ἑαυτοῦ", - "τοῖς":"ὁ", - "ἰδίοις":"ἴδιος", - "πᾶσιν":"πᾶς", + "ἰδίοις":"ἴδιος", + "Διονῦσις":"Διονῦσις", + "τύνβος":"τύμβος", + "Εὐτυχίωνοs":"Εὐτυχίων", + "Ἰρήνα":"Εἰρήνη", + "ἡ":"ὁ", + "σύνβιος":"σύμβιος", + "αὐτοῦ":"αὐτός", "Δατείβου":"Δατίβος", "Βειψάνιος":"Βιψάνιος", "Φοῖβος":"Φοῖβος", "κϛ":"κϛ", - "πατὴρ":"πατήρ", - "υἱῷ":"υἱός", - "εὐσεβεῖ":"εὐσεβής", + "πατὴρ":"πατήρ", + "μήτηρ":"μήτηρ", + "υἱῷ":"υἱός", "Θεόδουλος":"Θεόδουλος" } \ No newline at end of file diff --git a/src/Pure/constants/lemmataLatin.js b/src/Pure/constants/lemmataLatin.js index 4b930ab..b4b5d24 100644 --- a/src/Pure/constants/lemmataLatin.js +++ b/src/Pure/constants/lemmataLatin.js @@ -53,7 +53,7 @@ export const lemmataLatin = { "Cabaria":"Cabaria", "Caecinia":"Caecinia", "Caepario":"Caeparius", - "Caesari":"Caesaris", + "Caesari":"Caesar", "Cai":"Cai", "Caia":"Gaia", "Caio":"Caius", diff --git a/src/Pure/lemmatise.js b/src/Pure/lemmatise.js index 2d4b569..581252e 100644 --- a/src/Pure/lemmatise.js +++ b/src/Pure/lemmatise.js @@ -1,7 +1,6 @@ - import { lemmataLatin } from "../Pure/constants/lemmataLatin.js" import { lemmataGreek } from "../Pure/constants/lemmataGreek.js" -import { comparison } from "../Pure/stringedit.js"; +import { editDistance } from "../Pure/stringedit.js"; const latinForms = Object.keys(lemmataLatin) const greekForms = Object.keys(lemmataGreek) @@ -25,18 +24,28 @@ export const lemmatise = (lang) => if (latinForms.includes(form)) { return lemmataLatin[form] } else { + + if (form.length < 4) { + return null + } const editDists = latinForms.map( /** * * @param {string} latinForm * @returns {[string, number]} */ - latinForm => [latinForm, comparison([form, latinForm])] + latinForm => [latinForm, editDistance([form, latinForm])] ) const sorted = editDists.sort( ( [form1, dist1], [form2, dist2]) => dist1 - dist2 ) const [closestForm, dist] = sorted[0] - return lemmataLatin[closestForm] + + if (dist <= 1) { + return lemmataLatin[closestForm] + } + + return null + } @@ -44,18 +53,26 @@ export const lemmatise = (lang) => if (greekForms.includes(form)) { return lemmataGreek[form] } else { + if (form.length < 4) { + return + } const editDists = greekForms.map( /** * * @param {string} greekForm * @returns {[string, number]} */ - greekForm => [greekForm, comparison([form, greekForm])] + greekForm => [greekForm, editDistance([form, greekForm])] ) const sorted = editDists.sort( ( [form1, dist1], [form2, dist2]) => dist1 - dist2 ) const [closestForm, dist] = sorted[0] - return lemmataGreek[closestForm] + + if (dist <= 1) { + return lemmataGreek[closestForm] + } + + return null } } } \ No newline at end of file diff --git a/src/Pure/stringedit.js b/src/Pure/stringedit.js index f1f903f..038d8bb 100644 --- a/src/Pure/stringedit.js +++ b/src/Pure/stringedit.js @@ -31,48 +31,48 @@ function sameLength(s1, s2) { * @returns {number} */ -export function editDistance([s1, s2]) { +// export function editDistance([s1, s2]) { - if (s1 === s2) { - return 0 - } +// if (s1 === s2) { +// return 0 +// } - if (s1.length === 0 && s2.length !== 0) { - return s2.length - } +// if (s1.length === 0 && s2.length !== 0) { +// return s2.length +// } - if (s1.length !== 0 && s2.length === 0) { - return s1.length - } +// if (s1.length !== 0 && s2.length === 0) { +// return s1.length +// } - if (s1.length === s2.length) { - return sameLength(s1, s2) - } +// if (s1.length === s2.length) { +// return sameLength(s1, s2) +// } - const lengthDiff = s1.length - s2.length +// const lengthDiff = s1.length - s2.length - const arr1D = new Array(s1.length + 1) +// const arr1D = new Array(s1.length + 1) - const dist = arr1D.map( - (elem) => { - const arr = new Array(s2.length + 1) - arr.map( elem => elem = 0) - elem = arr - } - ) +// const dist = arr1D.map( +// (elem) => { +// const arr = new Array(s2.length + 1) +// arr.map( elem => elem = 0) +// elem = arr +// } +// ) - for (let i=0; i<=s1.length; i++) { - dist[i][0] = i - } +// for (let i=0; i<=s1.length; i++) { +// dist[i][0] = i +// } - for (let j=0; j<=s1.length; j++) { - dist[j][0] = j - } +// for (let j=0; j<=s1.length; j++) { +// dist[j][0] = j +// } -} +// } /** @@ -125,7 +125,7 @@ export function findClosestZero(arr2d, [startX, startY]) { * * @param {[string, string]} param0 */ -export function comparison([s1, s2]) { +export function editDistance([s1, s2]) { if (s1 === s2) { return 0 @@ -157,7 +157,7 @@ export function comparison([s1, s2]) { const arr = Arr.arr2d([s1Len, s2Len], 0) - console.log(arr) + // console.log(arr) for (let i=0; i */ lemmatise() { - this.elem.setAttribute( - "lemma", - lemmatise(this.xmlLang)(this.form) - ) + const lemma = lemmatise(this.xmlLang)(this.form) + + if (lemma != null) { + this.elem.setAttribute( + "lemma", + lemmatise(this.xmlLang)(this.form) + ) + } + } removeXMLID() { diff --git a/tests/Pure/lemmatise.test.mjs b/tests/Pure/lemmatise.test.mjs index 585e900..837221c 100644 --- a/tests/Pure/lemmatise.test.mjs +++ b/tests/Pure/lemmatise.test.mjs @@ -5,7 +5,7 @@ import Parametrized from "../utils/parametrized.mjs" const { parametrize } = Parametrized import { lemmatise } from "../../src/Pure/lemmatise.js" -import { comparison } from "../../src/Pure/stringedit.js" +import { editDistance } from "../../src/Pure/stringedit.js" const lemmatiseLatinTests = /** @type {[string, string, string][]}*/ ( [ diff --git a/tests/Pure/stringedit.test.mjs b/tests/Pure/stringedit.test.mjs index 60bcbb5..f50cf94 100644 --- a/tests/Pure/stringedit.test.mjs +++ b/tests/Pure/stringedit.test.mjs @@ -1,6 +1,6 @@ import Parametrized from "../utils/parametrized.mjs" -import { comparison, findClosestZero } from "../../src/Pure/stringedit.js" +import { editDistance, findClosestZero } from "../../src/Pure/stringedit.js" import { test } from "node:test" import assert from "node:assert/strict" @@ -19,7 +19,7 @@ const stringEditTests = /** @type {[[string, string], number, string][]}*/ ( // [["abczzzabc", "abcabc"], 3, "abczzzabc -> abcabc"] ]) -parametrize(stringEditTests, comparison) +parametrize(stringEditTests, editDistance) // const findNearestZeroTests = /** @type {[number[][], [number, number], string][]}*/ ([ diff --git a/tests/utils/file.harness.mjs b/tests/utils/file.harness.mjs index 81cadfa..a5ad8a6 100644 --- a/tests/utils/file.harness.mjs +++ b/tests/utils/file.harness.mjs @@ -13,13 +13,13 @@ function loadFile() { const epidoc = loadEpiDoc( "../files/input/ISic000001_valid.xml" ) - console.log(epidoc.processingInstructions) - console.log(epidoc.XMLDeclaration) + // console.log(epidoc.processingInstructions) + // console.log(epidoc.XMLDeclaration) epidoc.createXMLDeclaration({throwOnFail: true}) // epidoc.doc.insertBefore(new Text("\n"), epidoc.doc.firstChild) // console.log(epidoc.processingInstructions.map(item => item.data)) - console.log(epidoc.XMLDeclaration.data) + // console.log(epidoc.XMLDeclaration.data) // console.log(cwd()) } diff --git a/tests/utils/lemmata.mjs b/tests/utils/lemmata.mjs index cb3ae93..683e7fa 100644 --- a/tests/utils/lemmata.mjs +++ b/tests/utils/lemmata.mjs @@ -1,6 +1,4 @@ import { writeFileSync } from "node:fs" - -import { lemmataLatin } from "../../src/Pure/constants/lemmataLatin.js" import {sort, prettyPrint, formatAsVariable, JSONToObj} from "./object.mjs" @@ -29,6 +27,6 @@ function writeLemmataFromJSONToJS(src, varName, dst) { writeLemmataFromVarToJS(lemmata, varName, dst) } -writeLemmataFromJSONToJS("greek_lemmata", "greek_lemmata", "greek_lemmata") - +writeLemmataFromJSONToJS("greek_lemmata", "lemmataGreek", "lemmataGreek") +// writeLemmataFromJSONToJS("latin_lemmata", "lemmataLatin", "lemmataLatin") // writeLemmataFromJSONToJS("latin_lemmata", "latin_lemmata", "latin_lemmata") \ No newline at end of file