{"id":17549826,"url":"https://github.com/raypereda/stemmify","last_synced_at":"2025-08-20T04:32:22.053Z","repository":{"id":59156470,"uuid":"2662368","full_name":"raypereda/stemmify","owner":"raypereda","description":"Ruby module that converts a word to its approximate root form with the Porter stemmer. For example, observing and observation reduce to observ.","archived":false,"fork":false,"pushed_at":"2022-08-13T16:05:38.000Z","size":234,"stargazers_count":59,"open_issues_count":1,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-09T21:36:26.545Z","etag":null,"topics":["porter-stemmer-algorithm","ruby","stemmer"],"latest_commit_sha":null,"homepage":"http://tartarus.org/martin/PorterStemmer/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raypereda.png","metadata":{"files":{"readme":"README.rdoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-10-28T01:06:53.000Z","updated_at":"2024-10-06T03:24:46.000Z","dependencies_parsed_at":"2022-09-13T20:11:21.035Z","dependency_job_id":null,"html_url":"https://github.com/raypereda/stemmify","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/raypereda%2Fstemmify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raypereda%2Fstemmify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raypereda%2Fstemmify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raypereda%2Fstemmify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raypereda","download_url":"https://codeload.github.com/raypereda/stemmify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230394228,"owners_count":18218707,"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":["porter-stemmer-algorithm","ruby","stemmer"],"created_at":"2024-10-21T03:04:39.258Z","updated_at":"2024-12-19T07:06:35.696Z","avatar_url":"https://github.com/raypereda.png","language":"Ruby","readme":"= Stemmify\n\n== Description\nThis is a Rails gem for reducing words to their roots. For example, all the\nfollowing words to are stemmed to \"observ\", which is not a real word\nin this case:\n\tobservance\n\tobservances\n\tobservancy\n\tobservant\n\tobservants\n\tobservation\n\tobserve\n\tobserved\n\tobserver\n\tobservers\n\tobserving\n\nThe algorithm used here is based on the Porter stemmer.\nYou can read more about Martin Porter's stemmer at\n\nhttp://tartarus.org/~martin/PorterStemmer/\n\nMartin Porter explains:\n\n\tThe Porter stemming algorithm (or ‘Porter stemmer’) is a process for removing\n\tthe commoner morphological and inflexional endings from words in English. Its\n\tmain use is as part of a term normalisation process that is usually done when\n\tsetting up Information Retrieval systems.\n\n== Install\n\n  $ sudo gem install stemmify\nor\n  $ gem install stemmify\n\nNote that while the source code is hosted on {github}[https://github.com/raypereda/stemmify],\nthe actual gem is hosted on {RubyGem.org}[https://rubygems.org/gems/stemmify].\n\n== Usage\n\nLet's say you are building some sort of search tool. You want\nsearches for \"observations\" and \"observer\" to all bring up\nthe same items. When you are building you index, you can\nmap all the words to their roots using the stem method.\n\nHere's an example usage:\n\n  require 'stemmify'\n  print(\"observations\".stem) # ==\u003e \"observ\"\n\nYou can use \u003ctt\u003estemmify\u003c/tt\u003e as a command line tool:\n  $ stem input_file.txt\n  $ printf \"I\\nwalked\\nin\\nthe\\nforest\\n.\\n\" | stem\n\nBoth the file based input and the input taken from the stdin should be tokenized,\ni.e. provide one token per line, tokens should be delimeted e.g. by a new line feed.\n\nFor tokenization consider using a tokenizer, for instance the\n{tokenizer}[https://rubygems.org/gems/tokenizer] gem.\n\n== Test Suite\n\nThis test is based on the sample input and output text from Martin Porter\nwebsite. It includes 23532 test words and their expected stem results.\nTo run the test, just type\n\n  rake test\n\n== Thanks\n\nDave Thomas from http://pragprog.com made speed improvements to this code\nbefore it was packaged as a gem.\n\n== License\n\nCopyright (c) 2011 Ray Pereda\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraypereda%2Fstemmify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraypereda%2Fstemmify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraypereda%2Fstemmify/lists"}