diff --git a/spacy/lang/ta/__init__.py b/spacy/lang/ta/__init__.py index 6938ddad8..81baaafe2 100644 --- a/spacy/lang/ta/__init__.py +++ b/spacy/lang/ta/__init__.py @@ -10,15 +10,17 @@ from ...util import update_exc # create Defaults class in the module scope (necessary for pickling!) class TamilDefaults(Language.Defaults): lex_attr_getters = dict(Language.Defaults.lex_attr_getters) - lex_attr_getters[LANG] = lambda text: 'ta' # language ISO code + lex_attr_getters[LANG] = lambda text: "ta" # language ISO code # optional: replace flags with custom functions, e.g. like_num() lex_attr_getters.update(LEX_ATTRS) + # create actual Language class class Tamil(Language): - lang = 'ta' # language ISO code - Defaults = TamilDefaults # override defaults + lang = "ta" # language ISO code + Defaults = TamilDefaults # override defaults + # set default export – this allows the language class to be lazy-loaded -__all__ = ['Tamil'] +__all__ = ["Tamil"] diff --git a/spacy/lang/ta/examples.py b/spacy/lang/ta/examples.py index cc5c60cc7..3ce3c3544 100644 --- a/spacy/lang/ta/examples.py +++ b/spacy/lang/ta/examples.py @@ -17,5 +17,5 @@ sentences = [ "ஏறத்தாழ இலங்கைத் தமிழரில் மூன்றிலொரு பங்கினர் இலங்கையை விட்டு வெளியேறிப் பிற நாடுகளில் வாழ்கின்றனர்", "இந்த ஃபோனுடன் சுமார் ரூ.2,990 மதிப்புள்ள போட் ராக்கர்ஸ் நிறுவனத்தின் ஸ்போர்ட் புளூடூத் ஹெட்போன்ஸ் இலவசமாக வழங்கப்படவுள்ளது.", "மட்டக்களப்பில் பல இடங்களில் வீட்டுத் திட்டங்களுக்கு இன்று அடிக்கல் நாட்டல்", - "ஐ போன்க்கு முகத்தை வைத்து அன்லாக் செய்யும் முறை மற்றும் விரலால் தொட்டு அன்லாக் செய்யும் முறையை வாட்ஸ் ஆப் நிறுவனம் இதற்கு முன் கண்டுபிடித்தது" + "ஐ போன்க்கு முகத்தை வைத்து அன்லாக் செய்யும் முறை மற்றும் விரலால் தொட்டு அன்லாக் செய்யும் முறையை வாட்ஸ் ஆப் நிறுவனம் இதற்கு முன் கண்டுபிடித்தது", ] diff --git a/spacy/lang/ta/lex_attrs.py b/spacy/lang/ta/lex_attrs.py index ab10a4f13..0f17a5885 100644 --- a/spacy/lang/ta/lex_attrs.py +++ b/spacy/lang/ta/lex_attrs.py @@ -3,13 +3,54 @@ from __future__ import unicode_literals from ...attrs import LIKE_NUM -_numeral_suffixes = {'பத்து': 'பது', 'ற்று': 'று', 'ரத்து':'ரம்' , 'சத்து': 'சம்'} -_num_words = ['பூச்சியம்', 'ஒரு', 'ஒன்று', 'இரண்டு', 'மூன்று', 'நான்கு', 'ஐந்து', 'ஆறு', 'ஏழு', - 'எட்டு', 'ஒன்பது', 'பத்து', 'பதினொன்று', 'பன்னிரண்டு', 'பதின்மூன்று', 'பதினான்கு', - 'பதினைந்து', 'பதினாறு', 'பதினேழு', 'பதினெட்டு', 'பத்தொன்பது', 'இருபது', - 'முப்பது', 'நாற்பது', 'ஐம்பது', 'அறுபது', 'எழுபது', 'எண்பது', 'தொண்ணூறு', - 'நூறு', 'இருநூறு', 'முன்னூறு', 'நாநூறு', 'ஐநூறு', 'அறுநூறு', 'எழுநூறு', 'எண்ணூறு', 'தொள்ளாயிரம்', - 'ஆயிரம்', 'ஒராயிரம்', 'லட்சம்', 'மில்லியன்', 'கோடி', 'பில்லியன்', 'டிரில்லியன்'] +_numeral_suffixes = {"பத்து": "பது", "ற்று": "று", "ரத்து": "ரம்", "சத்து": "சம்"} +_num_words = [ + "பூச்சியம்", + "ஒரு", + "ஒன்று", + "இரண்டு", + "மூன்று", + "நான்கு", + "ஐந்து", + "ஆறு", + "ஏழு", + "எட்டு", + "ஒன்பது", + "பத்து", + "பதினொன்று", + "பன்னிரண்டு", + "பதின்மூன்று", + "பதினான்கு", + "பதினைந்து", + "பதினாறு", + "பதினேழு", + "பதினெட்டு", + "பத்தொன்பது", + "இருபது", + "முப்பது", + "நாற்பது", + "ஐம்பது", + "அறுபது", + "எழுபது", + "எண்பது", + "தொண்ணூறு", + "நூறு", + "இருநூறு", + "முன்னூறு", + "நாநூறு", + "ஐநூறு", + "அறுநூறு", + "எழுநூறு", + "எண்ணூறு", + "தொள்ளாயிரம்", + "ஆயிரம்", + "ஒராயிரம்", + "லட்சம்", + "மில்லியன்", + "கோடி", + "பில்லியன்", + "டிரில்லியன்", +] # 20-89 ,90-899,900-99999 and above have different suffixes @@ -17,7 +58,7 @@ def suffix_filter(text): # text without numeral suffixes for num_suffix in _numeral_suffixes.keys(): length = len(num_suffix) - if (len(text) < length): + if len(text) < length: break elif text.endswith(num_suffix): return text[:-length] + _numeral_suffixes[num_suffix] @@ -25,11 +66,11 @@ def suffix_filter(text): def like_num(text): - text = text.replace(',', '').replace('.', '') + text = text.replace(",", "").replace(".", "") if text.isdigit(): return True - if text.count('/') == 1: - num, denom = text.split('/') + if text.count("/") == 1: + num, denom = text.split("/") if num.isdigit() and denom.isdigit(): return True print(suffix_filter(text)) @@ -39,6 +80,5 @@ def like_num(text): return True return False -LEX_ATTRS = { - LIKE_NUM: like_num -} + +LEX_ATTRS = {LIKE_NUM: like_num} diff --git a/spacy/lang/ta/norm_exceptions.py b/spacy/lang/ta/norm_exceptions.py index 469e78fcb..fbdceb98c 100644 --- a/spacy/lang/ta/norm_exceptions.py +++ b/spacy/lang/ta/norm_exceptions.py @@ -2,132 +2,123 @@ from __future__ import unicode_literals _exc = { - # Regional words normal # Sri Lanka - wikipeadia "இங்க": "இங்கே", "வாங்க": "வாருங்கள்", - 'ஒண்டு':'ஒன்று', - 'கண்டு': 'கன்று', - 'கொண்டு': 'கொன்று', - 'பண்டி': 'பன்றி', - 'பச்ச': 'பச்சை', - 'அம்பது': 'ஐம்பது', - 'வெச்ச': 'வைத்து', - 'வச்ச': 'வைத்து', - 'வச்சி': 'வைத்து', - 'வாளைப்பழம்':'வாழைப்பழம்', - 'மண்ணு': 'மண்', - 'பொன்னு': 'பொன்', - 'சாவல்': 'சேவல்', - 'அங்கால': 'அங்கு ', - 'அசுப்பு': 'நடமாட்டம்', - 'எழுவான் கரை': 'எழுவான்கரை', - 'ஓய்யாரம்': 'எழில் ', - 'ஒளும்பு': 'எழும்பு', - 'ஓர்மை': 'துணிவு', - 'கச்சை': 'கோவணம்', - 'கடப்பு': 'தெருவாசல்', - 'சுள்ளி': 'காய்ந்த குச்சி', - 'திறாவுதல்': 'தடவுதல்', - 'நாசமறுப்பு': 'தொல்லை', - 'பரிசாரி': 'வைத்தியன்', - 'பறவாதி': 'பேராசைக்காரன்', - 'பிசினி': 'உலோபி ', - 'விசர்': 'பைத்தியம்', - 'ஏனம்': 'பாத்திரம்', - 'ஏலா': 'இயலாது', - 'ஒசில்': 'அழகு', - 'ஒள்ளுப்பம்': 'கொஞ்சம்', - + "ஒண்டு": "ஒன்று", + "கண்டு": "கன்று", + "கொண்டு": "கொன்று", + "பண்டி": "பன்றி", + "பச்ச": "பச்சை", + "அம்பது": "ஐம்பது", + "வெச்ச": "வைத்து", + "வச்ச": "வைத்து", + "வச்சி": "வைத்து", + "வாளைப்பழம்": "வாழைப்பழம்", + "மண்ணு": "மண்", + "பொன்னு": "பொன்", + "சாவல்": "சேவல்", + "அங்கால": "அங்கு ", + "அசுப்பு": "நடமாட்டம்", + "எழுவான் கரை": "எழுவான்கரை", + "ஓய்யாரம்": "எழில் ", + "ஒளும்பு": "எழும்பு", + "ஓர்மை": "துணிவு", + "கச்சை": "கோவணம்", + "கடப்பு": "தெருவாசல்", + "சுள்ளி": "காய்ந்த குச்சி", + "திறாவுதல்": "தடவுதல்", + "நாசமறுப்பு": "தொல்லை", + "பரிசாரி": "வைத்தியன்", + "பறவாதி": "பேராசைக்காரன்", + "பிசினி": "உலோபி ", + "விசர்": "பைத்தியம்", + "ஏனம்": "பாத்திரம்", + "ஏலா": "இயலாது", + "ஒசில்": "அழகு", + "ஒள்ளுப்பம்": "கொஞ்சம்", # Srilankan and indian - 'குத்துமதிப்பு': '', - 'நூனாயம்': 'நூல்நயம்', - 'பைய': 'மெதுவாக', - 'மண்டை': 'தலை', - 'வெள்ளனே': 'சீக்கிரம்', - 'உசுப்பு': 'எழுப்பு', - 'ஆணம்': 'குழம்பு', - 'உறக்கம்': 'தூக்கம்', - 'பஸ்': 'பேருந்து', - 'களவு': 'திருட்டு ', - - #relationship - 'புருசன்': 'கணவன்', - 'பொஞ்சாதி': 'மனைவி', - 'புள்ள': 'பிள்ளை', - 'பிள்ள': 'பிள்ளை', - 'ஆம்பிளப்புள்ள': 'ஆண் பிள்ளை', - 'பொம்பிளப்புள்ள': 'பெண் பிள்ளை', - 'அண்ணாச்சி': 'அண்ணா', - 'அக்காச்சி': 'அக்கா', - 'தங்கச்சி': 'தங்கை', - - #difference words - 'பொடியன்': 'சிறுவன்', - 'பொட்டை': 'சிறுமி', - 'பிறகு': 'பின்பு', - 'டக்கென்டு': 'விரைவாக', - 'கெதியா': 'விரைவாக', - 'கிறுகி': 'திரும்பி', - 'போயித்து வாறன்': 'போய் வருகிறேன்', - 'வருவாங்களா': 'வருவார்களா', - + "குத்துமதிப்பு": "", + "நூனாயம்": "நூல்நயம்", + "பைய": "மெதுவாக", + "மண்டை": "தலை", + "வெள்ளனே": "சீக்கிரம்", + "உசுப்பு": "எழுப்பு", + "ஆணம்": "குழம்பு", + "உறக்கம்": "தூக்கம்", + "பஸ்": "பேருந்து", + "களவு": "திருட்டு ", + # relationship + "புருசன்": "கணவன்", + "பொஞ்சாதி": "மனைவி", + "புள்ள": "பிள்ளை", + "பிள்ள": "பிள்ளை", + "ஆம்பிளப்புள்ள": "ஆண் பிள்ளை", + "பொம்பிளப்புள்ள": "பெண் பிள்ளை", + "அண்ணாச்சி": "அண்ணா", + "அக்காச்சி": "அக்கா", + "தங்கச்சி": "தங்கை", + # difference words + "பொடியன்": "சிறுவன்", + "பொட்டை": "சிறுமி", + "பிறகு": "பின்பு", + "டக்கென்டு": "விரைவாக", + "கெதியா": "விரைவாக", + "கிறுகி": "திரும்பி", + "போயித்து வாறன்": "போய் வருகிறேன்", + "வருவாங்களா": "வருவார்களா", # regular spokens - 'சொல்லு': 'சொல்', - 'கேளு': 'கேள்', - 'சொல்லுங்க': 'சொல்லுங்கள்', - 'கேளுங்க': 'கேளுங்கள்', - 'நீங்கள்': 'நீ', - 'உன்': 'உன்னுடைய', - + "சொல்லு": "சொல்", + "கேளு": "கேள்", + "சொல்லுங்க": "சொல்லுங்கள்", + "கேளுங்க": "கேளுங்கள்", + "நீங்கள்": "நீ", + "உன்": "உன்னுடைய", # Portugeese formal words - 'அலவாங்கு': 'கடப்பாரை', - 'ஆசுப்பத்திரி': 'மருத்துவமனை', - 'உரோதை': 'சில்லு', - 'கடுதாசி': 'கடிதம்', - 'கதிரை': 'நாற்காலி', - 'குசினி': 'அடுக்களை', - 'கோப்பை': 'கிண்ணம்', - 'சப்பாத்து': 'காலணி', - 'தாச்சி': 'இரும்புச் சட்டி', - 'துவாய்': 'துவாலை', - 'தவறணை': 'மதுக்கடை', - 'பீப்பா': 'மரத்தாழி', - 'யன்னல்': 'சாளரம்', - 'வாங்கு': 'மரஇருக்கை', - + "அலவாங்கு": "கடப்பாரை", + "ஆசுப்பத்திரி": "மருத்துவமனை", + "உரோதை": "சில்லு", + "கடுதாசி": "கடிதம்", + "கதிரை": "நாற்காலி", + "குசினி": "அடுக்களை", + "கோப்பை": "கிண்ணம்", + "சப்பாத்து": "காலணி", + "தாச்சி": "இரும்புச் சட்டி", + "துவாய்": "துவாலை", + "தவறணை": "மதுக்கடை", + "பீப்பா": "மரத்தாழி", + "யன்னல்": "சாளரம்", + "வாங்கு": "மரஇருக்கை", # Dutch formal words - 'இறாக்கை': 'பற்சட்டம்', - 'இலாட்சி': 'இழுப்பறை', - 'கந்தோர்': 'பணிமனை', - 'நொத்தாரிசு': 'ஆவண எழுத்துபதிவாளர்', - + "இறாக்கை": "பற்சட்டம்", + "இலாட்சி": "இழுப்பறை", + "கந்தோர்": "பணிமனை", + "நொத்தாரிசு": "ஆவண எழுத்துபதிவாளர்", # English formal words - 'இஞ்சினியர்': 'பொறியியலாளர்', - 'சூப்பு': 'ரசம்', - 'செக்': 'காசோலை', - 'சேட்டு': 'மேற்ச்சட்டை', - 'மார்க்கட்டு': 'சந்தை', - 'விண்ணன்': 'கெட்டிக்காரன்', - + "இஞ்சினியர்": "பொறியியலாளர்", + "சூப்பு": "ரசம்", + "செக்": "காசோலை", + "சேட்டு": "மேற்ச்சட்டை", + "மார்க்கட்டு": "சந்தை", + "விண்ணன்": "கெட்டிக்காரன்", # Arabic formal words - 'ஈமான்': 'நம்பிக்கை', - 'சுன்னத்து': 'விருத்தசேதனம்', - 'செய்த்தான்': 'பிசாசு', - 'மவுத்து': 'இறப்பு', - 'ஹலால்': 'அங்கீகரிக்கப்பட்டது', - 'கறாம்': 'நிராகரிக்கப்பட்டது', + "ஈமான்": "நம்பிக்கை", + "சுன்னத்து": "விருத்தசேதனம்", + "செய்த்தான்": "பிசாசு", + "மவுத்து": "இறப்பு", + "ஹலால்": "அங்கீகரிக்கப்பட்டது", + "கறாம்": "நிராகரிக்கப்பட்டது", # Persian, Hindustanian and hindi formal words - 'சுமார்': 'கிட்டத்தட்ட', - 'சிப்பாய்': 'போர்வீரன்', - 'சிபார்சு': 'சிபாரிசு', - 'ஜமீன்': 'பணக்காரா்', - 'அசல்': 'மெய்யான', - 'அந்தஸ்து': 'கௌரவம்', - 'ஆஜர்': 'சமா்ப்பித்தல்', - 'உசார்': 'எச்சரிக்கை', - 'அச்சா':'நல்ல', + "சுமார்": "கிட்டத்தட்ட", + "சிப்பாய்": "போர்வீரன்", + "சிபார்சு": "சிபாரிசு", + "ஜமீன்": "பணக்காரா்", + "அசல்": "மெய்யான", + "அந்தஸ்து": "கௌரவம்", + "ஆஜர்": "சமா்ப்பித்தல்", + "உசார்": "எச்சரிக்கை", + "அச்சா": "நல்ல", # English words used in text conversations "bcoz": "ஏனெனில்", "bcuz": "ஏனெனில்", diff --git a/spacy/lang/ta/stop_words.py b/spacy/lang/ta/stop_words.py index 9cd31f683..91ebe8fd8 100644 --- a/spacy/lang/ta/stop_words.py +++ b/spacy/lang/ta/stop_words.py @@ -4,7 +4,8 @@ from __future__ import unicode_literals # Stop words -STOP_WORDS = set(""" +STOP_WORDS = set( + """ ஒரு என்று மற்றும் @@ -130,4 +131,5 @@ STOP_WORDS = set(""" வரையில் சற்று எனக் -""".split()) +""".split() +) diff --git a/spacy/util.py b/spacy/util.py index de5e85875..5508a4fd2 100644 --- a/spacy/util.py +++ b/spacy/util.py @@ -672,7 +672,7 @@ class DummyTokenizer(object): # add dummy methods for to_bytes, from_bytes, to_disk and from_disk to # allow serialization (see #1557) def to_bytes(self, **exclude): - return b'' + return b"" def from_bytes(self, _bytes_data, **exclude): return self