The Datuk corpus is a free and open Malayalam–Malayalam dictionary dataset with over 106,000 definitions for more than 83,000 Malayalam words. It is an extensively refined and semanticized version of Datuk's original digitisation work incorporating tens of thousands of changes. The majority of words and definitions are grammar tagged, and a large number of records also have additional metadata attached to them.

ഈ മലയാളം-മലയാളം പദസമുച്ഛയത്തിന് "ദതുക്" എന്ന് പേര് നല്‍കിയിട്ടുള്ളത് ശ്രീ. "ദതുക്" കെ. ജെ ജോസഫിനോടുള്ള ആദര സൂചകമായിട്ടാണ്. അദ്ദേഹമാണ് 90-കളുടെ ഒടുവില്‍ ഈ സമ്പൂർണ പദസമുച്ചയം ആസ്കിയിൽ ടൈപ്പ് ചെയ്ത് ഡിജിറ്റല്‍ രൂപത്തിലാക്കിയത്. ഈ സമുച്ചയം അദ്ദേഹത്തിന്‍റെ പ്രയത്നത്തിന്‍റെ നവീകരിച്ച രൂപമാണ്.

ദതുകിന്റെ പ്രയത്നഫലം ഒരുദശകത്തോളമായ് സംഭരിച്ച് ലഭ്യമാക്കി വരുന്ന വരമൊഴി പ്രൊജെക്ടിനോട് നന്ദി രേഖപ്പെടുത്തുന്നു.

The "Datuk" Malayalam-Malayalam dictionary corpus is named in honour of Sri. "Datuk" K Joseph, who in the late 90's single-handedly typed and compiled the entire dictionary dataset as ASCII. This corpus is an evolution of his exemplary work.

Special thanks to the Varamozhi project for retaining and making available Datuk's work for posterity.

Sample

The following sample shows 3 entries from the dataset. Missing or blank entities are represented by _

ച	ചക്രാംഗി	സം. -അംഗീ	_   36953
	നാ.	അരയന്നപ്പിട
	നാ.	ചക്രവാകപ്പിട
	നാ.	മഞ്ചട്ടി
	നാ.	കക്കടകശൃംഗി

ന	നൊങ്ങ്	_	_	44021
	നാ.	നൊങ്ക്
	നാ.	മുളച്ചുവരുന്ന തേങ്ങയ്ക്കുള്ളി ...

പ	പരോക്ഷം	_	_	57697
	നാ.	മറവ്
	നാ.	പരോക്ഷജ്ഞാനം
	നാ.	പ്രത്യക്ഷമല്ലാത്തത്

Structure

All entities are seperated by a single tab.


Alphabet	Word	Origin	  Literal	ID
		Type	Definition
		Type	Definition
		Type	Definition


അക്ഷരം		പദം	പദോൽപ്പത്തി	പദാനുപദം   നമ്പർ
		തരം	വ്യാഖ്യാനം
		തരം	വ്യാഖ്യാനം
		തരം	വ്യാഖ്യാനം

Download

The corpus is available at the Git repository github.com/knadh/datuk and is licensed under ODbL. The accompanying Python scripts and utilities are licensed under GNU GPLv3.

→ Download the ZIP (3.65 MB)

Contents

Utilities

The datuk.corpus file is a line and tab separated, human readable dataset. For computation, the corpus can be parsed easily with DatukParser.py. The utility script tosql.py generates an import ready SQL dump of the entire dataset.

DatukParser.py

# DatukParser.iterate_all()	Returns a generator to iterate through all the records in the corpus
# DatukParser.get_all()		Returns a list containing all records in the corpus

parser = DatukParser("../corpus/datuk.corpus")

for entry in parser.iterate_all():
	print(entry.id + " = " + entry.word)
	quit()

An individual entry is a namedtuple of the form:

Entry(
	letter=u'അ',
	word=u'അകമ്പ',
	root='സം. അ-കമ്പ < കമ്പ്',
	literal='',
	id='101',

	definitions = [
		Definition(type=u'വി.', definition=u'ഇളക്കമില്ലാത്ത, ഉറച്ച'),
		Definition(type=u'വി.', definition=u'കുലുക്കമില്ലാത്ത')
	]
)

tosql.py

#  tosql.py courpus_file output_file
~$ python tosql.py ../corpus/datuk.corpus ../corpus/datuk.sql

   Parsing corpus
   Compiling
   Writing
   Done. Wrote 83609 words, 100654 definitions, 148329 relations

Contributing

While the corpus has been in development and has undergone extensive refinement, it may still contain errors such as typos and misplaced and malformatted entities. You can help improve the corpus by correcting errors that you come across in datuk.corpus and committing changes to the Git repository. All contributions and submissions will be licensed under ODbL.