Auto-format

This commit is contained in:
Ines Montani 2019-02-07 21:00:04 +01:00
parent be1ff09403
commit 77efee0295
6 changed files with 172 additions and 137 deletions

View File

@ -10,15 +10,17 @@ from ...util import update_exc
# create Defaults class in the module scope (necessary for pickling!) # create Defaults class in the module scope (necessary for pickling!)
class TamilDefaults(Language.Defaults): class TamilDefaults(Language.Defaults):
lex_attr_getters = dict(Language.Defaults.lex_attr_getters) 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() # optional: replace flags with custom functions, e.g. like_num()
lex_attr_getters.update(LEX_ATTRS) lex_attr_getters.update(LEX_ATTRS)
# create actual Language class # create actual Language class
class Tamil(Language): class Tamil(Language):
lang = 'ta' # language ISO code lang = "ta" # language ISO code
Defaults = TamilDefaults # override defaults Defaults = TamilDefaults # override defaults
# set default export this allows the language class to be lazy-loaded # set default export this allows the language class to be lazy-loaded
__all__ = ['Tamil'] __all__ = ["Tamil"]

View File

@ -17,5 +17,5 @@ sentences = [
"ஏறத்தாழ இலங்கைத் தமிழரில் மூன்றிலொரு பங்கினர் இலங்கையை விட்டு வெளியேறிப் பிற நாடுகளில் வாழ்கின்றனர்", "ஏறத்தாழ இலங்கைத் தமிழரில் மூன்றிலொரு பங்கினர் இலங்கையை விட்டு வெளியேறிப் பிற நாடுகளில் வாழ்கின்றனர்",
"இந்த ஃபோனுடன் சுமார் ரூ.2,990 மதிப்புள்ள போட் ராக்கர்ஸ் நிறுவனத்தின் ஸ்போர்ட் புளூடூத் ஹெட்போன்ஸ் இலவசமாக வழங்கப்படவுள்ளது.", "இந்த ஃபோனுடன் சுமார் ரூ.2,990 மதிப்புள்ள போட் ராக்கர்ஸ் நிறுவனத்தின் ஸ்போர்ட் புளூடூத் ஹெட்போன்ஸ் இலவசமாக வழங்கப்படவுள்ளது.",
"மட்டக்களப்பில் பல இடங்களில் வீட்டுத் திட்டங்களுக்கு இன்று அடிக்கல் நாட்டல்", "மட்டக்களப்பில் பல இடங்களில் வீட்டுத் திட்டங்களுக்கு இன்று அடிக்கல் நாட்டல்",
"ஐ போன்க்கு முகத்தை வைத்து அன்லாக் செய்யும் முறை மற்றும் விரலால் தொட்டு அன்லாக் செய்யும் முறையை வாட்ஸ் ஆப் நிறுவனம் இதற்கு முன் கண்டுபிடித்தது" "ஐ போன்க்கு முகத்தை வைத்து அன்லாக் செய்யும் முறை மற்றும் விரலால் தொட்டு அன்லாக் செய்யும் முறையை வாட்ஸ் ஆப் நிறுவனம் இதற்கு முன் கண்டுபிடித்தது",
] ]

View File

@ -3,13 +3,54 @@ from __future__ import unicode_literals
from ...attrs import LIKE_NUM from ...attrs import LIKE_NUM
_numeral_suffixes = {'பத்து': 'பது', 'ற்று': 'று', 'ரத்து':'ரம்' , 'சத்து': 'சம்'} _numeral_suffixes = {"பத்து": "பது", "ற்று": "று", "ரத்து": "ரம்", "சத்து": "சம்"}
_num_words = ['பூச்சியம்', 'ஒரு', 'ஒன்று', 'இரண்டு', 'மூன்று', 'நான்கு', 'ஐந்து', 'ஆறு', 'ஏழு', _num_words = [
'எட்டு', 'ஒன்பது', 'பத்து', 'பதினொன்று', 'பன்னிரண்டு', 'பதின்மூன்று', 'பதினான்கு', "பூச்சியம்",
'பதினைந்து', 'பதினாறு', 'பதினேழு', 'பதினெட்டு', 'பத்தொன்பது', 'இருபது', "ஒரு",
'முப்பது', 'நாற்பது', 'ஐம்பது', 'அறுபது', 'எழுபது', 'எண்பது', 'தொண்ணூறு', "ஒன்று",
'நூறு', 'இருநூறு', 'முன்னூறு', 'நாநூறு', 'ஐநூறு', 'அறுநூறு', 'எழுநூறு', 'எண்ணூறு', 'தொள்ளாயிரம்', "இரண்டு",
'ஆயிரம்', 'ஒராயிரம்', 'லட்சம்', 'மில்லியன்', 'கோடி', 'பில்லியன்', 'டிரில்லியன்'] "மூன்று",
"நான்கு",
"ஐந்து",
"ஆறு",
"ஏழு",
"எட்டு",
"ஒன்பது",
"பத்து",
"பதினொன்று",
"பன்னிரண்டு",
"பதின்மூன்று",
"பதினான்கு",
"பதினைந்து",
"பதினாறு",
"பதினேழு",
"பதினெட்டு",
"பத்தொன்பது",
"இருபது",
"முப்பது",
"நாற்பது",
"ஐம்பது",
"அறுபது",
"எழுபது",
"எண்பது",
"தொண்ணூறு",
"நூறு",
"இருநூறு",
"முன்னூறு",
"நாநூறு",
"ஐநூறு",
"அறுநூறு",
"எழுநூறு",
"எண்ணூறு",
"தொள்ளாயிரம்",
"ஆயிரம்",
"ஒராயிரம்",
"லட்சம்",
"மில்லியன்",
"கோடி",
"பில்லியன்",
"டிரில்லியன்",
]
# 20-89 ,90-899,900-99999 and above have different suffixes # 20-89 ,90-899,900-99999 and above have different suffixes
@ -17,7 +58,7 @@ def suffix_filter(text):
# text without numeral suffixes # text without numeral suffixes
for num_suffix in _numeral_suffixes.keys(): for num_suffix in _numeral_suffixes.keys():
length = len(num_suffix) length = len(num_suffix)
if (len(text) < length): if len(text) < length:
break break
elif text.endswith(num_suffix): elif text.endswith(num_suffix):
return text[:-length] + _numeral_suffixes[num_suffix] return text[:-length] + _numeral_suffixes[num_suffix]
@ -25,11 +66,11 @@ def suffix_filter(text):
def like_num(text): def like_num(text):
text = text.replace(',', '').replace('.', '') text = text.replace(",", "").replace(".", "")
if text.isdigit(): if text.isdigit():
return True return True
if text.count('/') == 1: if text.count("/") == 1:
num, denom = text.split('/') num, denom = text.split("/")
if num.isdigit() and denom.isdigit(): if num.isdigit() and denom.isdigit():
return True return True
print(suffix_filter(text)) print(suffix_filter(text))
@ -39,6 +80,5 @@ def like_num(text):
return True return True
return False return False
LEX_ATTRS = {
LIKE_NUM: like_num LEX_ATTRS = {LIKE_NUM: like_num}
}

View File

@ -2,132 +2,123 @@
from __future__ import unicode_literals from __future__ import unicode_literals
_exc = { _exc = {
# Regional words normal # Regional words normal
# Sri Lanka - wikipeadia # Sri Lanka - wikipeadia
"இங்க": "இங்கே", "இங்க": "இங்கே",
"வாங்க": "வாருங்கள்", "வாங்க": "வாருங்கள்",
'ஒண்டு':'ஒன்று', "ஒண்டு": "ஒன்று",
'கண்டு': 'கன்று', "கண்டு": "கன்று",
'கொண்டு': 'கொன்று', "கொண்டு": "கொன்று",
'பண்டி': 'பன்றி', "பண்டி": "பன்றி",
'பச்ச': 'பச்சை', "பச்ச": "பச்சை",
'அம்பது': 'ஐம்பது', "அம்பது": "ஐம்பது",
'வெச்ச': 'வைத்து', "வெச்ச": "வைத்து",
'வச்ச': 'வைத்து', "வச்ச": "வைத்து",
'வச்சி': 'வைத்து', "வச்சி": "வைத்து",
'வாளைப்பழம்':'வாழைப்பழம்', "வாளைப்பழம்": "வாழைப்பழம்",
'மண்ணு': 'மண்', "மண்ணு": "மண்",
'பொன்னு': 'பொன்', "பொன்னு": "பொன்",
'சாவல்': 'சேவல்', "சாவல்": "சேவல்",
'அங்கால': 'அங்கு ', "அங்கால": "அங்கு ",
'அசுப்பு': 'நடமாட்டம்', "அசுப்பு": "நடமாட்டம்",
'எழுவான் கரை': 'எழுவான்கரை', "எழுவான் கரை": "எழுவான்கரை",
'ஓய்யாரம்': 'எழில் ', "ஓய்யாரம்": "எழில் ",
'ஒளும்பு': 'எழும்பு', "ஒளும்பு": "எழும்பு",
'ஓர்மை': 'துணிவு', "ஓர்மை": "துணிவு",
'கச்சை': 'கோவணம்', "கச்சை": "கோவணம்",
'கடப்பு': 'தெருவாசல்', "கடப்பு": "தெருவாசல்",
'சுள்ளி': 'காய்ந்த குச்சி', "சுள்ளி": "காய்ந்த குச்சி",
'திறாவுதல்': 'தடவுதல்', "திறாவுதல்": "தடவுதல்",
'நாசமறுப்பு': 'தொல்லை', "நாசமறுப்பு": "தொல்லை",
'பரிசாரி': 'வைத்தியன்', "பரிசாரி": "வைத்தியன்",
'பறவாதி': 'பேராசைக்காரன்', "பறவாதி": "பேராசைக்காரன்",
'பிசினி': 'உலோபி ', "பிசினி": "உலோபி ",
'விசர்': 'பைத்தியம்', "விசர்": "பைத்தியம்",
'ஏனம்': 'பாத்திரம்', "ஏனம்": "பாத்திரம்",
'ஏலா': 'இயலாது', "ஏலா": "இயலாது",
'ஒசில்': 'அழகு', "ஒசில்": "அழகு",
'ஒள்ளுப்பம்': 'கொஞ்சம்', "ஒள்ளுப்பம்": "கொஞ்சம்",
# Srilankan and indian # Srilankan and indian
'குத்துமதிப்பு': '', "குத்துமதிப்பு": "",
'நூனாயம்': 'நூல்நயம்', "நூனாயம்": "நூல்நயம்",
'பைய': 'மெதுவாக', "பைய": "மெதுவாக",
'மண்டை': 'தலை', "மண்டை": "தலை",
'வெள்ளனே': 'சீக்கிரம்', "வெள்ளனே": "சீக்கிரம்",
'உசுப்பு': 'எழுப்பு', "உசுப்பு": "எழுப்பு",
'ஆணம்': 'குழம்பு', "ஆணம்": "குழம்பு",
'உறக்கம்': 'தூக்கம்', "உறக்கம்": "தூக்கம்",
'பஸ்': 'பேருந்து', "பஸ்": "பேருந்து",
'களவு': 'திருட்டு ', "களவு": "திருட்டு ",
# relationship # relationship
'புருசன்': 'கணவன்', "புருசன்": "கணவன்",
'பொஞ்சாதி': 'மனைவி', "பொஞ்சாதி": "மனைவி",
'புள்ள': 'பிள்ளை', "புள்ள": "பிள்ளை",
'பிள்ள': 'பிள்ளை', "பிள்ள": "பிள்ளை",
'ஆம்பிளப்புள்ள': 'ஆண் பிள்ளை', "ஆம்பிளப்புள்ள": "ஆண் பிள்ளை",
'பொம்பிளப்புள்ள': 'பெண் பிள்ளை', "பொம்பிளப்புள்ள": "பெண் பிள்ளை",
'அண்ணாச்சி': 'அண்ணா', "அண்ணாச்சி": "அண்ணா",
'அக்காச்சி': 'அக்கா', "அக்காச்சி": "அக்கா",
'தங்கச்சி': 'தங்கை', "தங்கச்சி": "தங்கை",
# difference words # difference words
'பொடியன்': 'சிறுவன்', "பொடியன்": "சிறுவன்",
'பொட்டை': 'சிறுமி', "பொட்டை": "சிறுமி",
'பிறகு': 'பின்பு', "பிறகு": "பின்பு",
'டக்கென்டு': 'விரைவாக', "டக்கென்டு": "விரைவாக",
'கெதியா': 'விரைவாக', "கெதியா": "விரைவாக",
'கிறுகி': 'திரும்பி', "கிறுகி": "திரும்பி",
'போயித்து வாறன்': 'போய் வருகிறேன்', "போயித்து வாறன்": "போய் வருகிறேன்",
'வருவாங்களா': 'வருவார்களா', "வருவாங்களா": "வருவார்களா",
# regular spokens # regular spokens
'சொல்லு': 'சொல்', "சொல்லு": "சொல்",
'கேளு': 'கேள்', "கேளு": "கேள்",
'சொல்லுங்க': 'சொல்லுங்கள்', "சொல்லுங்க": "சொல்லுங்கள்",
'கேளுங்க': 'கேளுங்கள்', "கேளுங்க": "கேளுங்கள்",
'நீங்கள்': 'நீ', "நீங்கள்": "நீ",
'உன்': 'உன்னுடைய', "உன்": "உன்னுடைய",
# Portugeese formal words # Portugeese formal words
'அலவாங்கு': 'கடப்பாரை', "அலவாங்கு": "கடப்பாரை",
'ஆசுப்பத்திரி': 'மருத்துவமனை', "ஆசுப்பத்திரி": "மருத்துவமனை",
'உரோதை': 'சில்லு', "உரோதை": "சில்லு",
'கடுதாசி': 'கடிதம்', "கடுதாசி": "கடிதம்",
'கதிரை': 'நாற்காலி', "கதிரை": "நாற்காலி",
'குசினி': 'அடுக்களை', "குசினி": "அடுக்களை",
'கோப்பை': 'கிண்ணம்', "கோப்பை": "கிண்ணம்",
'சப்பாத்து': 'காலணி', "சப்பாத்து": "காலணி",
'தாச்சி': 'இரும்புச் சட்டி', "தாச்சி": "இரும்புச் சட்டி",
'துவாய்': 'துவாலை', "துவாய்": "துவாலை",
'தவறணை': 'மதுக்கடை', "தவறணை": "மதுக்கடை",
'பீப்பா': 'மரத்தாழி', "பீப்பா": "மரத்தாழி",
'யன்னல்': 'சாளரம்', "யன்னல்": "சாளரம்",
'வாங்கு': 'மரஇருக்கை', "வாங்கு": "மரஇருக்கை",
# Dutch formal words # Dutch formal words
'இறாக்கை': 'பற்சட்டம்', "இறாக்கை": "பற்சட்டம்",
'இலாட்சி': 'இழுப்பறை', "இலாட்சி": "இழுப்பறை",
'கந்தோர்': 'பணிமனை', "கந்தோர்": "பணிமனை",
'நொத்தாரிசு': 'ஆவண எழுத்துபதிவாளர்', "நொத்தாரிசு": "ஆவண எழுத்துபதிவாளர்",
# English formal words # English formal words
'இஞ்சினியர்': 'பொறியியலாளர்', "இஞ்சினியர்": "பொறியியலாளர்",
'சூப்பு': 'ரசம்', "சூப்பு": "ரசம்",
'செக்': 'காசோலை', "செக்": "காசோலை",
'சேட்டு': 'மேற்ச்சட்டை', "சேட்டு": "மேற்ச்சட்டை",
'மார்க்கட்டு': 'சந்தை', "மார்க்கட்டு": "சந்தை",
'விண்ணன்': 'கெட்டிக்காரன்', "விண்ணன்": "கெட்டிக்காரன்",
# Arabic formal words # Arabic formal words
'ஈமான்': 'நம்பிக்கை', "ஈமான்": "நம்பிக்கை",
'சுன்னத்து': 'விருத்தசேதனம்', "சுன்னத்து": "விருத்தசேதனம்",
'செய்த்தான்': 'பிசாசு', "செய்த்தான்": "பிசாசு",
'மவுத்து': 'இறப்பு', "மவுத்து": "இறப்பு",
'ஹலால்': 'அங்கீகரிக்கப்பட்டது', "ஹலால்": "அங்கீகரிக்கப்பட்டது",
'கறாம்': 'நிராகரிக்கப்பட்டது', "கறாம்": "நிராகரிக்கப்பட்டது",
# Persian, Hindustanian and hindi formal words # Persian, Hindustanian and hindi formal words
'சுமார்': 'கிட்டத்தட்ட', "சுமார்": "கிட்டத்தட்ட",
'சிப்பாய்': 'போர்வீரன்', "சிப்பாய்": "போர்வீரன்",
'சிபார்சு': 'சிபாரிசு', "சிபார்சு": "சிபாரிசு",
'ஜமீன்': 'பணக்காரா்', "ஜமீன்": "பணக்காரா்",
'அசல்': 'மெய்யான', "அசல்": "மெய்யான",
'அந்தஸ்து': 'கௌரவம்', "அந்தஸ்து": "கௌரவம்",
'ஆஜர்': 'சமா்ப்பித்தல்', "ஆஜர்": "சமா்ப்பித்தல்",
'உசார்': 'எச்சரிக்கை', "உசார்": "எச்சரிக்கை",
'அச்சா':'நல்ல', "அச்சா": "நல்ல",
# English words used in text conversations # English words used in text conversations
"bcoz": "ஏனெனில்", "bcoz": "ஏனெனில்",
"bcuz": "ஏனெனில்", "bcuz": "ஏனெனில்",

View File

@ -4,7 +4,8 @@ from __future__ import unicode_literals
# Stop words # Stop words
STOP_WORDS = set(""" STOP_WORDS = set(
"""
ஒர ஒர
என என
மற மற
@ -130,4 +131,5 @@ STOP_WORDS = set("""
வரி வரி
சற சற
எனக எனக
""".split()) """.split()
)

View File

@ -672,7 +672,7 @@ class DummyTokenizer(object):
# add dummy methods for to_bytes, from_bytes, to_disk and from_disk to # add dummy methods for to_bytes, from_bytes, to_disk and from_disk to
# allow serialization (see #1557) # allow serialization (see #1557)
def to_bytes(self, **exclude): def to_bytes(self, **exclude):
return b'' return b""
def from_bytes(self, _bytes_data, **exclude): def from_bytes(self, _bytes_data, **exclude):
return self return self