{"id":13606222,"url":"https://github.com/fortnightlabs/snowball-js","last_synced_at":"2025-04-12T08:30:38.817Z","repository":{"id":44325843,"uuid":"1461411","full_name":"fortnightlabs/snowball-js","owner":"fortnightlabs","description":"javascript implementation of the popular snowball word stemming nlp algorithm ","archived":false,"fork":false,"pushed_at":"2011-03-09T23:17:22.000Z","size":477,"stargazers_count":102,"open_issues_count":3,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-09T16:50:03.382Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://code.google.com/p/urim/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fortnightlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-03-09T23:16:34.000Z","updated_at":"2025-03-24T15:38:41.000Z","dependencies_parsed_at":"2022-09-02T14:51:08.964Z","dependency_job_id":null,"html_url":"https://github.com/fortnightlabs/snowball-js","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortnightlabs%2Fsnowball-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortnightlabs%2Fsnowball-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortnightlabs%2Fsnowball-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortnightlabs%2Fsnowball-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fortnightlabs","download_url":"https://codeload.github.com/fortnightlabs/snowball-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248539753,"owners_count":21121228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T19:01:07.254Z","updated_at":"2025-04-12T08:30:33.807Z","avatar_url":"https://github.com/fortnightlabs.png","language":"JavaScript","funding_links":[],"categories":["Text Search"],"sub_categories":["Reactive Programming"],"readme":"jsSnowball is a JavaScript port of http://snowball.tartarus.org/ stemmers,\r\nweb site is at: http://code.google.com/p/urim/\r\n\r\nSummary:\r\n========\r\n\r\nsnowball-js implements the popular \"Snowball\" word stemming algorithm in\r\nJavaScript. Originally ported to JavaScript by Oleg Mazko for\r\n[Urim](http://code.google.com/p/urim/), Fortnight Labs forked it to\r\nGitHub to add support for Node and npm.\r\n\r\n\r\nInstall:\r\n========\r\n\r\n    npm install snowball\r\n\r\nUsage:\r\n======\r\n\r\n    var Snowball = require('snowball');\r\n    var stemmer = new Snowball('English');\r\n    stemmer.setCurrent('abbreviations');\r\n    stemmer.stem();\r\n    console.log(stemmer.getCurrent());\r\n    # =\u003e 'abbrebi'\r\n\r\nNotes:\r\n======\r\nTo make porting from Java sources easier each stemmer could be validated by Regex:\r\n\r\n    [^\\.]((limit_backward)|(limit)|(cursor)|(bra)|(ket)|(setCurrent)|(getCurrent)|(in_grouping)|(in_grouping_b)|(out_grouping)|(out_grouping_b)|(in_range)|(in_range_b)|(out_range)|(out_range_b)|(eq_s)|(eq_s_b)|(find_among)|(find_among_b)|(replace_s)|(slice_check)|(slice_from)|(slice_del)|(insert)|(slice_to)|(eq_v_b))\r\n\r\nSnowball.min.js library was compressed by Google Closure Compiler:\r\n\r\n    java -jar compiler.jar --js Snowball.js --js_output_file Snowball.min.js\r\n\r\nChanges:\r\n========\r\n\r\n    0.3:\r\n        in_range, in_range_b, out_range, out_range_b functions removed from sbp(never used).\r\n    To decrease Snowball.js library size:\r\n    Among constructor validation removed.\r\n    setCurrent : function\t\t-\u003e\ts_c : function (1 match)\r\n    this.setCurrent  \t\t-\u003e\tthis.s_c (0 mathes)\t(SnowballProgram only)\r\n    sbp.setCurrent\t\t\t-\u003e\tsbp.s_c (15 mathes)\r\n    getCurrent : function\t\t-\u003e\tg_c : function (1 match)\r\n    this.getCurrent  \t\t-\u003e\tthis.g_c (0 mathes)\t(SnowballProgram only)\r\n    sbp.getCurrent\t\t\t-\u003e\tsbp.g_c (15 mathes)\r\n    in_grouping : function\t\t-\u003e\ti_g : function (1 match)\r\n    this.in_grouping \t\t-\u003e\tthis.i_g (0 mathes)\r\n    sbp.in_grouping\t\t\t-\u003e\tsbp.i_g (48 mathes)\r\n    in_grouping_b : function\t-\u003e\ti_g_b : function (1 match)\r\n    this.in_grouping_b \t\t-\u003e\tthis.i_g_b (0 mathes)\r\n    sbp.in_grouping_b\t\t-\u003e\tsbp.i_g_b (24 mathes)\r\n    out_grouping : function\t\t-\u003e\to_g : function (1 match)\r\n    this.out_grouping \t\t-\u003e\tthis.o_g (0 mathes)\r\n    sbp.out_grouping\t\t-\u003e\tsbp.o_g (28 mathes)\t\r\n    out_grouping_b : function\t-\u003e\to_g_b : function (1 match)\r\n    this.out_grouping_b \t\t-\u003e\tthis.o_g_b (0 mathes)\r\n    sbp.out_grouping_b\t\t-\u003e\tsbp.o_g_b (20 mathes)\r\n    eq_s : function\t\t\t-\u003e\te_s : function (1 match)\r\n    this.eq_s \t\t\t-\u003e\tthis.e_s (0 mathes)\r\n    sbp.eq_s\t\t\t-\u003e\tsbp.e_s (15 mathes)\r\n    eq_s_b : function\t\t-\u003e\te_s_b : function (1 match)\r\n    this.eq_s_b \t\t\t-\u003e\tthis.e_s_b (1 mathes)\r\n    sbp.eq_s_b\t\t\t-\u003e\tsbp.e_s_b (95 mathes)\r\n    find_among : function\t\t-\u003e\tf_a : function (1 match)\r\n    this.find_among \t\t-\u003e\tthis.f_a (0 mathes)\r\n    sbp.find_among\t\t\t-\u003e\tsbp.f_a (14 mathes)\r\n    find_among_b : function\t\t-\u003e\tf_a_b : function (1 match)\r\n    this.find_among_b \t\t-\u003e\tthis.f_a_b (0 mathes)\r\n    sbp.find_among_b\t\t-\u003e\tsbp.f_a_b (108 mathes)\r\n    replace_s : function\t\t-\u003e\tr_s : function (1 match)\r\n    this.replace_s\t \t\t-\u003e\tthis.r_s (2 mathes)\r\n    sbp.replace_s\t\t\t-\u003e\tsbp.r_s (0 mathes)\r\n    slice_check : function\t\t-\u003e\ts_ch : function (1 match)\r\n    this.slice_check\t \t-\u003e\tthis.s_ch (2 mathes)\r\n    sbp.slice_check\t\t\t-\u003e\tsbp.s_ch (0 mathes)\r\n    slice_from : function\t\t-\u003e\ts_f : function (1 match)\r\n    this.slice_from\t \t\t-\u003e\tthis.s_f (1 mathes)\r\n    sbp.slice_from\t\t\t-\u003e\tsbp.s_f (153 mathes)\r\n    slice_del : function\t\t-\u003e\ts_d : function (1 match)\r\n    this.slice_del\t \t\t-\u003e\tthis.s_d (0 mathes)\r\n    sbp.slice_del\t\t\t-\u003e\tsbp.s_d (204 mathes)\r\n    insert : function\t\t-\u003e\ti_ : function (1 match)\r\n    this.insert\t \t\t-\u003e\tthis.i_ (0 mathes)\r\n    sbp.insert\t\t\t-\u003e\tsbp.i_ (3 mathes)\r\n    slice_to : function\t\t-\u003e\ts_t : function (1 match)\r\n    this.slice_to\t \t\t-\u003e\tthis.s_t (0 mathes)\r\n    sbp.slice_to\t\t\t-\u003e\tsbp.s_t (2 mathes)\r\n    eq_v_b : function\t\t-\u003e\te_v_b : function (1 match)\r\n    this.eq_v_b\t \t\t-\u003e\tthis.e_v_b (0 mathes)\r\n    sbp.eq_v_b\t\t\t-\u003e\tsbp.e_v_b (2 mathes)\r\n\r\n    0.2:\r\n    Refactoring - all code with loop labels replaced by more readable equivalent,\r\n    unused variables (v_1, v_2 ... v_n) removed from all functions, \r\n    sometimes anonymous functions using as function parameter (Turkish).\r\n    To decrease Snowball.js library size:\r\n    among_var\t\t-\u003e\ta_v (308 mathes)\r\n    bra : 0\t\t\t-\u003e\tb : 0 (1 match)\r\n    this.bra \t\t-\u003e\tthis.b (7 mathes)\r\n    sbp.bra\t\t\t-\u003e\tsbp.b (195 mathes)\r\n    ket : 0\t\t\t-\u003e\tk : 0 (1 match)\r\n    this.ket \t\t-\u003e\tthis.k (7 mathes)\r\n    sbp.ket\t\t\t-\u003e\tsbp.k (178 mathes)\r\n    limit : 0\t\t-\u003e\tl : 0 (1 match)\r\n    this.limit \t\t-\u003e\tthis.l (11 mathes)\r\n    sbp.limit\t\t-\u003e\tsbp.l (400 mathes)\r\n    cursor : 0\t\t-\u003e\tc : 0 (1 match)\r\n    this.cursor \t\t-\u003e\tthis.c (44 mathes)\r\n    sbp.cursor\t\t-\u003e\tsbp.c (1093 mathes)\r\n    limit_backward : 0\t-\u003e\tlb : 0 (1 match)\r\n    this.limit_backward \t-\u003e\tthis.lb (7 mathes)\r\n    sbp.limit_backward\t-\u003e\tsbp.lb (142 mathes)\r\n    JsUnit 2.2 TestRunner(Pentium III 667 MHz, 384 Mb RAM) results:\r\n    -------------------------------------------------------------------------------------------\r\n    Running on Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 \r\n    Status: Done (2257.108 seconds)\r\n    Runs: 4846\tErrors: 0\tFailures: 0\r\n    -------------------------------------------------------------------------------------------\r\n    Running on Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.62\r\n    Status: Done (7476.318 seconds)\r\n    Runs: 4846\tErrors: 0\tFailures: 0\r\n    -------------------------------------------------------------------------------------------\r\n    Running on Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E; FDM)\r\n    Status: Done (6027.738 seconds)\r\n    Runs: 4846\t Errors: 0\tFailures: 0\r\n    -------------------------------------------------------------------------------------------\r\n\r\n    0.1:\r\n    First version. Porting from Java code with minimum changes. \r\n    Reflection for Finnish stemmer is replaced by using callback function as function parameter.\r\n    JsUnit 2.2 TestRunner(Pentium III 667 MHz, 384 Mb RAM) results:\r\n    Running on Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10\r\n    Status: Done (3458.767 seconds)\r\n    Runs: 4846\tErrors: 0\tFailures: 0\r\n    -------------------------------------------------------------------------------------------\r\n    Running on Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.62\r\n    Status: Done (7318.537 seconds)\r\n    Runs: 4846\tErrors: 0\tFailures: 0\r\n    -------------------------------------------------------------------------------------------\r\n    Running on Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E; FDM)\r\n    Status: Done (5562.278 seconds)\r\n    Runs: 4846\tErrors: 0\tFailures: 0\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortnightlabs%2Fsnowball-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffortnightlabs%2Fsnowball-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortnightlabs%2Fsnowball-js/lists"}