This is version 1.4 of Hspell, the free Hebrew spellchecker and morphology engine. You can get Hspell from: http://hspell.ivrix.org.il/ Hspell was written by Nadav Har'El and Dan Kenigsberg: nyh @ math.technion.ac.il danken @ cs.technion.ac.il Hspell is free software, released under the GNU Affero General Public License (AGPL) version 3. Note that not only the programs in the distribution, but also the dictionary files and the generated word lists, are licensed under the AGPL. There is no warranty of any kind for the contents of this distribution. See the LICENSE file for more information and the exact license terms. The rest of this README file explains Hspell's spelling standard (niqqud-less), a bit about the technology behind Hspell, how to use the "hspell" program (but see the manual page for more current information), and lists a few future directions. See the separate INSTALL file for instructions on how to install Hspell. About Hspell's spelling standard -------------------------------- Hspell was designed to be 100% and strictly compliant with the official niqqud-less spelling rules ("Ha-ktiv Khasar Ha-niqqud", colloquially known as "Ktiv Male", or "plene spelling" in English), published by the Academy of the Hebrew Language. This is both an advantage and a disadvantage, depending on your viewpoint. It's an advantage because it encourages a *correct* and consistent spelling style throughout your writing. It is a disadvantage, because a few of the Academia's official spelling decisions are relatively unknown to the general public. Users of Hspell (and all Hebrew writers, for that matter) are encouraged to read the Academia's official niqqud-less spelling rules (which are printed at the end of most modern Hebrew dictionaries), and to refer to Hebrew dictionaries which use the niqqud-less spelling (such as Millon Ha-hove or Rav Milim). We also provide in docs/niqqudless.odt a document (in Hebrew) which describes in detail Hspell's spelling standard, and why certain words are spelled the way they are. The technology behind Hspell ---------------------------- The "hspell" program itself is mostly a simple (but efficient) program that checks input words against a long list of valid words. The real "brains" behind it are the word lists (lexicon) provided by the Hspell project. In order for it to be completely free of other people's copyright restrictions, the Hspell project is a clean-room implementation, not based on other companies' word lists, on other companies' spell checkers, or on copying of printed dictionaries. The word list is also not based on automatic scanning of available Hebrew documents (such as online newspapers), because there is no way to guarantee that such a list will be correct, complete, or consistent with regard to spelling rules. Instead, our idea was to write programs which know how to correctly inflect Hebrew nouns and conjugate Hebrew verbs. The inputs to these programs are lists of noun stems and of verb roots, plus hints needed for the correct inflection when these cannot be figured out automatically. These input files are obviously an important part of the Hspell project. The "word list generators" (written in Perl, and are also part of the Hspell project) then create the complete word-list for use by the spellchecking program, hspell. The generated lists are useful for much more than spellchecking, by the way - see more on that below ("the future"). Although we wrote all of Hspell's code ourselves, we are truly indebted to the old-style "open source" pioneers - people who wrote books about the knowledge they developed, instead of hiding it in proprietary software. For the correct noun inflections, Dr. Shaul Barkali's "The Complete Noun Book" has been a great help. Prof. Uzzi Ornan's booklet "Verb Conjugation in Flow Charts" has been instrumental in the implementation of verb conjugation, and Barkali's "The Complete Verb Book" was used too. During our work we have extensively used a number of Hebrew dictionaries, including Even Shoshan, Millon Ha-hove and Rav-Milim, to ensure the correctness of certain words. Various Hebrew newspapers and books, both printed and online, were used for inspiration and for finding words we still do not recognize. We wish to thank Cilla Tuviana and Dr. Zvi Har'El for their assistance with some grammatical questions. Using hspell ------------ After unpacking the distribution and running "configure", "make" and "make install" (see the INSTALL file for more information), the hspell executable is installed (by default) in /usr/local/bin, and the dictionary files are in /usr/local/share/hspell. The "hspell" program can be used on any sort of text file containing Hebrew and potentially non-Hebrew characters which it ignores. For example, it works well on Hebrew text files, TeX/LaTeX files, and HTML. Running hspell filename Will check the spelling in filename and will output the list of incorrect words (just like the old-fashioned UNIX "spell" program did). If run without a file parameter, hspell reads from its standard input. In the current release, hspell expects ISO-8859-8-encoded files. If files using a different encoding (e.g., UTF8) are to be checked, they must be converted first to ISO-8859-8 (e.g., see iconv(1), recode(1)). If the "-c" option is given, hspell will suggest corrections for misspelled words, whenever it can find such corrections. The correction mechanism in this release is especially good at finding corrections for incorrect niqqud-less spellings, with missing or extra 'immot-qri'a. The "-l" (verbose) option will explain for each correct word why it was recognized, if Hspell was built with the "linginfo" optional feature enabled (a morphological analysis is shown, i.e., fully describe all possible ways to read the given word as an inflected word with optional prefixes). Because hspell's output (naturally) is "logical-order", it is normally useful to pipe it to bidiv or rev before viewing. For example hspell -c filename | bidiv | less Another convenient alternative is to run hspell on a BiDi-enabled terminal. Instead of using the hspell program described above, users can also use Hspell's lexicon through one of the popular multi-lingual spell-checkers, aspell and hunspell. See the INSTALL file for more information on building these dictionaries. How *you* can help ------------------ By now, Hspell is fairly mature, and its lexicon of over 24,000 base words is fairly comprehensive, similar in breadth to some printed dictionaries. Careful attention has also been given to its accuracy, and its conformance with the spelling rules of the Academy of the Hebrew Language. Nevertheless, Hspell does not, and probably never will, cover all of modern Hebrew language. Also, undoubtedly, it may contain some errors as well. If you find such omissions or errors, please let us know. Before reporting such omissions or errors, please try to verify that the word you are proposing is indeed correctly spelled: Please refer to modern dictionaries. Please also look at doc/niqqudless.odt - the word you are proposing might actually be a known mispelling which we discuss in that document.
Hspell, the free Hebrew spellchecker and morphology engine.
Overview
You might also like...
Fixes mojibake and other glitches in Unicode text, after the fact.
ftfy: fixes text for you print(fix_encoding("(ง'⌣')ง")) (ง'⌣')ง Full documentation: https://ftfy.readthedocs.org Testimonials “My life is li
The Levenshtein Python C extension module contains functions for fast computation of Levenshtein distance and string similarity
Contents Maintainer wanted Introduction Installation Documentation License History Source code Authors Maintainer wanted I am looking for a new mainta
Implementation of hashids (http://hashids.org) in Python. Compatible with Python 2 and Python 3
hashids for Python 2.7 & 3 A python port of the JavaScript hashids implementation. It generates YouTube-like hashes from one or many numbers. Use hash
A generator library for concise, unambiguous and URL-safe UUIDs.
Description shortuuid is a simple python library that generates concise, unambiguous, URL-safe UUIDs. Often, one needs to use non-sequential IDs in pl
A Python library that provides an easy way to identify devices like mobile phones, tablets and their capabilities by parsing (browser) user agent strings.
Python User Agents user_agents is a Python library that provides an easy way to identify/detect devices like mobile phones, tablets and their capabili
Format Covid values to ASCII-Table (Only for Germany and Austria)
Covid-19-Formatter (Only for Germany and Austria) Dieses Script speichert die gemeldeten Daten des RKIs / BMSGPK und formatiert diese zu einer Asci Ta
Text to ASCII and ASCII to text
Text2ASCII Description This python script (converter.py) contains two functions: encode() is used to return a list of Integer, one item per character
REST API for sentence tokenization and embedding using Multilingual Universal Sentence Encoder.
MUSE stands for Multilingual Universal Sentence Encoder - multilingual extension (supports 16 languages) of Universal Sentence Encoder (USE).
Hotpotato is a recipe portfolio App that assists users to discover and comment new recipes.
Hotpotato Hotpotato is a recipe portfolio App that assists users to discover and comment new recipes. It is a fullstack React App made with a Redux st
Comments
-
AGPL on data files
What are the implications of licensing the data files under AGPL?
If I bundle one of the dictionary data files in a different project, where it is not compiled into the project executables or transformed into binary, but instead it is merely bundled as-is (you can say it stays "in source code form"), as part of that project's distribution, does it have any effect on the license of the code files in that project?
box is a text-based visual programming language inspired by Unreal Engine Blueprint function graphs.
Box is a text-based visual programming language inspired by Unreal Engine blueprint function graphs. $ cat factorial.box ┌─ƒ(Factorial)───┐
Adventura is an open source Python Text Adventure Engine
Adventura Adventura is an open source Python Text Adventure Engine, Not yet uplo
Etranslate is a free and unlimited python library for transiting your texts
Etranslate is a free and unlimited python library for transiting your texts
Find a Doc is a free online resource aimed at helping connect the foreign community in Japan with health services in their native language.
Find a Doc - Localization Find a Doc is a free online resource aimed at helping connect the foreign community in Japan with health services in their n
py-trans is a Free Python library for translate text into different languages.
Free Python library to translate text into different languages.
Free & simple way to encipher text
VenSipher VenSipher is a free medium through which text can be enciphered. It can convert any text into an unrecognizable secret text that can only be
Markup is an online annotation tool that can be used to transform unstructured documents into structured formats for NLP and ML tasks, such as named-entity recognition. Markup learns as you annotate in order to predict and suggest complex annotations. Markup also provides integrated access to existing and custom ontologies, enabling the prediction and suggestion of ontology mappings based on the text you're annotating.
Markup is an online annotation tool that can be used to transform unstructured documents into structured formats for NLP and ML tasks, such as named-entity recognition. Markup learns as you annotate in order to predict and suggest complex annotations. Markup also provides integrated access to existing and custom ontologies, enabling the prediction and suggestion of ontology mappings based on the text you're annotating.
🐸 Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it'll tell you what it is! 🧙♀️
?? Identify anything. pyWhat easily lets you identify emails, IP addresses, and more. Feed it a .pcap file or some text and it'll tell you what it is! ??♀️
You can encode and decode base85, ascii85, base64, base32, and base16 with this tool.
You can encode and decode base85, ascii85, base64, base32, and base16 with this tool.
StealBit1.1 and earlier strings and config extraction scripts
StealBit1.1 and earlier scripts Use strings_decryptor.py to extract RC4 encrypted strings from a StealBit1.1 sample(s). Use config_extractor.py to ext