Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions docs/api/corpus.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ The :class:`pythainlp.corpus` provides access to corpus that comes with PyThaiNL
Modules
-------

.. autofunction:: countries
.. autofunction:: get_corpus
.. autofunction:: get_corpus_db
.. autofunction:: get_corpus_db_detail
.. autofunction:: get_corpus_path
.. autofunction:: download
.. autofunction:: remove
.. autofunction:: pythainlp.corpus.common.countries
.. autofunction:: pythainlp.corpus.common.provinces
.. autofunction:: pythainlp.corpus.common.thai_stopwords
.. autofunction:: pythainlp.corpus.common.thai_words
.. autofunction:: pythainlp.corpus.common.thai_syllables
.. autofunction:: pythainlp.corpus.common.thai_negations
.. autofunction:: pythainlp.corpus.common.thai_female_names
.. autofunction:: pythainlp.corpus.common.thai_male_names
.. autofunction:: provinces
.. autofunction:: thai_stopwords
.. autofunction:: thai_words
.. autofunction:: thai_syllables
.. autofunction:: thai_negations
.. autofunction:: thai_female_names
.. autofunction:: thai_male_names
.. autofunction:: pythainlp.corpus.conceptnet.edges

TNC
Expand Down
40 changes: 31 additions & 9 deletions pythainlp/corpus/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
_THAI_THAILAND_PROVINCES = set()
_THAI_THAILAND_PROVINCES_FILENAME = "thailand_provinces_th.txt"

_THAI_THAILAND_PROVINCES_DETAILS = dict()
_THAI_THAILAND_PROVINCES_LIST_ALL_FILENAME = "thailand_provinces_th.csv"

_THAI_SYLLABLES = set()
_THAI_SYLLABLES_FILENAME = "syllables_th.txt"

Expand Down Expand Up @@ -57,21 +60,40 @@ def countries() -> frozenset:
return _THAI_COUNTRIES


def provinces() -> frozenset:
def provinces(details: bool = False) -> frozenset:
"""
Return a frozenset of Thailand province names in Thai such as "กระบี่",
"กรุงเทพมหานคร", "กาญจนบุรี", and "อุบลราชธานี".
\n(See: `dev/pythainlp/corpus/thailand_provinces_th.txt\
<https://github.com/PyThaiNLP/pythainlp/blob/dev/pythainlp/corpus/thailand_provinces_th.txt>`_)

:return: :class:`frozenset` containing province names of Thailand
:rtype: :class:`frozenset`
"""
global _THAI_THAILAND_PROVINCES
if not _THAI_THAILAND_PROVINCES:
_THAI_THAILAND_PROVINCES = get_corpus(
_THAI_THAILAND_PROVINCES_FILENAME
)
:param bool details: a details of provinces

:return: :class:`frozenset` containing province names of Thailand (if details is False) or list \
dict of Thailand province names in Thai such as\
[{'provinces_th': 'นนทบุรี', 'abridgement': 'นบ', 'provinces_en': 'Nonthaburi', 'HS': 'NBI'}].
:rtype: :class:`frozenset` or :class:`list`
"""
global _THAI_THAILAND_PROVINCES, _THAI_THAILAND_PROVINCES_DETAILS
if not _THAI_THAILAND_PROVINCES_DETAILS and not _THAI_THAILAND_PROVINCES:
_THAI_THAILAND_PROVINCES = list()
_TEMP = list(get_corpus(
_THAI_THAILAND_PROVINCES_LIST_ALL_FILENAME
))
_THAI_THAILAND_PROVINCES_DETAILS = list()
for i in _TEMP:
_data = i.split(",")
_dict_data = dict()
_dict_data["provinces_th"] = _data[0]
_THAI_THAILAND_PROVINCES.append(_data[0])
_dict_data["abridgement"] = _data[1]
_dict_data["provinces_en"] = _data[2]
_dict_data["HS"] = _data[3]
_THAI_THAILAND_PROVINCES_DETAILS.append(_dict_data)

_THAI_THAILAND_PROVINCES = frozenset(_THAI_THAILAND_PROVINCES)
if details:
return _THAI_THAILAND_PROVINCES_DETAILS

return _THAI_THAILAND_PROVINCES

Expand Down
154 changes: 77 additions & 77 deletions pythainlp/corpus/thailand_provinces_th.csv
Original file line number Diff line number Diff line change
@@ -1,77 +1,77 @@
กระบี่,กบ,KBI
กรุงเทพมหานคร,กทม,BKK
กาญจนบุรี,กจ,KRI
กาฬสินธุ์,กส,KSN
กำแพงเพชร,กพ,KPT
ขอนแก่น,ขก,KKN
จันทบุรี,จบ,CTI
ฉะเชิงเทรา,ฉช,CCO
ชลบุรี,ชบ,CBI
ชัยนาท,ชน,CNT
ชัยภูมิ,ชย,CPM
ชุมพร,ชพ,CPN
เชียงราย,ชร,CRI
เชียงใหม่,ชม,CMI
ตรัง,ตง,TRG
ตราด,ตร,TRT
ตาก,ตก,TAK
นครนายก,นย,NYK
นครปฐม,นฐ,NPT
นครพนม,นพ,NPM
นครราชสีมา,นม,NMA
นครศรีธรรมราช,นศ,NRT
นครสวรรค์,นว,NSN
นนทบุรี,นบ,NBI
นราธิวาส,นธ,NWT
น่าน,นน,NAN
บึงกาฬ,บก,BKN
บุรีรัมย์,บร,BRM
ปทุมธานี,ปท,PTE
ประจวบคีรีขันธ์,ปข,PKN
ปราจีนบุรี,ปจ,PRI
ปัตตานี,ปน,PTN
พะเยา,พย,PYO
พระนครศรีอยุธยา,อย,AYA
พังงา,พง,PNA
พัทลุง,พท,PLG
พิจิตร,พจ,PCK
พิษณุโลก,พล,PLK
เพชรบุรี,พบ,PBI
เพชรบูรณ์,พช,PNB
แพร่,พร,PRE
ภูเก็ต,ภก,PKT
มหาสารคาม,มค,MKM
มุกดาหาร,มห,MDH
แม่ฮ่องสอน,มส,MSN
ยโสธร,ยส,YST
ยะลา,ยล,YLA
ร้อยเอ็ด,รอ,RET
ระนอง,รน,RNG
ระยอง,รย,RYG
ราชบุรี,รบ,RBR
ลพบุรี,ลบ,LRI
ลำปาง,ลป,LPG
ลำพูน,ลพ,LPN
เลย,ลย,LEI
ศรีสะเกษ,ศก,SSK
สกลนคร,สน,SNK
สงขลา,สข,SKA
สตูล,สต,STN
สมุทรปราการ,สป,SPK
สมุทรสงคราม,สส,SKM
สมุทรสาคร,สค,SKN
สระแก้ว,สก,SKW
สระบุรี,สบ,SRI
สิงห์บุรี,สห,SBR
สุโขทัย,สท,STI
สุพรรณบุรี,สพ,SPB
สุราษฎร์ธานี,สฎ,SNI
สุรินทร์,สร,SRN
หนองคาย,นค,NKI
หนองบัวลำภู,นภ,NBP
อ่างทอง,อท,ATG
อำนาจเจริญ,อจ,ACR
อุดรธานี,อด,UDN
อุตรดิตถ์,อต,UTT
อุทัยธานี,อน,UTI
อุบลราชธานี,อบ,UBN
กระบี่,กบ,Krabi,KBI
กรุงเทพมหานคร,กทม,Bangkok,BKK
กาญจนบุรี,กจ,Kanchanaburi,KRI
กาฬสินธุ์,กส,Kalasin,KSN
กำแพงเพชร,กพ,Kamphaeng Phet,KPT
ขอนแก่น,ขก,Khon Kaen,KKN
จันทบุรี,จบ,Chanthaburi,CTI
ฉะเชิงเทรา,ฉช,Chachoengsao,CCO
ชลบุรี,ชบ,Chon Buri,CBI
ชัยนาท,ชน,Chai Nat,CNT
ชัยภูมิ,ชย,Chaiyaphum,CPM
ชุมพร,ชพ,Chumphon,CPN
เชียงราย,ชร,Chiang Rai,CRI
เชียงใหม่,ชม,Chiang Mai,CMI
ตรัง,ตง,Trang,TRG
ตราด,ตร,Trat,TRT
ตาก,ตก,Tak,TAK
นครนายก,นย,Nakhon Nayok,NYK
นครปฐม,นฐ,Nakhon Pathom,NPT
นครพนม,นพ,Nakhon Phanom,NPM
นครราชสีมา,นม,Nakhon Ratchasima,NMA
นครศรีธรรมราช,นศ,Nakhon Si Thammarat,NRT
นครสวรรค์,นว,Nakhon Sawan,NSN
นนทบุรี,นบ,Nonthaburi,NBI
นราธิวาส,นธ,Narathiwat,NWT
น่าน,นน,Nan,NAN
บึงกาฬ,บก,Bueng Kan,BKN
บุรีรัมย์,บร,Buri Ram,BRM
ปทุมธานี,ปท,Pathum Thani,PTE
ประจวบคีรีขันธ์,ปข,Prachuap Khiri Khan,PKN
ปราจีนบุรี,ปจ,Prachin Buri,PRI
ปัตตานี,ปน,Pattani,PTN
พะเยา,พย,Phayao,PYO
พระนครศรีอยุธยา,อย,Phra Nakhon Si Ayutthaya,AYA
พังงา,พง,Phangnga,PNA
พัทลุง,พท,Phatthalung,PLG
พิจิตร,พจ,Phichit,PCK
พิษณุโลก,พล,Phitsanulok,PLK
เพชรบุรี,พบ,Phetchaburi,PBI
เพชรบูรณ์,พช,Phetchabun,PNB
แพร่,พร,Phrae,PRE
ภูเก็ต,ภก,Phuket,PKT
มหาสารคาม,มค,Maha Sarakham,MKM
มุกดาหาร,มห,Mukdahan,MDH
แม่ฮ่องสอน,มส,Mae Hong Son,MSN
ยโสธร,ยส,Yasothon,YST
ยะลา,ยล,Yala,YLA
ร้อยเอ็ด,รอ,Roi Et,RET
ระนอง,รน,Ranong,RNG
ระยอง,รย,Rayong,RYG
ราชบุรี,รบ,Ratchaburi,RBR
ลพบุรี,ลบ,Lop Buri,LRI
ลำปาง,ลป,Lampang,LPG
ลำพูน,ลพ,Lamphun,LPN
เลย,ลย,Loei,LEI
ศรีสะเกษ,ศก,Si Sa Ket,SSK
สกลนคร,สน,Sakon Nakhon,SNK
สงขลา,สข,Songkhla,SKA
สตูล,สต,Satun,STN
สมุทรปราการ,สป,Samut Prakan,SPK
สมุทรสงคราม,สส,Samut Songkhram,SKM
สมุทรสาคร,สค,Samut Sakhon,SKN
สระแก้ว,สก,Sa Kaeo,SKW
สระบุรี,สบ,Saraburi,SRI
สิงห์บุรี,สห,Sing Buri,SBR
สุโขทัย,สท,Sukhothai,STI
สุพรรณบุรี,สพ,Suphan Buri,SPB
สุราษฎร์ธานี,สฎ,Surat Thani,SNI
สุรินทร์,สร,Surin,SRN
หนองคาย,นค,Nong Khai,NKI
หนองบัวลำภู,นภ,Nong Bua Lam Phu,NBP
อ่างทอง,อท,Ang Thong,ATG
อำนาจเจริญ,อจ,Amnat Charoen,ACR
อุดรธานี,อด,Udon Thani,UDN
อุตรดิตถ์,อต,Uttaradit,UTT
อุทัยธานี,อน,Uthai Thani,UTI
อุบลราชธานี,อบ,Ubon Ratchathani,UBN
1 change: 1 addition & 0 deletions tests/test_corpus.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def test_corpus(self):

self.assertIsInstance(countries(), frozenset)
self.assertIsInstance(provinces(), frozenset)
self.assertIsInstance(provinces(details=True), list)
self.assertIsInstance(thai_female_names(), frozenset)
self.assertIsInstance(thai_male_names(), frozenset)

Expand Down