diff --git a/spacy/lang/en/stop_words.py b/spacy/lang/en/stop_words.py index aae3e5e01..3505b13bf 100644 --- a/spacy/lang/en/stop_words.py +++ b/spacy/lang/en/stop_words.py @@ -39,7 +39,7 @@ made make many may me meanwhile might mine more moreover most mostly move much must my myself name namely neither never nevertheless next nine no nobody none noone nor not -nothing now nowhere +nothing now nowhere of off often on once one only onto or other others otherwise our ours ourselves out over own @@ -75,4 +75,3 @@ STOP_WORDS.update(contractions) for apostrophe in ["‘", "’"]: for stopword in contractions: STOP_WORDS.add(stopword.replace("'", apostrophe)) - diff --git a/spacy/lang/id/tag_map.py b/spacy/lang/id/tag_map.py index eef1342d0..16391a840 100644 --- a/spacy/lang/id/tag_map.py +++ b/spacy/lang/id/tag_map.py @@ -7,88 +7,89 @@ from ...symbols import NOUN, PRON, AUX, SCONJ, INTJ, PART, PROPN # POS explanations for indonesian available from https://www.aclweb.org/anthology/Y12-1014 TAG_MAP = { - "NSD": {POS: NOUN}, - "Z--": {POS: PUNCT}, - "VSA": {POS: VERB}, - "CC-": {POS: NUM}, - "R--": {POS: ADP}, - "D--": {POS: ADV}, - "ASP": {POS: ADJ}, - "S--": {POS: SCONJ}, - "VSP": {POS: VERB}, - "H--": {POS: CCONJ}, - "F--": {POS: X}, - "B--": {POS: DET}, - "CO-": {POS: NUM}, - "G--": {POS: ADV}, - "PS3": {POS: PRON}, - "W--": {POS: ADV}, - "O--": {POS: AUX}, - "PP1": {POS: PRON}, - "ASS": {POS: ADJ}, - "PS1": {POS: PRON}, - "APP": {POS: ADJ}, - "CD-": {POS: NUM}, - "VPA": {POS: VERB}, - "VPP": {POS: VERB}, - "X--": {POS: X}, - "CO-+PS3": {POS: NUM}, - "NSD+PS3": {POS: NOUN}, - "ASP+PS3": {POS: ADJ}, - "M--": {POS: AUX}, - "VSA+PS3": {POS: VERB}, - "R--+PS3": {POS: ADP}, - "W--+T--": {POS: ADV}, - "PS2": {POS:PRON}, - "NSD+PS1": {POS:NOUN}, - "PP3": {POS: PRON}, - "VSA+T--": {POS: VERB}, - "D--+T--": {POS: ADV}, - "VSP+PS3": {POS: VERB}, - "F--+PS3": {POS: X}, - "M--+T--": {POS: AUX}, - "F--+T--": {POS: X}, - "PUNCT": {POS: PUNCT}, - "PROPN": {POS: PROPN}, - "I--": {POS: INTJ}, - "S--+PS3": {POS: SCONJ}, - "ASP+T--": {POS: ADJ}, - "CC-+PS3": {POS: NUM}, - "NSD+PS2": {POS: NOUN}, - "B--+T--": {POS: DET}, - "H--+T--": {POS: CCONJ}, - "VSA+PS2": {POS: VERB}, - "NSF": {POS: NOUN}, - "PS1+VSA": {POS: PRON}, - "NPD": {POS: NOUN}, - "PP2": {POS:PRON}, - "VSA+PS1": {POS: VERB}, - "T--": {POS: PART}, - "NSM": {POS: NOUN}, - "NUM": {POS: NUM}, - "ASP+PS2": {POS: ADJ}, - "G--+T--": {POS: PART}, - "D--+PS3": {POS: ADV}, - "R--+PS2": {POS: ADP}, - "NSM+PS3": {POS: NOUN}, - "VSP+T--": {POS: VERB}, - "M--+PS3": {POS: AUX}, - "ASS+PS3": {POS: ADJ}, - "G--+PS3": {POS: PART}, - "F--+PS1": {POS: X}, - "NSD+T--": {POS: NOUN}, - "PP1+T--": {POS: PRON}, - "B--+PS3": {POS: DET}, - "NOUN": {POS: NOUN}, - "NPD+PS3": {POS: NOUN}, - "R--+PS1": {POS: ADP}, - "F--+PS2": {POS: X}, - "CD-+PS3": {POS: NUM}, - "PS1+VSA+T--":{POS: VERB}, - "PS2+VSA": {POS: VERB}, - "VERB": {POS: VERB}, - "CC-+T--": {POS: NUM}, - "NPD+PS2":{POS: NOUN}, - "D--+PS2":{POS: ADV}, - "PP3+T--": {POS: PRON}, - "X": {POS: X}} + "NSD": {POS: NOUN}, + "Z--": {POS: PUNCT}, + "VSA": {POS: VERB}, + "CC-": {POS: NUM}, + "R--": {POS: ADP}, + "D--": {POS: ADV}, + "ASP": {POS: ADJ}, + "S--": {POS: SCONJ}, + "VSP": {POS: VERB}, + "H--": {POS: CCONJ}, + "F--": {POS: X}, + "B--": {POS: DET}, + "CO-": {POS: NUM}, + "G--": {POS: ADV}, + "PS3": {POS: PRON}, + "W--": {POS: ADV}, + "O--": {POS: AUX}, + "PP1": {POS: PRON}, + "ASS": {POS: ADJ}, + "PS1": {POS: PRON}, + "APP": {POS: ADJ}, + "CD-": {POS: NUM}, + "VPA": {POS: VERB}, + "VPP": {POS: VERB}, + "X--": {POS: X}, + "CO-+PS3": {POS: NUM}, + "NSD+PS3": {POS: NOUN}, + "ASP+PS3": {POS: ADJ}, + "M--": {POS: AUX}, + "VSA+PS3": {POS: VERB}, + "R--+PS3": {POS: ADP}, + "W--+T--": {POS: ADV}, + "PS2": {POS: PRON}, + "NSD+PS1": {POS: NOUN}, + "PP3": {POS: PRON}, + "VSA+T--": {POS: VERB}, + "D--+T--": {POS: ADV}, + "VSP+PS3": {POS: VERB}, + "F--+PS3": {POS: X}, + "M--+T--": {POS: AUX}, + "F--+T--": {POS: X}, + "PUNCT": {POS: PUNCT}, + "PROPN": {POS: PROPN}, + "I--": {POS: INTJ}, + "S--+PS3": {POS: SCONJ}, + "ASP+T--": {POS: ADJ}, + "CC-+PS3": {POS: NUM}, + "NSD+PS2": {POS: NOUN}, + "B--+T--": {POS: DET}, + "H--+T--": {POS: CCONJ}, + "VSA+PS2": {POS: VERB}, + "NSF": {POS: NOUN}, + "PS1+VSA": {POS: PRON}, + "NPD": {POS: NOUN}, + "PP2": {POS: PRON}, + "VSA+PS1": {POS: VERB}, + "T--": {POS: PART}, + "NSM": {POS: NOUN}, + "NUM": {POS: NUM}, + "ASP+PS2": {POS: ADJ}, + "G--+T--": {POS: PART}, + "D--+PS3": {POS: ADV}, + "R--+PS2": {POS: ADP}, + "NSM+PS3": {POS: NOUN}, + "VSP+T--": {POS: VERB}, + "M--+PS3": {POS: AUX}, + "ASS+PS3": {POS: ADJ}, + "G--+PS3": {POS: PART}, + "F--+PS1": {POS: X}, + "NSD+T--": {POS: NOUN}, + "PP1+T--": {POS: PRON}, + "B--+PS3": {POS: DET}, + "NOUN": {POS: NOUN}, + "NPD+PS3": {POS: NOUN}, + "R--+PS1": {POS: ADP}, + "F--+PS2": {POS: X}, + "CD-+PS3": {POS: NUM}, + "PS1+VSA+T--": {POS: VERB}, + "PS2+VSA": {POS: VERB}, + "VERB": {POS: VERB}, + "CC-+T--": {POS: NUM}, + "NPD+PS2": {POS: NOUN}, + "D--+PS2": {POS: ADV}, + "PP3+T--": {POS: PRON}, + "X": {POS: X}, +} diff --git a/spacy/lang/nl/__init__.py b/spacy/lang/nl/__init__.py index e1ec313e6..a2e876241 100644 --- a/spacy/lang/nl/__init__.py +++ b/spacy/lang/nl/__init__.py @@ -6,10 +6,7 @@ from .lex_attrs import LEX_ATTRS from .tag_map import TAG_MAP from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS from .punctuation import TOKENIZER_INFIXES, TOKENIZER_SUFFIXES - -from .lemmatizer import LOOKUP, LEMMA_EXC, LEMMA_INDEX, RULES -from .lemmatizer.lemmatizer import DutchLemmatizer - +from .lemmatizer import LOOKUP, LEMMA_EXC, LEMMA_INDEX, RULES, DutchLemmatizer from ..tokenizer_exceptions import BASE_EXCEPTIONS from ..norm_exceptions import BASE_NORMS from ...language import Language @@ -21,9 +18,10 @@ class DutchDefaults(Language.Defaults): lex_attr_getters = dict(Language.Defaults.lex_attr_getters) lex_attr_getters.update(LEX_ATTRS) - lex_attr_getters[LANG] = lambda text: 'nl' - lex_attr_getters[NORM] = add_lookups(Language.Defaults.lex_attr_getters[NORM], - BASE_NORMS) + lex_attr_getters[LANG] = lambda text: "nl" + lex_attr_getters[NORM] = add_lookups( + Language.Defaults.lex_attr_getters[NORM], BASE_NORMS + ) tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS) stop_words = STOP_WORDS tag_map = TAG_MAP @@ -36,15 +34,14 @@ class DutchDefaults(Language.Defaults): lemma_index = LEMMA_INDEX lemma_exc = LEMMA_EXC lemma_lookup = LOOKUP - return DutchLemmatizer(index=lemma_index, - exceptions=lemma_exc, - lookup=lemma_lookup, - rules=rules) + return DutchLemmatizer( + index=lemma_index, exceptions=lemma_exc, lookup=lemma_lookup, rules=rules + ) class Dutch(Language): - lang = 'nl' + lang = "nl" Defaults = DutchDefaults -__all__ = ['Dutch'] +__all__ = ["Dutch"] diff --git a/spacy/lang/nl/lemmatizer/__init__.py b/spacy/lang/nl/lemmatizer/__init__.py index e97028d7e..1daf5f790 100644 --- a/spacy/lang/nl/lemmatizer/__init__.py +++ b/spacy/lang/nl/lemmatizer/__init__.py @@ -18,23 +18,26 @@ from ._adpositions import ADPOSITIONS from ._determiners import DETERMINERS from .lookup import LOOKUP - from ._lemma_rules import RULES - from .lemmatizer import DutchLemmatizer -LEMMA_INDEX = {"adj": ADJECTIVES, - "noun": NOUNS, - "verb": VERBS, - "adp": ADPOSITIONS, - "det": DETERMINERS} +LEMMA_INDEX = { + "adj": ADJECTIVES, + "noun": NOUNS, + "verb": VERBS, + "adp": ADPOSITIONS, + "det": DETERMINERS, +} -LEMMA_EXC = {"adj": ADJECTIVES_IRREG, - "adv": ADVERBS_IRREG, - "adp": ADPOSITIONS_IRREG, - "noun": NOUNS_IRREG, - "verb": VERBS_IRREG, - "det": DETERMINERS_IRREG, - "pron": PRONOUNS_IRREG} +LEMMA_EXC = { + "adj": ADJECTIVES_IRREG, + "adv": ADVERBS_IRREG, + "adp": ADPOSITIONS_IRREG, + "noun": NOUNS_IRREG, + "verb": VERBS_IRREG, + "det": DETERMINERS_IRREG, + "pron": PRONOUNS_IRREG, +} +__all__ = ["LOOKUP", "LEMMA_EXC", "LEMMA_INDEX", "RULES", "DutchLemmatizer"] diff --git a/spacy/lang/nl/tokenizer_exceptions.py b/spacy/lang/nl/tokenizer_exceptions.py index 1c0445082..dbdd104f3 100644 --- a/spacy/lang/nl/tokenizer_exceptions.py +++ b/spacy/lang/nl/tokenizer_exceptions.py @@ -1,7 +1,7 @@ # coding: utf8 from __future__ import unicode_literals -from ...symbols import ORTH, LEMMA, TAG, NORM, PRON_LEMMA +from ...symbols import ORTH # Extensive list of both common and uncommon dutch abbreviations copied from # github.com/diasks2/pragmatic_segmenter, a Ruby library for rule-based @@ -16,7 +16,7 @@ from ...symbols import ORTH, LEMMA, TAG, NORM, PRON_LEMMA # are extremely domain-specific. Tokenizer performance may benefit from some # slight pruning, although no performance regression has been observed so far. - +# fmt: off abbrevs = ['a.2d.', 'a.a.', 'a.a.j.b.', 'a.f.t.', 'a.g.j.b.', 'a.h.v.', 'a.h.w.', 'a.hosp.', 'a.i.', 'a.j.b.', 'a.j.t.', 'a.m.', 'a.m.r.', 'a.p.m.', 'a.p.r.', 'a.p.t.', 'a.s.', @@ -326,7 +326,7 @@ abbrevs = ['a.2d.', 'a.a.', 'a.a.j.b.', 'a.f.t.', 'a.g.j.b.', 'wtvb.', 'ww.', 'x.d.', 'z.a.', 'z.g.', 'z.i.', 'z.j.', 'z.o.z.', 'z.p.', 'z.s.m.', 'zg.', 'zgn.', 'zn.', 'znw.', 'zr.', 'zr.', 'ms.', 'zr.ms.'] - +# fmt: on _exc = {} for orth in abbrevs: diff --git a/spacy/lang/th/tokenizer_exceptions.py b/spacy/lang/th/tokenizer_exceptions.py index 255eaf6b9..4de0f1195 100644 --- a/spacy/lang/th/tokenizer_exceptions.py +++ b/spacy/lang/th/tokenizer_exceptions.py @@ -5,7 +5,7 @@ from ...symbols import ORTH, LEMMA _exc = { - #หน่วยงานรัฐ / government agency + # หน่วยงานรัฐ / government agency "กกต.": [{ORTH: "กกต.", LEMMA: "คณะกรรมการการเลือกตั้ง"}], "กทท.": [{ORTH: "กทท.", LEMMA: "การท่าเรือแห่งประเทศไทย"}], "กทพ.": [{ORTH: "กทพ.", LEMMA: "การทางพิเศษแห่งประเทศไทย"}], @@ -44,11 +44,21 @@ _exc = { "ธอส.": [{ORTH: "ธอส.", LEMMA: "ธนาคารอาคารสงเคราะห์"}], "นย.": [{ORTH: "นย.", LEMMA: "นาวิกโยธิน"}], "ปตท.": [{ORTH: "ปตท.", LEMMA: "การปิโตรเลียมแห่งประเทศไทย"}], - "ป.ป.ช.": [{ORTH: "ป.ป.ช.", LEMMA: "คณะกรรมการป้องกันและปราบปรามการทุจริตและประพฤติมิชอบในวงราชการ"}], + "ป.ป.ช.": [ + { + ORTH: "ป.ป.ช.", + LEMMA: "คณะกรรมการป้องกันและปราบปรามการทุจริตและประพฤติมิชอบในวงราชการ", + } + ], "ป.ป.ส.": [{ORTH: "ป.ป.ส.", LEMMA: "คณะกรรมการป้องกันและปราบปรามยาเสพติด"}], "บพร.": [{ORTH: "บพร.", LEMMA: "กรมการบินพลเรือน"}], "บย.": [{ORTH: "บย.", LEMMA: "กองบินยุทธการ"}], - "พสวท.": [{ORTH: "พสวท.", LEMMA: "โครงการพัฒนาและส่งเสริมผู้มีความรู้ความสามารถพิเศษทางวิทยาศาสตร์และเทคโนโลยี"}], + "พสวท.": [ + { + ORTH: "พสวท.", + LEMMA: "โครงการพัฒนาและส่งเสริมผู้มีความรู้ความสามารถพิเศษทางวิทยาศาสตร์และเทคโนโลยี", + } + ], "มอก.": [{ORTH: "มอก.", LEMMA: "สำนักงานมาตรฐานผลิตภัณฑ์อุตสาหกรรม"}], "ยธ.": [{ORTH: "ยธ.", LEMMA: "กรมโยธาธิการ"}], "รพช.": [{ORTH: "รพช.", LEMMA: "สำนักงานเร่งรัดพัฒนาชนบท"}], @@ -71,11 +81,15 @@ _exc = { "สปช.": [{ORTH: "สปช.", LEMMA: "สำนักงานคณะกรรมการการประถมศึกษาแห่งชาติ"}], "สปอ.": [{ORTH: "สปอ.", LEMMA: "สำนักงานการประถมศึกษาอำเภอ"}], "สพช.": [{ORTH: "สพช.", LEMMA: "สำนักงานคณะกรรมการนโยบายพลังงานแห่งชาติ"}], - "สยช.": [{ORTH: "สยช.", LEMMA: "สำนักงานคณะกรรมการส่งเสริมและประสานงานเยาวชนแห่งชาติ"}], + "สยช.": [ + {ORTH: "สยช.", LEMMA: "สำนักงานคณะกรรมการส่งเสริมและประสานงานเยาวชนแห่งชาติ"} + ], "สวช.": [{ORTH: "สวช.", LEMMA: "สำนักงานคณะกรรมการวัฒนธรรมแห่งชาติ"}], "สวท.": [{ORTH: "สวท.", LEMMA: "สถานีวิทยุกระจายเสียงแห่งประเทศไทย"}], "สวทช.": [{ORTH: "สวทช.", LEMMA: "สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ"}], - "สคช.": [{ORTH: "สคช.", LEMMA: "สำนักงานคณะกรรมการพัฒนาการเศรษฐกิจและสังคมแห่งชาติ"}], + "สคช.": [ + {ORTH: "สคช.", LEMMA: "สำนักงานคณะกรรมการพัฒนาการเศรษฐกิจและสังคมแห่งชาติ"} + ], "สสว.": [{ORTH: "สสว.", LEMMA: "สำนักงานส่งเสริมวิสาหกิจขนาดกลางและขนาดย่อม"}], "สสส.": [{ORTH: "สสส.", LEMMA: "สำนักงานกองทุนสนับสนุนการสร้างเสริมสุขภาพ"}], "สสวท.": [{ORTH: "สสวท.", LEMMA: "สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี"}], @@ -85,7 +99,7 @@ _exc = { "อปพร.": [{ORTH: "อปพร.", LEMMA: "อาสาสมัครป้องกันภัยฝ่ายพลเรือน"}], "อย.": [{ORTH: "อย.", LEMMA: "สำนักงานคณะกรรมการอาหารและยา"}], "อ.ส.ม.ท.": [{ORTH: "อ.ส.ม.ท.", LEMMA: "องค์การสื่อสารมวลชนแห่งประเทศไทย"}], - #มหาวิทยาลัย / สถานศึกษา / university / college + # มหาวิทยาลัย / สถานศึกษา / university / college "มทส.": [{ORTH: "มทส.", LEMMA: "มหาวิทยาลัยเทคโนโลยีสุรนารี"}], "มธ.": [{ORTH: "มธ.", LEMMA: "มหาวิทยาลัยธรรมศาสตร์"}], "ม.อ.": [{ORTH: "ม.อ.", LEMMA: "มหาวิทยาลัยสงขลานครินทร์"}], @@ -93,7 +107,7 @@ _exc = { "มมส.": [{ORTH: "มมส.", LEMMA: "มหาวิทยาลัยมหาสารคาม"}], "วท.": [{ORTH: "วท.", LEMMA: "วิทยาลัยเทคนิค"}], "สตม.": [{ORTH: "สตม.", LEMMA: "สำนักงานตรวจคนเข้าเมือง (ตำรวจ)"}], - #ยศ / rank + # ยศ / rank "ดร.": [{ORTH: "ดร.", LEMMA: "ดอกเตอร์"}], "ด.ต.": [{ORTH: "ด.ต.", LEMMA: "ดาบตำรวจ"}], "จ.ต.": [{ORTH: "จ.ต.", LEMMA: "จ่าตรี"}], @@ -133,10 +147,14 @@ _exc = { "ผญบ.": [{ORTH: "ผญบ.", LEMMA: "ผู้ใหญ่บ้าน"}], "ผบ.": [{ORTH: "ผบ.", LEMMA: "ผู้บังคับบัญชา"}], "ผบก.": [{ORTH: "ผบก.", LEMMA: "ผู้บังคับบัญชาการ (ตำรวจ)"}], - "ผบก.": [{ORTH: "ผบก.", LEMMA: "ผู้บังคับการ (ตำรวจ)"}], "ผบก.น.": [{ORTH: "ผบก.น.", LEMMA: "ผู้บังคับการตำรวจนครบาล"}], "ผบก.ป.": [{ORTH: "ผบก.ป.", LEMMA: "ผู้บังคับการตำรวจกองปราบปราม"}], - "ผบก.ปค.": [{ORTH: "ผบก.ปค.", LEMMA: "ผู้บังคับการ กองบังคับการปกครอง (โรงเรียนนายร้อยตำรวจ)"}], + "ผบก.ปค.": [ + { + ORTH: "ผบก.ปค.", + LEMMA: "ผู้บังคับการ กองบังคับการปกครอง (โรงเรียนนายร้อยตำรวจ)", + } + ], "ผบก.ปม.": [{ORTH: "ผบก.ปม.", LEMMA: "ผู้บังคับการตำรวจป่าไม้"}], "ผบก.ภ.": [{ORTH: "ผบก.ภ.", LEMMA: "ผู้บังคับการตำรวจภูธร"}], "ผบช.": [{ORTH: "ผบช.", LEMMA: "ผู้บัญชาการ (ตำรวจ)"}], @@ -177,7 +195,6 @@ _exc = { "พล.อ.ต.": [{ORTH: "พล.อ.ต.", LEMMA: "พลอากาศตรี"}], "พล.อ.ท.": [{ORTH: "พล.อ.ท.", LEMMA: "พลอากาศโท"}], "พล.อ.อ.": [{ORTH: "พล.อ.อ.", LEMMA: "พลอากาศเอก"}], - "พ.อ.": [{ORTH: "พ.อ.", LEMMA: "พันเอก"}], "พ.อ.พิเศษ": [{ORTH: "พ.อ.พิเศษ", LEMMA: "พันเอกพิเศษ"}], "พ.อ.ต.": [{ORTH: "พ.อ.ต.", LEMMA: "พันจ่าอากาศตรี"}], "พ.อ.ท.": [{ORTH: "พ.อ.ท.", LEMMA: "พันจ่าอากาศโท"}], @@ -209,7 +226,7 @@ _exc = { "ส.อ.": [{ORTH: "ส.อ.", LEMMA: "สิบเอก"}], "อจ.": [{ORTH: "อจ.", LEMMA: "อาจารย์"}], "อจญ.": [{ORTH: "อจญ.", LEMMA: "อาจารย์ใหญ่"}], - #วุฒิ / bachelor degree + # วุฒิ / bachelor degree "ป.": [{ORTH: "ป.", LEMMA: "ประถมศึกษา"}], "ป.กศ.": [{ORTH: "ป.กศ.", LEMMA: "ประกาศนียบัตรวิชาการศึกษา"}], "ป.กศ.สูง": [{ORTH: "ป.กศ.สูง", LEMMA: "ประกาศนียบัตรวิชาการศึกษาชั้นสูง"}], @@ -283,20 +300,20 @@ _exc = { "อ.บ.": [{ORTH: "อ.บ.", LEMMA: "อักษรศาสตรบัณฑิต"}], "อ.ม.": [{ORTH: "อ.ม.", LEMMA: "อักษรศาสตรมหาบัณฑิต"}], "อ.ด.": [{ORTH: "อ.ด.", LEMMA: "อักษรศาสตรดุษฎีบัณฑิต"}], - #ปี / เวลา / year / time + # ปี / เวลา / year / time "ชม.": [{ORTH: "ชม.", LEMMA: "ชั่วโมง"}], "จ.ศ.": [{ORTH: "จ.ศ.", LEMMA: "จุลศักราช"}], "ค.ศ.": [{ORTH: "ค.ศ.", LEMMA: "คริสต์ศักราช"}], "ฮ.ศ.": [{ORTH: "ฮ.ศ.", LEMMA: "ฮิจเราะห์ศักราช"}], "ว.ด.ป.": [{ORTH: "ว.ด.ป.", LEMMA: "วัน เดือน ปี"}], - #ระยะทาง / distance + # ระยะทาง / distance "ฮม.": [{ORTH: "ฮม.", LEMMA: "เฮกโตเมตร"}], "ดคม.": [{ORTH: "ดคม.", LEMMA: "เดคาเมตร"}], "ดม.": [{ORTH: "ดม.", LEMMA: "เดซิเมตร"}], "มม.": [{ORTH: "มม.", LEMMA: "มิลลิเมตร"}], "ซม.": [{ORTH: "ซม.", LEMMA: "เซนติเมตร"}], "กม.": [{ORTH: "กม.", LEMMA: "กิโลเมตร"}], - #น้ำหนัก / weight + # น้ำหนัก / weight "น.น.": [{ORTH: "น.น.", LEMMA: "น้ำหนัก"}], "ฮก.": [{ORTH: "ฮก.", LEMMA: "เฮกโตกรัม"}], "ดคก.": [{ORTH: "ดคก.", LEMMA: "เดคากรัม"}], @@ -305,7 +322,7 @@ _exc = { "มก.": [{ORTH: "มก.", LEMMA: "มิลลิกรัม"}], "ก.": [{ORTH: "ก.", LEMMA: "กรัม"}], "กก.": [{ORTH: "กก.", LEMMA: "กิโลกรัม"}], - #ปริมาตร / volume + # ปริมาตร / volume "ฮล.": [{ORTH: "ฮล.", LEMMA: "เฮกโตลิตร"}], "ดคล.": [{ORTH: "ดคล.", LEMMA: "เดคาลิตร"}], "ดล.": [{ORTH: "ดล.", LEMMA: "เดซิลิตร"}], @@ -313,12 +330,12 @@ _exc = { "ล.": [{ORTH: "ล.", LEMMA: "ลิตร"}], "กล.": [{ORTH: "กล.", LEMMA: "กิโลลิตร"}], "ลบ.": [{ORTH: "ลบ.", LEMMA: "ลูกบาศก์"}], - #พื้นที่ / area + # พื้นที่ / area "ตร.ซม.": [{ORTH: "ตร.ซม.", LEMMA: "ตารางเซนติเมตร"}], "ตร.ม.": [{ORTH: "ตร.ม.", LEMMA: "ตารางเมตร"}], "ตร.ว.": [{ORTH: "ตร.ว.", LEMMA: "ตารางวา"}], "ตร.กม.": [{ORTH: "ตร.กม.", LEMMA: "ตารางกิโลเมตร"}], - #เดือน / month + # เดือน / month "ม.ค.": [{ORTH: "ม.ค.", LEMMA: "มกราคม"}], "ก.พ.": [{ORTH: "ก.พ.", LEMMA: "กุมภาพันธ์"}], "มี.ค.": [{ORTH: "มี.ค.", LEMMA: "มีนาคม"}], @@ -331,22 +348,22 @@ _exc = { "ต.ค.": [{ORTH: "ต.ค.", LEMMA: "ตุลาคม"}], "พ.ย.": [{ORTH: "พ.ย.", LEMMA: "พฤศจิกายน"}], "ธ.ค.": [{ORTH: "ธ.ค.", LEMMA: "ธันวาคม"}], - #เพศ / gender + # เพศ / gender "ช.": [{ORTH: "ช.", LEMMA: "ชาย"}], "ญ.": [{ORTH: "ญ.", LEMMA: "หญิง"}], "ด.ช.": [{ORTH: "ด.ช.", LEMMA: "เด็กชาย"}], "ด.ญ.": [{ORTH: "ด.ญ.", LEMMA: "เด็กหญิง"}], - #ที่อยู่ / address + # ที่อยู่ / address "ถ.": [{ORTH: "ถ.", LEMMA: "ถนน"}], "ต.": [{ORTH: "ต.", LEMMA: "ตำบล"}], "อ.": [{ORTH: "อ.", LEMMA: "อำเภอ"}], "จ.": [{ORTH: "จ.", LEMMA: "จังหวัด"}], - #สรรพนาม / pronoun + # สรรพนาม / pronoun "ข้าฯ": [{ORTH: "ข้าฯ", LEMMA: "ข้าพระพุทธเจ้า"}], "ทูลเกล้าฯ": [{ORTH: "ทูลเกล้าฯ", LEMMA: "ทูลเกล้าทูลกระหม่อม"}], "น้อมเกล้าฯ": [{ORTH: "น้อมเกล้าฯ", LEMMA: "น้อมเกล้าน้อมกระหม่อม"}], "โปรดเกล้าฯ": [{ORTH: "โปรดเกล้าฯ", LEMMA: "โปรดเกล้าโปรดกระหม่อม"}], - #การเมือง / politic + # การเมือง / politic "ขจก.": [{ORTH: "ขจก.", LEMMA: "ขบวนการโจรก่อการร้าย"}], "ขบด.": [{ORTH: "ขบด.", LEMMA: "ขบวนการแบ่งแยกดินแดน"}], "นปช.": [{ORTH: "นปช.", LEMMA: "แนวร่วมประชาธิปไตยขับไล่เผด็จการ"}], @@ -363,7 +380,7 @@ _exc = { "สจ.": [{ORTH: "สจ.", LEMMA: "สมาชิกสภาจังหวัด"}], "สว.": [{ORTH: "สว.", LEMMA: "สมาชิกวุฒิสภา"}], "ส.ส.": [{ORTH: "ส.ส.", LEMMA: "สมาชิกสภาผู้แทนราษฎร"}], - #ทั่วไป / general + # ทั่วไป / general "ก.ข.ค.": [{ORTH: "ก.ข.ค.", LEMMA: "ก้างขวางคอ"}], "กทม.": [{ORTH: "กทม.", LEMMA: "กรุงเทพมหานคร"}], "กรุงเทพฯ": [{ORTH: "กรุงเทพฯ", LEMMA: "กรุงเทพมหานคร"}], @@ -376,7 +393,12 @@ _exc = { "จก.": [{ORTH: "จก.", LEMMA: "จำกัด"}], "จขกท.": [{ORTH: "จขกท.", LEMMA: "เจ้าของกระทู้"}], "จนท.": [{ORTH: "จนท.", LEMMA: "เจ้าหน้าที่"}], - "จ.ป.ร.": [{ORTH: "จ.ป.ร.", LEMMA: "มหาจุฬาลงกรณ ปรมราชาธิราช (พระปรมาภิไธยในพระบาทสมเด็จพระจุลจอมเกล้าเจ้าอยู่หัว)"}], + "จ.ป.ร.": [ + { + ORTH: "จ.ป.ร.", + LEMMA: "มหาจุฬาลงกรณ ปรมราชาธิราช (พระปรมาภิไธยในพระบาทสมเด็จพระจุลจอมเกล้าเจ้าอยู่หัว)", + } + ], "จ.ม.": [{ORTH: "จ.ม.", LEMMA: "จดหมาย"}], "จย.": [{ORTH: "จย.", LEMMA: "จักรยาน"}], "จยย.": [{ORTH: "จยย.", LEMMA: "จักรยานยนต์"}], @@ -387,7 +409,9 @@ _exc = { "น.ศ.": [{ORTH: "น.ศ.", LEMMA: "นักศึกษา"}], "น.ส.": [{ORTH: "น.ส.", LEMMA: "นางสาว"}], "น.ส.๓": [{ORTH: "น.ส.๓", LEMMA: "หนังสือรับรองการทำประโยชน์ในที่ดิน"}], - "น.ส.๓ ก.": [{ORTH: "น.ส.๓ ก", LEMMA: "หนังสือแสดงกรรมสิทธิ์ในที่ดิน (มีระวางกำหนด)"}], + "น.ส.๓ ก.": [ + {ORTH: "น.ส.๓ ก", LEMMA: "หนังสือแสดงกรรมสิทธิ์ในที่ดิน (มีระวางกำหนด)"} + ], "นสพ.": [{ORTH: "นสพ.", LEMMA: "หนังสือพิมพ์"}], "บ.ก.": [{ORTH: "บ.ก.", LEMMA: "บรรณาธิการ"}], "บจก.": [{ORTH: "บจก.", LEMMA: "บริษัทจำกัด"}], @@ -410,7 +434,12 @@ _exc = { "พขร.": [{ORTH: "พขร.", LEMMA: "พนักงานขับรถ"}], "ภ.ง.ด.": [{ORTH: "ภ.ง.ด.", LEMMA: "ภาษีเงินได้"}], "ภ.ง.ด.๙": [{ORTH: "ภ.ง.ด.๙", LEMMA: "แบบแสดงรายการเสียภาษีเงินได้ของกรมสรรพากร"}], - "ภ.ป.ร.": [{ORTH: "ภ.ป.ร.", LEMMA: "ภูมิพลอดุยเดช ปรมราชาธิราช (พระปรมาภิไธยในพระบาทสมเด็จพระปรมินทรมหาภูมิพลอดุลยเดช)"}], + "ภ.ป.ร.": [ + { + ORTH: "ภ.ป.ร.", + LEMMA: "ภูมิพลอดุยเดช ปรมราชาธิราช (พระปรมาภิไธยในพระบาทสมเด็จพระปรมินทรมหาภูมิพลอดุลยเดช)", + } + ], "ภ.พ.": [{ORTH: "ภ.พ.", LEMMA: "ภาษีมูลค่าเพิ่ม"}], "ร.": [{ORTH: "ร.", LEMMA: "รัชกาล"}], "ร.ง.": [{ORTH: "ร.ง.", LEMMA: "โรงงาน"}], @@ -438,7 +467,6 @@ _exc = { "เสธ.": [{ORTH: "เสธ.", LEMMA: "เสนาธิการ"}], "หจก.": [{ORTH: "หจก.", LEMMA: "ห้างหุ้นส่วนจำกัด"}], "ห.ร.ม.": [{ORTH: "ห.ร.ม.", LEMMA: "ตัวหารร่วมมาก"}], - } diff --git a/spacy/tests/regression/test_issue3449.py b/spacy/tests/regression/test_issue3449.py index 61a76334a..deff49fd6 100644 --- a/spacy/tests/regression/test_issue3449.py +++ b/spacy/tests/regression/test_issue3449.py @@ -6,20 +6,16 @@ import pytest from spacy.lang.en import English -@pytest.mark.xfail(reason="Current default suffix rules avoid one upper-case letter before a dot.") +@pytest.mark.xfail(reason="default suffix rules avoid one upper-case letter before dot") def test_issue3449(): nlp = English() - nlp.add_pipe(nlp.create_pipe('sentencizer')) - + nlp.add_pipe(nlp.create_pipe("sentencizer")) text1 = "He gave the ball to I. Do you want to go to the movies with I?" text2 = "He gave the ball to I. Do you want to go to the movies with I?" text3 = "He gave the ball to I.\nDo you want to go to the movies with I?" - t1 = nlp(text1) t2 = nlp(text2) t3 = nlp(text3) - - assert t1[5].text == 'I' - assert t2[5].text == 'I' - assert t3[5].text == 'I' - + assert t1[5].text == "I" + assert t2[5].text == "I" + assert t3[5].text == "I"