{"id":28458774,"url":"https://github.com/openmined/syfertext","last_synced_at":"2025-07-02T09:31:48.993Z","repository":{"id":51120843,"uuid":"216058260","full_name":"OpenMined/SyferText","owner":"OpenMined","description":"A privacy preserving NLP framework","archived":false,"fork":false,"pushed_at":"2023-05-14T12:06:15.000Z","size":1367,"stargazers_count":198,"open_issues_count":2,"forks_count":49,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-06-07T00:40:04.390Z","etag":null,"topics":["encrypted-computation","federated-learning","hacktoberfest","hacktoberfest2020","natural-language-processing","nlp","python","secure-multiparty-computation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenMined.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"openmined","open_collective":"openmined"}},"created_at":"2019-10-18T15:48:47.000Z","updated_at":"2025-05-10T23:33:17.000Z","dependencies_parsed_at":"2022-09-01T04:10:16.323Z","dependency_job_id":null,"html_url":"https://github.com/OpenMined/SyferText","commit_stats":{"total_commits":371,"total_committers":24,"mean_commits":"15.458333333333334","dds":0.4716981132075472,"last_synced_commit":"1e9a6c1fbbe31d1b20e852242bf2f9ab9bcc1ce6"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenMined/SyferText","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyferText","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyferText/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyferText/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyferText/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenMined","download_url":"https://codeload.github.com/OpenMined/SyferText/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyferText/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263111472,"owners_count":23415464,"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":["encrypted-computation","federated-learning","hacktoberfest","hacktoberfest2020","natural-language-processing","nlp","python","secure-multiparty-computation"],"created_at":"2025-06-07T00:39:46.009Z","updated_at":"2025-07-02T09:31:48.985Z","avatar_url":"https://github.com/OpenMined.png","language":"Python","funding_links":["https://github.com/sponsors/openmined","https://opencollective.com/openmined"],"categories":[],"sub_categories":[],"readme":"\u003cimg src='./art/syfertext_logo_horizontal.png'\u003e\n\n![CI](https://github.com/OpenMined/SyferText/workflows/CI/badge.svg)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n\n[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-)\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n## SyferText\n\nSyferText is a library for privacy preserving Natural Language Processing in Python. It leverages PySyft to perform Federated Learning and Encrypted Computations (\n[Multi-Party Computation (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation) on text data. The two main usage scenarios of SyferText are:\n\n- :fire: **Secure plaintext pre-processing:** Enables pre-processing of  text located on a remote machine without breaking data privacy.\n- :rocket: **Secure pipeline deploy:** Starting from version 0.1.0, SyferText will be able to bundle a complete pipeline composed of pre-processing components and trained PySyft models and to securely deploy it to PyGrid.\n\nTo get a more detailed introduction about SyferText, watch :movie_camera: [OpenMined AMA with Alan Aboudib](https://youtu.be/gtwOPxxJ5F4)  available on YouTube.\n\n\n## Installation\n\nYou can install SyferText by directly cloning this repo:\n\n```\n$ git clone https://github.com/OpenMined/SyferText.git\n$ cd SyferText\n$ python setup.py install\n```\n\nThat's it, you are good to go!\n\n## Getting Started\n\nSyferText can be used to work with datasets residing on a local machine (or a local worker as we call it in [PySyft](https://github.com/OpenMined/PySyft)), as well as with private datasets on remote workers. Here is a list of tutorials that you can follow to get more familiar with SyferText:\n\n\n\nMore tutorials are coming soon. Stay tuned!\n\n## Our Team\n\nSyferText is created and maintained by the NLP team at OpenMined and by volunteer contributors from all around the world. Here are the current members of the core NLP team. The team is growing!\n\n\u003cbr\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://twitter.com/alan_aboudib\"\u003e\n        \u003cimg src=\"https://avatars1.githubusercontent.com/u/11991643?s=240\" width=\"170px;\" alt=\"Alan Aboudib avatar\"\u003e\n        \u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlan Aboudib\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003csub\u003eTeam Lead / Author\u003c/sub\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/Nilanshrajput\"\u003e\n        \u003cimg src=\"https://avatars0.githubusercontent.com/u/28673745?s=400\u0026u=4573311779fc3cc924670e3e02108e35350c1f25\u0026v=4\"  width=\"170px;\" alt=\"Nilansh Rajput avatar\"\u003e\n        \u003cbr /\u003e\u003csub\u003e\u003cb\u003eNilansh Rajput\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003csub\u003eOM NLP team / Core Dev\u003c/sub\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/bicycleman15\"\u003e\n        \u003cimg src=\"https://avatars0.githubusercontent.com/u/47978882?s=400\u0026u=521e48efe1a9a652f4449f64278b690aa27dfe03\u0026v=4\"  width=\"170px;\" alt=\"Jatin Prakash avatar\"\u003e\n        \u003cbr /\u003e\u003csub\u003e\u003cb\u003eJatin Prakash\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003csub\u003eOM NLP team / Core Dev\u003c/sub\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/ramesht007\"\u003e\n        \u003cimg src=\"https://avatars2.githubusercontent.com/u/36106177?s=400\u0026u=09a9cee652a005ef6f4aed14844c659b56dfcdc7\u0026v=4\" width=\"170px; alt=\"Ramesht Shukla avatar\"\u003e\n        \u003cbr /\u003e\u003csub\u003e\u003cb\u003eRamesht Shukla\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003csub\u003eOM NLP Team / Core Dev\u003c/sub\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/hershd23\"\u003e\n        \u003cimg src=\"https://avatars2.githubusercontent.com/u/37028207?s=400\u0026u=8c65da7f84be079e42448fd60bc7f92c01055f5b\u0026v=4\" width=\"170px;\" alt=\"Hersh Dhillon avatar\"\u003e\n        \u003cbr /\u003e\u003csub\u003e\u003cb\u003eHersh Dhillon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\n        \u003csub\u003eOM NLP team / Core Dev\u003c/sub\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003cbr\u003e\n\n[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/0)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/0)[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/1)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/1)[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/2)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/2)[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/3)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/3)[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/4)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/4)[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/5)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/5)[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/6)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/6)[![](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/images/7)](https://sourcerer.io/fame/Nilanshrajput/Nilanshrajput/SyferText/links/7)\n\n## Events\n\n- **(October 26th, 2019)** [DevFest2019, Reading, UK](https://www.meetup.com/GDG-Reading-Thames-Valley/events/262918960/).\n\nDemo on remote blind tokenization with SyferText.\n\n\n- **(March 19th, 2020)** [GDG Meetup, Reading, UK](https://www.meetup.com/GDG-Reading-Thames-Valley/events/268137223/). *(Cancelled due to COVID-19)*\n\nDemo on sentiment analysis with SyferText on multiple private datasets.\n\n\n- **(May 13th, 2020)**: [OpenMined AMA](https://www.youtube.com/channel/UCzoUqDE_OzYo6lGXtsEbOxQ). *(Cancelled due to COVID-19)*\n\n\n- **(June 17th, 2020)**: [OpenMined AMA](https://www.youtube.com/watch?v=gtwOPxxJ5F4\u0026t=2907s).\n\nSyferText vision and encrypted sentiment analyzer demo.\n\n\n- **(June 18th, 2020)**: [The Federated Learning Conference](https://federatedlearningconference.com/index.php/schedule-2/schedule-3).\n\nIntroduction to SyferText.\n\n- **(July 8th, 2020)**: [OpenMined Paris Meetup](https://www.youtube.com/watch?v=KrjyfZDERsI\u0026t=5040s).\n\nSyferText vision and encrypted sentiment analyzer demo.\n\n\n- **(July 29th, 2020)**: [MLH Fellowship Talk](https://www.youtube.com/watch?v=F36Mak1hdlo).\n\nAbout SyferText and my Open Source Contribution Experience with OpenMined\n\n\n## News\n\nTo get news about feature and tutorial relseases:\n\nAlan Aboudib: [@twitter](https://twitter.com/alan_aboudib)\n\nand join [#lib_syfertext](https://openmined.slack.com/archives/CUWDZMED9) channel on slack.\n\n\n## Support\nTo get support in using this library, please join the **#lib_syfertext** Slack channel. If you’d like to follow along with any code changes to the library, please join the **#code_syfertext** Slack channel. [Click here to join our Slack community!](https://slack.openmined.org)\n\n\n## Contact Us\n\nYou can reach out to us by contacting Alan on one of the following channels:\n\n [LinkedIn](https://www.linkedin.com/in/ala-aboudib/) | [Slack](https://app.slack.com/client/T6963A864/DDKH3SXKL/user_profile/UDKH3SH8S) | [Twitter](https://twitter.com/alan_aboudib)\n\n\n## License\n[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmined%2Fsyfertext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmined%2Fsyfertext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmined%2Fsyfertext/lists"}