From 0eac18946993add8149e4460d7ca27ec47ec0ed3 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Fri, 12 Apr 2019 18:11:32 +0200 Subject: [PATCH 01/30] - etcc and tcc small refactor + use common segment() function name (same as other word tokenizers) - small improvements in thai_strftime() (some formatting extensions are not implemented yet) --- README-pypi.md | 2 +- bin/pythainlp | 39 +- conda.recipe/meta.yaml | 2 +- docs/api/tokenize.rst | 2 +- meta.yaml | 2 +- notebooks/pythainlp-get-started.ipynb | 268 +- pythainlp/__init__.py | 2 +- pythainlp/corpus/__init__.py | 2 +- pythainlp/corpus/ttc.py | 1 + pythainlp/corpus/ttc_freq.txt | 19494 ++++++++++++++++++++++++ pythainlp/tokenize/__init__.py | 21 +- pythainlp/tokenize/etcc.py | 20 +- pythainlp/tokenize/tcc.py | 10 +- pythainlp/util/date.py | 200 +- setup.cfg | 2 +- setup.py | 3 +- tests/__init__.py | 22 +- 17 files changed, 19872 insertions(+), 220 deletions(-) create mode 100644 pythainlp/corpus/ttc_freq.txt diff --git a/README-pypi.md b/README-pypi.md index b779f157e..c7282ec7b 100644 --- a/README-pypi.md +++ b/README-pypi.md @@ -1,6 +1,6 @@ ![PyThaiNLP Logo](https://avatars0.githubusercontent.com/u/32934255?s=200&v=4) -# PyThaiNLP 2.0.2 +# PyThaiNLP 2.0.3 [![Codacy Badge](https://api.codacy.com/project/badge/Grade/cb946260c87a4cc5905ca608704406f7)](https://www.codacy.com/app/pythainlp/pythainlp_2?utm_source=github.com&utm_medium=referral&utm_content=PyThaiNLP/pythainlp&utm_campaign=Badge_Grade)[![pypi](https://img.shields.io/pypi/v/pythainlp.svg)](https://pypi.python.org/pypi/pythainlp) [![Build Status](https://travis-ci.org/PyThaiNLP/pythainlp.svg?branch=develop)](https://travis-ci.org/PyThaiNLP/pythainlp) diff --git a/bin/pythainlp b/bin/pythainlp index 1e3a68691..71d2a1686 100644 --- a/bin/pythainlp +++ b/bin/pythainlp @@ -1,41 +1,46 @@ #!python3 # -*- coding: utf-8 -*- + +_VERSION = "2.0.3" + import argparse + parser = argparse.ArgumentParser() -parser.add_argument("-t","--text",default=None, help="text",type=str) -parser.add_argument("-seg", "--segment", help="word segment",action="store_true") -parser.add_argument("-c", "--corpus", help="mange corpus",action="store_true") -parser.add_argument("-pos", "--postag", help="postag",action="store_true") -parser.add_argument("-soundex", "--soundex", help="soundex",default=None) -parser.add_argument("-e","--engine",default="newmm", help="the engine",type=str) -parser.add_argument("-pos-e","--postag_engine",default="perceptron", help="the engine for word tokenize",type=str) -parser.add_argument("-pos-c","--postag_corpus",default="orchid", help="corpus for postag",type=str) +parser.add_argument("-t", "--text", default=None, help="text", type=str) +parser.add_argument("-seg", "--segment", help="word segment", action="store_true") +parser.add_argument("-c", "--corpus", help="mange corpus", action="store_true") +parser.add_argument("-pos", "--postag", help="postag", action="store_true") +parser.add_argument("-soundex", "--soundex", help="soundex", default=None) +parser.add_argument("-e", "--engine", default="newmm", help="the engine", type=str) +parser.add_argument("-pos-e", "--postag_engine", default="perceptron", help="the engine for word tokenize", type=str) +parser.add_argument("-pos-c", "--postag_corpus", default="orchid", help="corpus for postag", type=str) args = parser.parse_args() + if args.corpus: from pythainlp.corpus import * print("PyThaiNLP Corpus") temp="" while temp!="exit": - print("\n\nPlease fill this out.\n1. install\n2. remove\n3. update\n4. exit\nex 1 or 2") - temp=input("input (1,2,3 or 4) : ") + print("\n1. Install\n2. Remove\n3. Update\n4. Exit\n") + temp=input("Choose 1, 2, 3, or 4: ") if temp=="1": - name=input("name corpus : ") + name=input("Corpus name:") download(name) elif temp=="2": - name=input("name corpus : ") + name=input("Corpus name:") remove(name) elif temp=="3": - name=input("name corpus : ") + name=input("Corpus name:") download(name) elif temp=="4": break else: - print("Please input 1,2,3 or 4.") + print("Choose 1, 2, 3, or 4:") elif args.text!=None: from pythainlp.tokenize import word_tokenize - tokens=word_tokenize(args.text,engine=args.engine) + tokens=word_tokenize(args.text, engine=args.engine) if args.segment: - print('|'.join(tokens)) + print("|".join(tokens)) elif args.postag: from pythainlp.tag import pos_tag print("\t".join([i[0]+"/"+i[1] for i in pos_tag(tokens, engine=args.postag_engine, corpus=args.postag_corpus)])) @@ -45,4 +50,4 @@ elif args.soundex!=None: args.engine="lk82" print(soundex(args.soundex, engine=args.engine)) else: - print("PyThaiNLP 2.0.2") + print(f"PyThaiNLP {_VERSION}") diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index f25188849..7d493cd50 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.2" %} +{% set version = "2.0.3" %} package: name: pythainlp diff --git a/docs/api/tokenize.rst b/docs/api/tokenize.rst index 0fb81b433..dee8cda94 100644 --- a/docs/api/tokenize.rst +++ b/docs/api/tokenize.rst @@ -14,4 +14,4 @@ Modules .. autofunction:: sent_tokenize .. autofunction:: dict_trie .. autoclass:: Tokenizer - :members: word_tokenize,set_tokenize_engine + :members: word_tokenize, set_tokenize_engine diff --git a/meta.yaml b/meta.yaml index 714ecb262..78d7a4794 100644 --- a/meta.yaml +++ b/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.2" %} +{% set version = "2.0.3" %} package: name: pythainlp diff --git a/notebooks/pythainlp-get-started.ipynb b/notebooks/pythainlp-get-started.ipynb index 806b9e47d..371417326 100644 --- a/notebooks/pythainlp-get-started.ipynb +++ b/notebooks/pythainlp-get-started.ipynb @@ -240,7 +240,8 @@ "source": [ "## Date and Time Format\n", "\n", - "Get Thai day and month names with Thai Buddhist Era (B.E.)." + "Get Thai day and month names with Thai Buddhist Era (B.E.).\n", + "Use formatting directives similar to datetime.strftime()." ] }, { @@ -276,75 +277,6 @@ "## Tokenization" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Thai Character Cluster (TCC) and Extended TCC\n", - "\n", - "According to [Character Cluster Based Thai Information Retrieval](https://www.researchgate.net/publication/2853284_Character_Cluster_Based_Thai_Information_Retrieval) (Theeramunkong et al. 2004)." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['ป', 'ระ', 'เท', 'ศ', 'ไท', 'ย']" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from pythainlp import tcc\n", - "\n", - "tcc.tcc(\"ประเทศไทย\")" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{1, 3, 5, 6, 8, 9}" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "tcc.tcc_pos(\"ประเทศไทย\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ป/ระ/เท/ศ/ไท/ย/" - ] - } - ], - "source": [ - "for ch in tcc.tcc_gen(\"ประเทศไทย\"):\n", - " print(ch, end='/')" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -356,7 +288,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -388,7 +320,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -424,7 +356,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -454,7 +386,80 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Transliteration" + "### Thai Character Cluster (TCC)\n", + "\n", + "According to [Character Cluster Based Thai Information Retrieval](https://www.researchgate.net/publication/2853284_Character_Cluster_Based_Thai_Information_Retrieval) (Theeramunkong et al. 2004)." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['ป', 'ระ', 'เท', 'ศ', 'ไท', 'ย']" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pythainlp.tokenize import subword_tokenize\n", + "\n", + "subword_tokenize(\"ประเทศไทย\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "isinstance(subword_tokenize(\"ประเทศไทย\", engine=\"etcc\"), str)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Low-level TCC operations" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['ป', 'ระ', 'เท', 'ศ', 'ไท', 'ย']" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pythainlp import tcc\n", + "\n", + "tcc.segment(\"ประเทศไทย\")" ] }, { @@ -465,7 +470,7 @@ { "data": { "text/plain": [ - "'maeo'" + "{1, 3, 5, 6, 8, 9}" ] }, "execution_count": 18, @@ -473,6 +478,51 @@ "output_type": "execute_result" } ], + "source": [ + "tcc.tcc_pos(\"ประเทศไทย\") # return positions" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ป-ระ-เท-ศ-ไท-ย-" + ] + } + ], + "source": [ + "for ch in tcc.tcc(\"ประเทศไทย\"): # generator\n", + " print(ch, end='-')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Transliteration" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'maeo'" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from pythainlp.transliterate import romanize\n", "\n", @@ -481,7 +531,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -507,7 +557,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -516,7 +566,7 @@ "True" ] }, - "execution_count": 20, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -538,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -562,7 +612,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -602,7 +652,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -611,7 +661,7 @@ "['เหลียม', 'เหลือม']" ] }, - "execution_count": 23, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -625,7 +675,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -634,7 +684,7 @@ "'เหลียม'" ] }, - "execution_count": 24, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -657,7 +707,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -680,7 +730,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -697,7 +747,7 @@ " ('ให้', 38715)]" ] }, - "execution_count": 26, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -715,7 +765,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -724,7 +774,7 @@ "39977" ] }, - "execution_count": 27, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -736,7 +786,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -745,7 +795,7 @@ "30379" ] }, - "execution_count": 28, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -757,7 +807,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -766,7 +816,7 @@ "76706" ] }, - "execution_count": 29, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -778,7 +828,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -787,7 +837,7 @@ "76700" ] }, - "execution_count": 30, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -809,7 +859,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -818,7 +868,7 @@ "[('การ', 'FIXN'), ('เดินทาง', 'VACT')]" ] }, - "execution_count": 31, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -831,7 +881,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -863,7 +913,7 @@ " (\"'อธิบดีกรมประชาสัมพันธ์'\", 'NCMN')]]" ] }, - "execution_count": 32, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -892,7 +942,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -917,7 +967,7 @@ " ('น.', 'NOUN', 'I-TIME')]" ] }, - "execution_count": 33, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -938,7 +988,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -958,7 +1008,7 @@ "0.99259853" ] }, - "execution_count": 34, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -971,7 +1021,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -987,7 +1037,7 @@ "'แมว'" ] }, - "execution_count": 35, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -1005,7 +1055,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -1014,7 +1064,7 @@ "'หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเจ็ดล้านแปดแสนเก้าหมื่นหนึ่งร้อยยี่สิบสามบาทสี่สิบห้าสตางค์'" ] }, - "execution_count": 36, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -1027,7 +1077,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 39, "metadata": {}, "outputs": [ { @@ -1036,7 +1086,7 @@ "'หนึ่งบาทเก้าสิบเอ็ดสตางค์'" ] }, - "execution_count": 37, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } diff --git a/pythainlp/__init__.py b/pythainlp/__init__.py index 21a18a9c1..66326efe4 100644 --- a/pythainlp/__init__.py +++ b/pythainlp/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -__version__ = "2.0.2" +__version__ = "2.0.3" thai_consonants = "กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮ" # 44 chars thai_vowels = "ฤฦะ\u0e31าำ\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39เแโใไ\u0e45\u0e47" # 19 diff --git a/pythainlp/corpus/__init__.py b/pythainlp/corpus/__init__.py index 855215bc0..f7909406e 100644 --- a/pythainlp/corpus/__init__.py +++ b/pythainlp/corpus/__init__.py @@ -113,7 +113,7 @@ def download(name: str, force: bool = False): data_json = data.json() if name in list(data_json.keys()): temp_name = data_json[name] - print("Download: " + name) + print("Download:", name) if not db.search(temp.name == name): print(name + " " + temp_name["version"]) diff --git a/pythainlp/corpus/ttc.py b/pythainlp/corpus/ttc.py index 88d144333..93ba14640 100644 --- a/pythainlp/corpus/ttc.py +++ b/pythainlp/corpus/ttc.py @@ -12,6 +12,7 @@ __all__ = ["word_freqs"] + def word_freqs(): """ Get word frequency from Thai Textbook Corpus (TTC) diff --git a/pythainlp/corpus/ttc_freq.txt b/pythainlp/corpus/ttc_freq.txt new file mode 100644 index 000000000..20fd33860 --- /dev/null +++ b/pythainlp/corpus/ttc_freq.txt @@ -0,0 +1,19494 @@ +ที่ 63126 +จะ 51681 +เป็น 51273 +ไป 46567 +ก็ 46409 +ไม่ 45895 +มี 44899 +ได้ 44513 +ว่า 40290 +ให้ 38715 +มา 37418 +ของ 36425 +ใน 35178 +และ 34584 +ความ 27623 +แล้ว 26765 +การ 25401 +อยู่ 25378 +คน 23226 +กัน 21229 +แต่ 17977 +เขา 16563 +นั้น 16422 +กับ 16221 +นี้ 15417 +ขึ้น 14738 +ด้วย 14694 +หรือ 14679 +จึง 14539 +อย่าง 13990 +เรา 13966 +ต้อง 13585 +ทำ 12650 +ฉัน 12075 +คำ 12014 +หนึ่ง 11965 +เห็น 11772 +ผู้ 11662 +เมื่อ 11567 +ใช้ 11558 +จาก 10720 +แม่ 10498 +ตัว 10462 +มัน 10431 +ออก 10413 +เข้า 10345 +ตาม 10082 +ดี 9779 +ยัง 9618 +เรื่อง 9511 +พูด 9439 +ไว้ 9256 +มาก 9155 +ลูก 9034 +อีก 8856 +ถึง 8717 +เพราะ 8227 +ท่าน 8095 +ลง 7923 +เสียง 7910 +ซึ่ง 7907 +ดู 7837 +รู้ 7798 +ถ้า 7486 +ทั้ง 7441 +เอา 7328 +พระ 7200 +พ่อ 7119 +คิด 6733 +บ้าน 6684 +อะไร 6671 +วัน 6491 +ทาง 6483 +คือ 6388 +หา 6255 +บอก 6170 +ทุก 6093 +เวลา 5948 +อ่าน 5939 +เช่น 5916 +สอง 5860 +น้ำ 5855 +เพื่อ 5847 +เลย 5618 +กิน 5604 +ภาษา 5561 +ผม 5530 +รับ 5498 +จน 5420 +ช่วย 5314 +เจ้า 5146 +โดย 5138 +เกิด 5051 +เสีย 5025 +หน้า 4929 +ทำให้ 4894 +กลับ 4852 +อาจ 4789 +กว่า 4780 +เหมือน 4766 +ฟัง 4755 +ข้าพเจ้า 4724 +พอ 4710 +แก่ 4612 +เธอ 4583 +ไทย 4560 +คง 4481 +เดิน 4480 +เด็ก 4450 +อัน 4414 +ใคร 4383 +เคย 4350 +บ้าง 4319 +งาน 4261 +นำ 4193 +เมือง 4190 +ใจ 4092 +ถาม 4041 +ควร 4036 +บาง 3992 +ทรง 3939 +ครั้ง 3928 +ใด 3837 +พวก 3811 +ใหญ่ 3792 +ขอ 3785 +แสดง 3749 +หลาย 3683 +ต่างๆ 3608 +สี 3585 +ถูก 3563 +ก่อน 3538 +กำลัง 3512 +สิ่ง 3510 +หนังสือ 3495 +พา 3492 +เขียน 3491 +ส่วน 3472 +เล่า 3401 +ต่อ 3390 +อื่น 3380 +ตน 3357 +นั่ง 3349 +บน 3344 +นี่ 3341 +เอง 3245 +กล่าว 3242 +อาหาร 3241 +รู้สึก 3236 +รัก 3232 +นก 3191 +นะ 3097 +เล่น 3070 +เรียน 3058 +อย่างไร 3036 +ตอบ 3023 +ชอบ 3008 +อยาก 3002 +นักเรียน 2983 +ร้อง 2983 +น่า 2891 +ต่อไป 2878 +นัก 2859 +ชื่อ 2835 +แห่ง 2823 +จริง 2810 +ชีวิต 2777 +น้อย 2757 +สามารถ 2701 +เข้าใจ 2692 +อย่า 2689 +ตา 2686 +ข้า 2682 +ต้น 2677 +ปี 2674 +เรือ 2673 +เดียว 2643 +แก 2637 +สัตว์ 2636 +ต่าง 2631 +คุณ 2619 +ป่า 2615 +ยิ่ง 2603 +นาย 2590 +ตาย 2569 +สำคัญ 2555 +เพื่อน 2546 +ละ 2535 +วิ่ง 2522 +ดัง 2508 +โรงเรียน 2506 +พบ 2498 +หลัง 2477 +มนุษย์ 2474 +ไม้ 2448 +นอน 2441 +ประโยค 2405 +เงิน 2380 +มอง 2377 +เรียก 2377 +ตั้ง 2364 +สาม 2337 +ยก 2301 +สัก 2295 +ส่ง 2282 +ใช่ 2248 +ทราบ 2218 +หล่อน 2208 +รู้จัก 2207 +ตรง 2204 +ครู 2203 +จับ 2171 +หมด 2171 +นาง 2163 +หนู 2158 +พี่ 2151 +ความหมาย 2133 +ครับ 2125 +บท 2121 +สำหรับ 2118 +ไหน 2080 +เพียง 2074 +ตอน 2058 +รถ 2050 +มือ 2047 +ไหม 2024 +ประโยชน์ 1997 +ใหม่ 1982 +เท่านั้น 1976 +ได้ยิน 1933 +ชาย 1926 +รีบ 1925 +ต้องการ 1910 +ยืน 1904 +ผล 1901 +ฝ่าย 1870 +มัก 1867 +ตัวอย่าง 1852 +ห้อง 1850 +ทหาร 1847 +เลี้ยง 1828 +ผิด 1824 +ปลา 1776 +ใส่ 1763 +ข้าง 1762 +นาน 1754 +ขาย 1747 +ชนิด 1744 +ที่สุด 1734 +ข้าว 1710 +สอน 1698 +ทำไม 1692 +ซื้อ 1678 +สุข 1673 +แม้ 1656 +สูง 1639 +หนี 1632 +เก็บ 1620 +เสมอ 1620 +กลัว 1617 +โลก 1613 +รูป 1607 +มิได้ 1606 +พระองค์ 1603 +ชั้น 1596 +คอย 1584 +น้อง 1583 +บุคคล 1582 +เที่ยว 1566 +ตลอด 1565 +แรก 1546 +คืน 1538 +ศึกษา 1533 +ต้นไม้ 1525 +อื่นๆ 1525 +ทั้งหลาย 1505 +วัด 1505 +ชาว 1497 +ย่อม 1495 +ติด 1493 +จัด 1485 +ตั้งแต่ 1484 +ตก 1474 +จง 1460 +แล 1458 +พยายาม 1452 +เหตุ 1450 +นึก 1446 +ลักษณะ 1444 +เล็ก 1437 +ช้าง 1431 +หมา 1430 +จำ 1425 +ดอก 1424 +ราช 1421 +ล่ะ 1397 +คุณแม่ 1395 +วิธี 1390 +เช้า 1389 +ด้าน 1388 +ที 1388 +ถือ 1382 +ผ่าน 1377 +สร้าง 1376 +ใบ 1374 +เชื่อ 1360 +หาย 1359 +ข้อ 1354 +ครั้น 1354 +ระหว่าง 1344 +เลือก 1339 +ร่วม 1337 +ใกล้ 1331 +หน้าที่ 1329 +คะ 1327 +เรียกว่า 1326 +ยอม 1315 +เป็นต้น 1302 +นา 1295 +ม้า 1293 +หัว 1293 +เดิม 1292 +ประเทศ 1282 +อาศัย 1280 +หญิง 1277 +หยุด 1266 +ยาย 1265 +ตี 1262 +ปาก 1262 +เดียวกัน 1257 +ดังนี้ 1254 +โอกาส 1250 +นั่น 1247 +น่ะ 1247 +ยาว 1247 +รักษา 1246 +ผู้ใหญ่ 1243 +แบบ 1243 +ปลูก 1242 +แต่ง 1242 +หัวเราะ 1241 +วันนี้ 1237 +เด็กๆ 1237 +วาง 1228 +สาร 1223 +บิน 1222 +เครื่อง 1220 +ปรากฏ 1212 +ผ้า 1209 +ค่ะ 1207 +ใต้ 1202 +พร้อม 1195 +กลุ่ม 1193 +ฝน 1193 +เช่นนี้ 1191 +พลาง 1190 +เดือน 1186 +โต 1185 +เริ่ม 1180 +หรอก 1173 +สั่ง 1169 +นิทาน 1167 +ดิน 1163 +เล็กๆ 1163 +ประการ 1159 +ดังนั้น 1157 +จริงๆ 1153 +สังเกต 1152 +เสร็จ 1138 +ประตู 1126 +อายุ 1125 +แรง 1123 +เกี่ยวกับ 1121 +ชาติ 1117 +สนใจ 1113 +พิจารณา 1112 +ประชุม 1102 +เย็น 1093 +งาม 1090 +สาว 1089 +ฆ่า 1086 +ร้อน 1086 +ไกล 1086 +เหตุผล 1085 +รวม 1083 +นาม 1081 +สมัย 1077 +ตนเอง 1075 +ยา 1075 +ทัน 1065 +แต่ละ 1059 +สวน 1058 +กลาง 1057 +ร้าน 1052 +หาก 1043 +เดินทาง 1042 +สื่อสาร 1040 +สระ 1036 +ตัด 1035 +ยิ้ม 1034 +อาจารย์ 1034 +สู่ 1032 +เหล่านี้ 1031 +ลุก 1029 +ซี 1028 +ชวน 1024 +หลัก 1024 +วิชา 1020 +ทัพ 1017 +เกิน 1015 +เช่นนั้น 1014 +พวกเรา 1013 +จำเป็น 1011 +แทน 1010 +เถิด 1006 +ขาว 1005 +ทันที 1005 +ทิ้ง 1005 +ยาก 1004 +เพลง 1004 +ไก่ 1003 +เต็ม 1002 +เจ้าของ 1000 +ขน 992 +เสด็จ 992 +หัน 989 +ไฟ 988 +ปัญหา 987 +สิบ 986 +มิ 980 +จบ 977 +หญ้า 975 +หลับ 975 +คราว 973 +ข้อความ 972 +แน่ 972 +ประจำ 970 +เปิด 970 +ต่อมา 969 +บิดา 968 +รอ 967 +ประเภท 962 +เปลี่ยน 958 +จำนวน 957 +สี่ 956 +เร็ว 955 +ขาด 953 +ชม 952 +ซิ 950 +ปล่อย 950 +กระทำ 949 +ทะเล 949 +ทีเดียว 944 +ช่าง 943 +นอกจาก 940 +สบาย 939 +หมายถึง 936 +เถอะ 928 +วัว 927 +เรือน 913 +พ่อแม่ 911 +ภาพ 908 +เท่า 907 +ขา 906 +เสือ 906 +ลุง 903 +วรรค 903 +องค์ 902 +กอง 898 +ดำ 898 +มารดา 896 +จดหมาย 895 +ประกอบ 893 +ตั้งใจ 892 +ตัวเอง 891 +สู้ 891 +บางที 888 +ถ้อยคำ 886 +ณ 885 +พัก 884 +พอใจ 882 +ดีใจ 880 +นิยม 880 +ผู้หญิง 879 +เหลือ 879 +ครอบครัว 874 +ถูกต้อง 874 +ช้า 873 +ลา 872 +แดง 872 +ค่า 871 +เนื้อ 865 +บุตร 859 +เกาะ 859 +โกรธ 854 +สังคม 849 +ง่าย 847 +หมู่บ้าน 841 +พยัญชนะ 836 +ลม 829 +สนุก 825 +เท้า 821 +ดอกไม้ 820 +ชาวบ้าน 819 +ทอง 819 +เจริญ 817 +เหล่านั้น 814 +สงสัย 810 +ไล่ 807 +อธิบาย 806 +สาย 803 +เพื่อนๆ 803 +กำหนด 801 +ปฏิบัติ 800 +นอก 799 +ตกใจ 798 +กลิ่น 794 +ธรรมชาติ 793 +ทุกข์ 790 +ขณะที่ 788 +ขนาด 785 +เฉพาะ 784 +เชิญ 784 +สม 778 +เหตุการณ์ 775 +ผัก 772 +ลืม 771 +หยิบ 770 +แม่น้ำ 770 +กรุง 767 +งู 767 +หมาป่า 767 +ชี้ 765 +ชั่ว 764 +ตื่น 761 +ยิง 760 +เสื้อ 760 +แบ่ง 759 +ระดับ 757 +รับประทาน 757 +สิ้น 755 +หลาน 755 +กล้า 753 +ฝูง 753 +ลำ 753 +วรรณคดี 752 +ทั่ว 751 +เกือบ 751 +เปล่า 751 +เหนือ 751 +ขนม 749 +จ๊ะ 749 +สำเร็จ 748 +หนัก 747 +ถนน 740 +ประมาณ 739 +พ้น 737 +สวย 737 +คู่ 733 +คุณพ่อ 732 +รอบ 731 +นิ่ง 730 +ปัจจุบัน 729 +ขยาย 728 +บริเวณ 728 +กลาย 726 +ห้า 723 +มากมาย 722 +ถวาย 721 +บาท 718 +ไหล 716 +นับ 715 +อาการ 715 +หน่อย 711 +อ้าย 711 +ที่ไหน 705 +ผู้ฟัง 704 +กัด 703 +แหละ 703 +ตรัส 702 +แก้ 702 +ทั้งปวง 698 +จนถึง 697 +กริยา 696 +เฝ้า 696 +ยาม 693 +ลอง 691 +อา 690 +หมู่ 689 +ชัดเจน 684 +ร้อย 680 +อ่อน 679 +บัดนี้ 677 +ปิด 672 +หวัง 672 +เรื่องราว 669 +แมว 669 +อากาศ 665 +เก่ง 665 +พื้น 664 +โรง 663 +พม่า 662 +มหา 662 +สะอาด 662 +เก่า 659 +เรียบร้อย 655 +รบ 654 +ไข่ 654 +เลิก 653 +กระโดด 651 +ลำดับ 651 +ปลาย 650 +แก้ว 650 +โปรด 650 +ประพันธ์ 648 +ภาค 648 +คอ 647 +จ้ะ 645 +หนุ่ม 640 +ผูก 638 +ซ้ำ 637 +ละคร 637 +แทบ 637 +ทั่วไป 634 +อารมณ์ 634 +โต๊ะ 633 +ภรรยา 630 +ทูล 629 +สำนวน 629 +หมอ 629 +กา 628 +ริม 628 +อันตราย 628 +ปลาวาฬ 627 +เตรียม 625 +เล่ม 625 +หู 624 +แจ้ง 616 +กระต่าย 615 +กลับบ้าน 615 +ยินดี 615 +ค่ำ 614 +วันที่ 612 +ร้าย 611 +ข่าว 610 +โทษ 609 +ได้แก่ 608 +ธรรม 607 +หลวง 607 +ปัญญา 606 +เพิ่ม 604 +ทั้งหมด 603 +พยางค์ 603 +พิเศษ 603 +ไร่ 602 +คัน 600 +จีน 599 +ร้องไห้ 599 +ท่า 598 +เมีย 598 +จังหวัด 597 +ลอย 595 +เอ๋ย 593 +ย่า 592 +คุย 590 +บ้านเมือง 589 +ประธาน 589 +ท่าทาง 586 +ธรรมดา 586 +ชน 583 +ผู้เขียน 583 +เสนอ 583 +รัง 580 +ท้าย 578 +แตก 574 +ขับ 573 +มิใช่ 571 +ยอด 570 +คำพูด 569 +ประ 567 +ประกาศ 567 +สถานที่ 566 +พัฒนา 565 +ปกติ 564 +ศีรษะ 563 +คล้าย 561 +สนทนา 561 +เหมาะสม 561 +ท้อง 558 +เสียก่อน 557 +ดูแล 555 +เอย 555 +ศรี 554 +หอม 550 +ฝั่ง 549 +ฟ้า 549 +เรียง 547 +ไม่ค่อย 547 +ราคา 546 +ก็ตาม 545 +กี่ 544 +นั้นๆ 543 +ก็ดี 542 +ฟัน 541 +พอดี 540 +สมเด็จ 540 +แนะนำ 540 +สุด 539 +เกวียน 539 +แปลก 539 +พระเจ้า 534 +แปล 533 +ไหว้ 533 +ค่อย 531 +ต่อสู้ 531 +ในที่สุด 531 +นิสัย 530 +บันทึก 530 +เล็กน้อย 530 +หาง 529 +ฝาก 528 +แห้ง 528 +กระดาษ 527 +เหนื่อย 526 +ตกลง 525 +ช่วยเหลือ 524 +ลำบาก 523 +เคารพ 523 +ภายใน 521 +แสน 521 +คุณย่า 520 +แยก 520 +เมืองไทย 519 +กู 518 +คิดเห็น 518 +สื่อ 518 +สงสาร 517 +หมู 516 +อังกฤษ 516 +ก๋ง 514 +คิดถึง 513 +คุณครู 513 +ดื่ม 512 +ราชการ 511 +บังคับ 510 +หิน 508 +คุณค่า 507 +ทน 505 +ดิฉัน 504 +เขียว 503 +ครัว 502 +ฉลาด 502 +อำนาจ 502 +แถว 502 +กล่าวถึง 501 +กลอน 500 +เหลือเกิน 500 +คุณปู่ 499 +ระวัง 499 +กะ 498 +ข้าม 498 +เพิ่ง 498 +วิธีการ 495 +วรรณยุกต์ 494 +กษัตริย์ 493 +คณะ 492 +นั่นเอง 492 +กรรม 491 +กลางคืน 490 +โบราณ 490 +แต่งตัว 489 +ค่อยๆ 488 +จิต 487 +ตลาด 487 +ประสงค์ 487 +ดำเนิน 485 +ระยะ 484 +ขอรับ 483 +อักษร 483 +ใกล้ๆ 483 +ล้วน 481 +ฤดู 480 +โรค 480 +ถิ่น 479 +พี่น้อง 478 +สุดท้าย 478 +กุมาร 477 +ยังไง 477 +กล้วย 475 +ฝีมือ 475 +ผี 474 +รุ่ง 474 +เอ็ง 474 +แผ่นดิน 474 +ผู้นั้น 473 +แล่น 473 +แสง 473 +บ่น 470 +ป้า 470 +สวม 469 +เชิง 469 +กาย 467 +ตัก 467 +จุด 465 +ปู่ 465 +ผู้ชาย 465 +รูปร่าง 465 +สิ 465 +เชือก 465 +สะดวก 464 +จิตใจ 463 +เนื้อหา 463 +แท้ 463 +ทั้งนี้ 462 +เกรง 462 +กลางวัน 461 +แขน 461 +ฉะนั้น 460 +ต่ำ 460 +พระทัย 459 +พืช 459 +ญาติ 458 +ตำแหน่ง 458 +บาลี 458 +ลาน 457 +หนัง 456 +พัด 455 +ศัพท์ 455 +ห้าม 455 +กิริยา 454 +ขี่ 454 +พัน 454 +หอย 454 +ภัย 451 +สนิท 450 +คำถาม 449 +ฐานะ 449 +สงคราม 449 +สืบ 449 +ศาสนา 448 +เดี๋ยวนี้ 448 +เป็นอันมาก 447 +ไพเราะ 447 +ตื่นเต้น 446 +ทั้งนั้น 446 +ลิง 446 +เส้น 446 +โคลง 445 +โดยเฉพาะ 445 +หัวหน้า 444 +อก 444 +เอ่ย 444 +เสียใจ 443 +แตกต่าง 443 +ยักษ์ 442 +ระเบียบ 441 +ดวง 440 +ทรรศนะ 440 +อนุญาต 440 +อด 438 +วัฒนธรรม 437 +ข้อมูล 436 +สินค้า 435 +ประเพณี 434 +ล้ม 434 +ก้ม 433 +หัก 433 +เปลี่ยนแปลง 433 +แน่นอน 433 +กราบ 432 +หิว 432 +พร้อมกับ 431 +วัย 431 +สั้น 431 +สุภาพ 431 +ครึ่ง 430 +ชาวนา 429 +ป้องกัน 429 +สรรพนาม 429 +สรุป 429 +ผู้คน 428 +สงบ 428 +ข้างหน้า 427 +ติดต่อ 427 +ร่างกาย 426 +เหมือนกับ 426 +ทิศ 425 +นคร 425 +ห่าง 425 +ตำบล 423 +เหมาะ 423 +แผ่น 423 +ไร 423 +สายตา 420 +เจ็บ 420 +ราวกับ 419 +ห่อ 419 +เดี๋ยว 418 +หก 417 +เบาๆ 417 +จนกระทั่ง 416 +ทราย 416 +หัวใจ 416 +อาทิตย์ 416 +ทำลาย 415 +หมายความ 414 +นับถือ 413 +บ่อยๆ 413 +ย่อ 412 +หากิน 412 +เลือด 412 +กวาง 410 +ทุ่ง 410 +บูชา 409 +ล้าง 409 +สันสกฤต 409 +บุญ 408 +ร่าง 408 +ชัก 407 +รวดเร็ว 407 +สมควร 407 +สัญญา 407 +ขณะ 406 +ภายหลัง 406 +ประชาชน 405 +ประเด็น 405 +หนาว 405 +กระเป๋า 404 +ปรารถนา 404 +นม 403 +กิ่ง 402 +ผลไม้ 401 +หลังจาก 401 +ปืน 400 +เพราะฉะนั้น 400 +ไอ้ 400 +ทำเป็น 399 +จด 398 +พิธี 398 +แดด 397 +ครู่ 396 +ตัวละคร 396 +กรุณา 395 +ลูกชาย 394 +วิเศษ 394 +กว้าง 393 +สัมผัส 393 +เมตตา 393 +ศัตรู 392 +สนุกสนาน 392 +แข็งแรง 392 +ลด 391 +วง 391 +หลง 391 +กราบทูล 390 +ต่อไปนี้ 390 +ประพฤติ 390 +เอก 390 +ฉบับ 389 +ถือว่า 389 +นึกถึง 389 +สามี 389 +อภิปราย 389 +สภาพ 388 +ไผ่ 388 +รส 387 +ใครๆ 387 +ขัน 386 +นอกจากนี้ 386 +แต่ก่อน 385 +ฝึก 384 +แน่น 384 +โจร 384 +ครู่หนึ่ง 382 +นิ้ว 382 +ไหว 382 +หน้าตา 381 +เดือดร้อน 381 +พระยา 380 +รายงาน 380 +รวมทั้ง 379 +กิจกรรม 378 +ดูเหมือน 378 +ตะโกน 378 +สวยงาม 378 +ดึง 377 +บรรดา 377 +หมาย 377 +เยี่ยม 377 +ครบ 376 +มองเห็น 376 +ทรัพย์ 375 +ขุด 374 +ทั้งสิ้น 374 +ประสม 374 +ยอมรับ 374 +อาชีพ 374 +ก้อน 373 +กองทัพ 372 +ช่วง 372 +ติดตาม 372 +รถไฟ 372 +แก้ไข 372 +พันธุ์ 371 +เจ็ด 371 +ค่าย 370 +ลูกสาว 370 +จัก 369 +รอย 368 +แกะ 368 +ซ้อน 367 +น้ำตา 367 +อาบน้ำ 367 +เทวดา 366 +คุณยาย 365 +พ่อค้า 365 +ระ 365 +ถุง 364 +พรุ่งนี้ 364 +ชัด 363 +รำ 363 +วิเคราะห์ 363 +ตอนนี้ 361 +พูดจา 361 +เหลือง 361 +ถ้ำ 360 +บ่าย 359 +ปู 359 +แมลง 359 +ชุด 358 +เงียบ 358 +คำสั่ง 357 +โขลง 357 +ขอบคุณ 356 +ต่างประเทศ 356 +มิให้ 356 +วาจา 356 +ห่วง 356 +เตือน 356 +กวี 355 +ล่า 355 +เปลือก 355 +ธุระ 354 +บันได 354 +มืด 354 +สมบัติ 354 +เจดีย์ 354 +เสื้อผ้า 353 +แม้แต่ 353 +พึง 352 +พื้นดิน 352 +ร้องเพลง 352 +แอบ 352 +ขณะนั้น 351 +ราว 351 +โน้น 351 +เศษ 350 +รา 349 +ศิษย์ 349 +เป็นไร 348 +เรียนรู้ 348 +แพะ 348 +ตำรวจ 347 +ประกอบด้วย 347 +รางวัล 347 +สนาม 347 +ขยัน 346 +หลบ 346 +คนเรา 345 +สำนัก 345 +สีหน้า 344 +เกลียด 344 +แข่งขัน 343 +รั้ว 342 +ใบไม้ 342 +ภูเขา 340 +หัด 340 +เรื่อยๆ 340 +งดงาม 339 +ดุ 339 +รับสั่ง 339 +ลับ 339 +ลึก 339 +ส่วนตัว 339 +ขวา 338 +คำตอบ 338 +สวัสดี 338 +แคว้น 338 +แพ้ 338 +ข้างต้น 337 +ซ้าย 337 +ทำนอง 337 +มึง 337 +ใส 337 +บ่อ 336 +ฝัน 336 +พระราชา 336 +พี่ชาย 336 +ศิลปะ 336 +คลอง 335 +จมูก 335 +ธนู 335 +ว่าง 334 +สว่าง 334 +สิ่งของ 334 +อย่างยิ่ง 333 +อำเภอ 333 +เออ 333 +ศพ 332 +เป็นอัน 332 +ซ่อน 331 +น่ารัก 331 +หนา 331 +ร่ม 330 +สุนัข 330 +เห็นด้วย 330 +แท้จริง 330 +กรณี 329 +สั่น 329 +ส่งเสียง 329 +ส่อง 329 +หน้าต่าง 329 +กอด 328 +รด 328 +พระบรม 326 +ง่ายๆ 325 +ตัวสะกด 325 +ประสบการณ์ 325 +ฝรั่ง 325 +ส่วนใหญ่ 325 +เว้น 325 +เสา 325 +ดูก่อน 324 +หม้อ 324 +อุ้ม 324 +เครื่องหมาย 324 +กระไร 322 +ทุกๆ 322 +ปีก 322 +โต้แย้ง 322 +มอบ 321 +สมุด 320 +สอบ 320 +ชั่วโมง 319 +มั่นคง 318 +เผา 318 +มิตร 317 +หลักการ 317 +เท่าไร 317 +กระ 316 +คำนึง 316 +เต่า 316 +ใดๆ 316 +กฎหมาย 315 +ขอบใจ 315 +ค่อนข้าง 315 +สมบูรณ์ 315 +เมื่อไร 315 +ไง 314 +จังหวะ 313 +มากๆ 313 +ขโมย 312 +ปรึกษา 312 +โน้มน้าว 312 +พระราชทาน 311 +ย้าย 311 +รอบๆ 311 +หน 311 +เช่นเดียว 310 +เด็กชาย 310 +เร่ง 310 +เศร้า 310 +โง่ 310 +จัดการ 309 +ดังกล่าว 309 +ทำท่า 309 +อบรม 309 +เชื่อม 309 +แปลง 309 +บิดามารดา 308 +ร้อยกรอง 308 +กบ 307 +ล้อม 307 +วัง 307 +อร่อย 307 +ทันใด 306 +พิษ 306 +รัชกาล 306 +น้ำใจ 305 +รึ 305 +ล้อ 305 +หวาน 305 +เพียงแต่ 305 +ฉันท์ 304 +นับว่า 303 +ราย 303 +เปรียบเทียบ 303 +แต่ว่า 302 +ปกครอง 301 +สัมพันธ์ 301 +เต็มที่ 301 +เอาใจใส่ 301 +ชายหนุ่ม 299 +ตรวจ 297 +หมาก 297 +เป็ด 297 +แกล้ง 297 +ตัดสินใจ 296 +มารยาท 296 +รุ่น 296 +หมี 296 +จากนั้น 295 +ถ้วย 295 +เขต 295 +แนว 295 +กาล 294 +รอง 294 +ราชสีห์ 294 +พลอย 293 +ใคร่ 293 +ขั้น 292 +ควาย 292 +มอญ 292 +รูปแบบ 292 +สา 292 +เก้าอี้ 292 +กางเกง 290 +ชี้แจง 290 +ลาก 290 +ประสบ 289 +เสียที 289 +กล 288 +ก่อ 288 +เสริม 288 +แม้ว่า 288 +ยกย่อง 287 +อ้อ 287 +จ๋า 286 +ทักทาย 286 +น้ำตาล 286 +บัณฑิต 286 +แข็ง 286 +ยาง 285 +จ้อง 284 +ชนะ 284 +ดนตรี 284 +พุทธ 284 +เจ้าคุณ 284 +ที่จริง 283 +บวช 283 +สั่งสอน 283 +อ้วน 283 +กรุงเทพฯ 282 +ก้าว 282 +ควบ 282 +ช่อง 282 +นี่แหละ 282 +พยัก 282 +มะพร้าว 282 +หนังสือพิมพ์ 282 +เจ้าหน้าที่ 282 +ผึ้ง 281 +มุ่ง 281 +ลำธาร 281 +สนับสนุน 281 +เงา 281 +น้อยๆ 280 +ผิว 280 +เท่ากับ 280 +ไร้ 280 +คาบ 279 +จัง 279 +ทอด 279 +ประวัติ 279 +อิ่ม 279 +โอ 279 +แน่ใจ 278 +ดีๆ 277 +ตามใจ 277 +น้ำเสียง 277 +คุม 276 +กรม 275 +ชื่อเสียง 275 +ต้ม 275 +กิ่งไม้ 274 +ติ 274 +บุรุษ 274 +ระบบ 274 +สด 274 +สตางค์ 274 +แหม 274 +ตลอดจน 273 +สามัคคี 273 +อำมาตย์ 273 +อุบาย 273 +เบา 273 +ชอบใจ 272 +บทความ 272 +ลาย 272 +หลุด 272 +ขัด 271 +ทุกที 271 +มัว 271 +แม้น 271 +สมาชิก 270 +แหล่ง 270 +ขุนนาง 269 +ข้อเท็จจริง 269 +ปลอดภัย 269 +ละเอียด 269 +เจรจา 269 +ศาลา 268 +เล่าเรียน 268 +กระมัง 267 +น้องชาย 267 +ในขณะที่ 266 +วิชาการ 265 +ขอบ 264 +ข้อคิด 264 +บรรยาย 264 +พราหมณ์ 264 +เกี่ยวข้อง 264 +ขยะ 263 +อาวุธ 263 +อ้าง 263 +ถึงกับ 262 +ผัว 262 +ข้าราชการ 261 +น้า 261 +ชิ้น 260 +ประหลาด 260 +ประเดี๋ยว 260 +ปัก 260 +วาด 260 +วิเศษณ์ 260 +เมล็ด 260 +เศรษฐี 260 +กฎ 259 +ถอน 259 +สาระ 259 +เนื่องจาก 259 +เหล้า 259 +ไว 259 +กาพย์ 258 +น้ำมัน 258 +ประเมิน 258 +พระมหากษัตริย์ 258 +ลูกๆ 258 +วงศ์ 258 +สามัญ 258 +โทรศัพท์ 258 +นั่นแหละ 257 +ราษฎร 257 +ศึก 257 +หนอง 257 +เติบโต 257 +ตุ๊กตา 256 +ถัง 256 +แค่ 256 +กิจ 255 +ตระกูล 255 +ส่วนมาก 255 +เจ้านาย 255 +บาน 254 +ฝา 254 +สะพาน 254 +ขบวน 253 +ทางการ 253 +รอด 253 +ครอง 252 +พิมพ์ 252 +อดทน 252 +โน่น 252 +จอด 251 +ดาว 251 +ตึก 251 +ประหยัด 251 +พูดถึง 251 +ยื่น 251 +เร็วๆ 251 +แขก 251 +ขยับ 250 +วา 250 +วิจารณ์ 250 +สักหน่อย 250 +แท้ๆ 250 +มะม่วง 248 +เครื่องมือ 248 +เพลิดเพลิน 248 +ชุมชน 247 +ทำร้าย 247 +สาเหตุ 247 +เตียง 247 +เพียงใด 247 +แล้วแต่ 247 +โดน 247 +โท 247 +กิจการ 246 +ชา 246 +ดำรง 246 +ตำรา 246 +สตรี 246 +เทียว 245 +เรียบเรียง 245 +แปด 245 +ซัก 244 +พระราชนิพนธ์ 244 +พวกเขา 244 +พี่เลี้ยง 244 +อาย 244 +เนื้อความ 244 +เบื่อ 244 +เปรียบ 244 +บก 243 +ย่าง 243 +ใหม่ๆ 243 +ธิดา 242 +นิด 242 +มุม 242 +รายละเอียด 242 +โค 242 +โวหาร 242 +ข้างๆ 241 +ชาม 241 +ต้อนรับ 241 +ทำบุญ 241 +ท้องฟ้า 241 +รัฐบาล 241 +หายใจ 241 +อุปสรรค 241 +เพราะว่า 241 +แวะ 241 +ตัวผู้ 240 +ทำนา 240 +ขวด 239 +ตะ 239 +พร 239 +รายการ 239 +สุโขทัย 239 +ดาบ 238 +ประหลาดใจ 238 +พักผ่อน 238 +อนาคต 238 +ที่อยู่ 237 +บ้า 237 +แต่งงาน 237 +ท่อง 236 +สติปัญญา 236 +สะกด 236 +เนื้อเรื่อง 236 +การงาน 235 +ขอม 235 +ชุมนุม 235 +ตะวันออก 235 +ทับ 235 +อนึ่ง 235 +เม็ด 235 +แจ่มใส 235 +กว้างขวาง 234 +ศักดิ์ 234 +สติ 234 +แทนที่ 234 +กระทบ 233 +ตำ 233 +ถนัด 233 +น้ำหนัก 233 +ข้าศึก 232 +ชรา 232 +ดวงอาทิตย์ 232 +ทุกวันนี้ 232 +รู 232 +สุ 232 +ทั้งๆ 231 +นอกจากนั้น 231 +ผืน 231 +พึ่ง 231 +หมวก 231 +ค้างคาว 230 +ตีน 230 +พล 230 +อาสา 230 +เหล่า 230 +ค้นคว้า 229 +ตาก 229 +สุภาษิต 229 +เกษตร 229 +โรงพยาบาล 229 +คุณตา 228 +จม 228 +เท่านี้ 228 +ฝิ่น 227 +พลู 227 +เสียหาย 227 +กันและกัน 226 +สวรรค์ 226 +แจก 226 +ฐาน 225 +ต่างหาก 225 +ถั่ว 225 +ทาน 225 +ยศ 225 +ย่อย 225 +เรื่อย 225 +แหลม 225 +กวาด 224 +ชู 224 +ยึด 224 +ฤทธิ์ 224 +กับข้าว 223 +จึ่ง 223 +ชื่น 223 +หลักฐาน 223 +หลังคา 223 +ผู้แต่ง 222 +สถาน 222 +สัปดาห์ 222 +เฒ่า 222 +ค้าขาย 221 +ตัดสิน 221 +สุก 221 +บริษัท 220 +พระราชวัง 220 +โมง 220 +ก่อให้เกิด 219 +คา 219 +นัยน์ตา 219 +ปน 219 +ระมัดระวัง 219 +ว่ายน้ำ 219 +หลายๆ 219 +เพียงไร 219 +แย่ง 219 +กรุงเทพ 218 +ชำนาญ 218 +ทา 218 +คุณธรรม 217 +ทดลอง 217 +นาฬิกา 217 +ฝรั่งเศส 217 +รำคาญ 217 +หนอ 217 +ดับ 216 +ผสม 216 +พระสงฆ์ 216 +อ้าว 216 +ไหม้ 216 +ขวบ 215 +ขี้ 215 +ทำมาหากิน 215 +มัด 215 +รองเท้า 215 +ส่งเสริม 215 +หัวข้อ 215 +เท 215 +เพลิน 215 +เอ 215 +แสงแดด 215 +ตะกร้า 214 +สั้นๆ 214 +เด็กหญิง 214 +นาที 213 +มงคล 213 +ยากจน 213 +โฆษณา 213 +ขัง 212 +ท่อน 212 +รับผิดชอบ 212 +ลัก 212 +สรรเสริญ 212 +เติม 212 +เพิ่มเติม 212 +ญวน 211 +ดังที่ 211 +พญา 211 +พุ่ง 211 +รบกวน 211 +รวบรวม 211 +รักใคร่ 211 +ลงโทษ 211 +สังข์ 211 +เพื่อนบ้าน 211 +ขอโทษ 210 +ช้าๆ 210 +ด่า 210 +ทะเลาะ 210 +มื้อ 210 +เทียบ 210 +นานๆ 209 +วิทยุ 209 +โชคดี 209 +ไฟฟ้า 209 +กำแพง 208 +คลื่น 208 +ชะนี 208 +ดวงจันทร์ 208 +ภูมิใจ 208 +เมื่อนั้น 208 +แน่ะ 208 +ข้างหลัง 207 +คนใช้ 207 +รับใช้ 207 +ราชาศัพท์ 207 +หมุน 207 +คอมพิวเตอร์ 206 +บัว 206 +อี 206 +เรื่องสั้น 206 +พาย 205 +มิฉะนั้น 205 +รับรอง 205 +หล่น 205 +อาจารย์ใหญ่ 205 +เทพ 205 +เลว 205 +คม 204 +จำพวก 204 +ถอย 204 +ปฏิเสธ 204 +วัตถุ 204 +สอด 204 +สู 204 +เน้น 204 +แทรก 204 +ปรีชา 203 +สบายใจ 203 +โผล่ 203 +กระทรวง 202 +กังวล 202 +เพียร 202 +เมฆ 202 +เอ็นดู 202 +กระจาย 201 +บึง 201 +พระพุทธศาสนา 201 +ล่าง 201 +หมาจิ้งจอก 201 +แค้น 201 +กลม 200 +กำเนิด 200 +ขณะนี้ 200 +ดั่ง 200 +ป่วย 200 +รถยนต์ 200 +ห้องเรียน 200 +เจอ 200 +สำราญ 199 +อุทาน 199 +โอรส 199 +ไฉน 199 +กล้าหาญ 198 +คุณลุง 198 +ลูกหลาน 198 +เคราะห์ 198 +แข่ง 198 +แผล 198 +โยน 198 +คติ 197 +ดึก 197 +ตัวเรา 197 +บริวาร 197 +สันธาน 197 +จุดมุ่งหมาย 196 +จ่าย 196 +ที่ดิน 196 +รายได้ 196 +หลุม 196 +เสียดาย 196 +ใบหน้า 196 +กระซิบ 195 +กระสุน 195 +ก้าวหน้า 195 +ข้าพระพุทธเจ้า 195 +พระเจ้าแผ่นดิน 195 +หนึ่งๆ 195 +หมื่น 195 +อวด 195 +เกล้า 195 +กลอง 194 +ดง 194 +นักปราชญ์ 194 +สหาย 194 +แย่ 194 +ใช้ได้ 194 +กอ 193 +คัด 193 +จำกัด 193 +ชัย 193 +นานา 193 +ปราศจาก 193 +ล่วง 193 +สมอง 193 +สัตย์ 193 +โครงการ 193 +ใหญ่ๆ 193 +ข้อสรุป 192 +ควัน 192 +ปะ 192 +สมาส 192 +อ้า 192 +เงย 192 +แกง 192 +ครั้งนั้น 191 +ทั้งคู่ 191 +ประทับ 191 +หาด 191 +เต้น 191 +แปลกใจ 191 +โพรง 191 +คว้า 190 +พราน 190 +พาล 190 +เหล็ก 190 +จาน 189 +นายพราน 189 +พระที่นั่ง 189 +ห่ม 189 +เลข 189 +ใกล้เคียง 189 +กระป๋อง 188 +ก้อนหิน 188 +ดัก 188 +ยังงั้น 188 +เจ้าพระยา 188 +ฝึกฝน 187 +วะ 187 +สมาคม 187 +กำ 186 +ควบคุม 186 +งา 186 +ทั้งที่ 186 +บรรทุก 186 +ปั้น 186 +พื้นที่ 186 +มีด 186 +ลั่น 186 +หมอน 186 +เรียบ 186 +โทรทัศน์ 186 +ค้า 185 +ชื่นชม 185 +เริ่มต้น 185 +โคน 185 +ใจดี 185 +ทุน 184 +ระลึก 184 +ลิ้น 184 +สร้างสรรค์ 184 +หาบ 184 +เป่า 184 +เลีย 184 +ขุน 183 +ผู้ปกครอง 183 +หุ่น 183 +เกณฑ์ 183 +เทียน 183 +เพลิง 183 +เหยี่ยว 183 +เหลียว 183 +กล่อม 182 +กุ้ง 182 +ชมรม 182 +ตะวันตก 182 +ทักษะ 182 +ยุค 182 +ลงมือ 182 +วุ่นวาย 182 +เงียบๆ 182 +เชื่อถือ 182 +จนกว่า 181 +ตรี 181 +ประทาน 181 +รู้ตัว 181 +เกี่ยว 181 +เงินทอง 181 +เหยียบ 181 +คบ 180 +บ้านเรือน 180 +ราชา 180 +สมัคร 180 +อุตส่าห์ 180 +เพียงพอ 180 +เมา 180 +แล้ง 180 +มั่น 179 +ราง 179 +สาน 179 +เกียรติ 179 +ไซร้ 179 +ตะวัน 178 +ถ่าน 178 +ทวน 178 +พรรณนา 178 +ยุ่ง 178 +กระท่อม 177 +น่ากลัว 177 +บำรุง 177 +ป้าย 177 +ฝัง 177 +สิ่งแวดล้อม 177 +ห่าน 177 +คุ้นเคย 176 +ประดับ 176 +ปราบ 176 +หมั่น 176 +เตรียมตัว 176 +เที่ยง 176 +เมื่อใด 176 +โชค 176 +ค้าง 175 +เทา 175 +ก้าน 174 +พี่ๆ 174 +เข้าสู่ 174 +เถียง 174 +เพชร 174 +เลี้ยงดู 174 +กด 173 +ก้อง 173 +บาป 173 +เก 173 +เฉยๆ 173 +กรุงศรีอยุธยา 172 +จา 172 +ธาตุ 172 +บรรจุ 172 +บัตร 172 +ยี่สิบ 172 +ไข้ 172 +กีฬา 171 +ว่าย 171 +สะ 171 +สับสน 171 +กร 170 +จันทร์ 170 +ทอดพระเนตร 170 +ทำงาน 170 +ธง 170 +ผ่อน 170 +รังเกียจ 170 +วาน 170 +หนทาง 170 +จุดประสงค์ 169 +ถึงแม้ 169 +ถ่ายทอด 169 +ทอ 169 +ปีน 169 +เอ๊ะ 169 +แทง 169 +ขอร้อง 168 +คลอด 168 +คุณนาย 168 +ฉาก 168 +พุ่ม 168 +หีบ 168 +เชื่อฟัง 168 +คลาย 167 +ตรงกัน 167 +ปรกติ 167 +ละก็ 167 +วรรณกรรม 167 +สดชื่น 167 +สำเนียง 167 +อาคาร 167 +เจตนา 167 +เย็บ 167 +แขวน 167 +ชมพู 166 +ซับซ้อน 166 +ยืม 166 +ราก 166 +เสวย 166 +แสวงหา 166 +โจน 166 +กระดูก 165 +พยาบาล 165 +สกปรก 165 +ห้อย 165 +เรียงความ 165 +แบบแผน 165 +ค้นหา 164 +งั้น 164 +ดีงาม 164 +ยิ้มแย้ม 164 +ย่อหน้า 164 +เต็มใจ 164 +เสื่อ 164 +แถบ 164 +โดยทั่วไป 164 +ใจความ 164 +ตัวอักษร 163 +ถอด 163 +ท่องเที่ยว 163 +ประกวด 163 +พระพุทธเจ้า 163 +วานนี้ 163 +วิทยาศาสตร์ 163 +เปื้อน 163 +เสนา 163 +กล่าวคือ 162 +ถัด 162 +พร้อมทั้ง 162 +มหาวิทยาลัย 162 +สยาม 162 +โครง 162 +โดยตรง 162 +ใหญ่โต 162 +คอก 161 +จวน 161 +ตอนเช้า 161 +ที่นอน 161 +นัด 161 +ฟอง 161 +แสดงออก 161 +ตู้ 160 +ทัก 160 +ประจักษ์ 160 +ปัจจัย 160 +รับคำ 160 +ส้ม 160 +แง่ 160 +แน่ๆ 160 +แพง 160 +กก 159 +ข้างใน 159 +ชิง 159 +ฟาด 159 +ลอด 159 +หนวด 159 +เคลื่อน 159 +เทคโนโลยี 159 +แป้ง 159 +ขวัญ 158 +บทบาท 158 +ประเสริฐ 158 +ร่วง 158 +สำนึก 158 +อะไรๆ 158 +อาลัย 158 +แจ่มแจ้ง 158 +แนวทาง 158 +ใย 158 +ก้น 157 +คาน 157 +บังเอิญ 157 +พฤติกรรม 157 +วิสัย 157 +สถานี 157 +สลับ 157 +สัญญาณ 157 +เหยื่อ 157 +แหวน 157 +กั้น 156 +ขวาง 156 +ขืน 156 +ข้างบน 156 +น้องๆ 156 +รอบคอบ 156 +สถาบัน 156 +สิทธิ์ 156 +อย่างน้อย 156 +เค้า 156 +เล็บ 156 +ข้างล่าง 155 +ดม 155 +บุหรี่ 155 +ประถมศึกษา 155 +พระนาง 155 +ฟืน 155 +รี 155 +ล่วงหน้า 155 +สง่า 155 +อย่างไรก็ตาม 155 +เปล่ง 155 +กระจก 154 +จัดแจง 154 +ดวงตา 154 +ดูซิ 154 +นวนิยาย 154 +พระพุทธเจ้าข้า 154 +มุ่งหมาย 154 +รุ่งเรือง 154 +ลูกค้า 154 +สร้อย 154 +หลอก 154 +เด่น 154 +ไท 154 +บริโภค 153 +บุญคุณ 153 +ประมาท 153 +ประวัติศาสตร์ 153 +มั่นใจ 153 +ยุโรป 153 +ริมฝีปาก 153 +สุรา 153 +กำกับ 152 +คลุม 152 +จะเห็นได้ว่า 152 +ฉะนี้ 152 +ต่อๆ 152 +พลัน 152 +ลือ 152 +สูบ 152 +เข็ม 152 +ระเบียง 151 +รับราชการ 151 +อิทธิพล 151 +เป็นอันขาด 151 +เหงื่อ 151 +ใกล้ชิด 151 +ก็แล้วกัน 150 +ชนบท 150 +ป่าไม้ 150 +พระเจ้าอยู่หัว 150 +อบอุ่น 150 +เคือง 150 +เยาะ 150 +ประดิษฐ์ 149 +ปราสาท 149 +ผู้นำ 149 +สกุล 149 +เกเร 149 +ไอ 149 +กระทิง 148 +กล่อง 148 +ข้างนอก 148 +คาด 148 +จระเข้ 148 +ต่อหน้า 148 +นุ่ง 148 +ปุ๋ย 148 +ผลงาน 148 +ผลิต 148 +ภายนอก 148 +ละมุน 148 +สะสม 148 +ไมตรี 148 +กุหลาบ 147 +ข้าวสาร 147 +ตอบแทน 147 +ตีความ 147 +ต่อเนื่อง 147 +ส่วนรวม 147 +อิสระ 147 +เลื่อน 147 +เห่า 147 +แบก 147 +ไหล่ 147 +ปลาร้า 146 +สลด 146 +เท่าไหร่ 146 +โธ่ 146 +โปรดเกล้า 146 +กระบวนการ 145 +ทีหลัง 145 +ปกากะญอ 145 +ล่อง 145 +หนอน 145 +หุง 145 +เชียว 145 +เห็นใจ 145 +แผลง 145 +จูง 144 +ท้องถิ่น 144 +บริจาค 144 +พระภิกษุ 144 +สุจริต 144 +อินเดีย 144 +โลหิต 144 +กำลังใจ 143 +ขู่ 143 +ซื่อสัตย์ 143 +มาตรา 143 +ยุติธรรม 143 +หนี้ 143 +เครื่องใช้ 143 +เชื้อ 143 +เช็ด 143 +เผอิญ 143 +เสนาบดี 143 +กตัญญู 142 +คัดค้าน 142 +ชัยชนะ 142 +ประหนึ่ง 142 +ผลัก 142 +ฟัก 142 +รุนแรง 142 +ไต่ 142 +กระบอก 141 +กลวิธี 141 +ก๊ก 141 +ฉลอง 141 +ช้านาน 141 +ปรับปรุง 141 +พอสมควร 141 +ฟาง 141 +ยิ่งใหญ่ 141 +รับรู้ 141 +ลืมตา 141 +สมัยก่อน 141 +หงสาวดี 141 +หนักหนา 141 +เท่าใด 141 +โรงแรม 141 +ฉวย 140 +ทุ่ม 140 +ร้อยแก้ว 140 +วินัย 140 +เงาะ 140 +เหน็ดเหนื่อย 140 +โล่ง 140 +กรอก 139 +จดจำ 139 +บริการ 139 +พระกรุณา 139 +มั่ง 139 +อวยพร 139 +เหยียด 139 +แพร่หลาย 139 +ปราศรัย 138 +ปลอบ 138 +ผู้ดี 138 +สนิทสนม 138 +สัมฤทธิ์ 138 +หน่วย 138 +อุ 138 +แก่ตัว 138 +แดน 138 +โคลน 138 +กำชับ 137 +ขั้นตอน 137 +บ่ 137 +ฝ่า 137 +พระคุณ 137 +มุ้ง 137 +มเหสี 137 +ศรัทธา 137 +อม 137 +เฉย 137 +เต็มที 137 +เวร 137 +แก้ม 137 +กิจธุระ 136 +คุณสมบัติ 136 +ชักชวน 136 +ตักเตือน 136 +นิดเดียว 136 +บริบูรณ์ 136 +รังแก 136 +ราม 136 +เพียงนี้ 136 +แพทย์ 136 +ขับร้อง 135 +ตรงนี้ 135 +ท้าว 135 +บำเพ็ญ 135 +ผัน 135 +พระบาทสมเด็จ 135 +พึมพำ 135 +ระงับ 135 +ลำพัง 135 +เกลือ 135 +แปลกหน้า 135 +ดิ้น 134 +ที่มา 134 +นาค 134 +บริสุทธิ์ 134 +ปาน 134 +พักตร์ 134 +ร่าย 134 +สุขภาพ 134 +หอ 134 +ไข 134 +ไว้ใจ 134 +คู 133 +ถ้าหาก 133 +พื้นบ้าน 133 +พ้อง 133 +มด 133 +วินิจฉัย 133 +เพศ 133 +ตำนาน 132 +ต่อจากนั้น 132 +ผิดพลาด 132 +พนัน 132 +ยะ 132 +ลำน้ำ 132 +วัตถุประสงค์ 132 +สรรพ 132 +สารคดี 132 +เชียงใหม่ 132 +เทียม 132 +จ้า 131 +ชมเชย 131 +ตรงกันข้าม 131 +ตรา 131 +ทำตัว 131 +ปรบมือ 131 +ผอม 131 +รับจ้าง 131 +หันหน้า 131 +อดีต 131 +เดา 131 +เอาแต่ 131 +โห่ 131 +กาด 130 +ข้าวโพด 130 +ค้น 130 +ชะลอม 130 +ซักถาม 130 +ทั่วๆ 130 +ฝึกหัด 130 +มหาดเล็ก 130 +เลิศ 130 +เลี้ยว 130 +เวียน 130 +เสมือน 130 +แต่งกาย 130 +โต้ตอบ 130 +โศก 130 +กรง 129 +กลืน 129 +ทำนาย 129 +ท่ามกลาง 129 +ผลัด 129 +พลิก 129 +รับแขก 129 +ละโว้ 129 +วิทยา 129 +อุดมสมบูรณ์ 129 +เขมร 129 +เคยชิน 129 +เมืองหลวง 129 +เมื่อกี้ 129 +เสาร์ 129 +กระนั้น 128 +ถู 128 +ทรมาน 128 +ธรรมเนียม 128 +นี่เอง 128 +บันดาล 128 +ปรับ 128 +ปีใหม่ 128 +ผู้น้อย 128 +พระจันทร์ 128 +รำพึง 128 +ร่วมมือ 128 +ลึกซึ้ง 128 +สวด 128 +เก่าๆ 128 +โทรเลข 128 +คำนำ 127 +จับใจ 127 +จารึก 127 +ซอง 127 +ทีนี้ 127 +ฟาก 127 +มังกร 127 +มุง 127 +ลูบ 127 +สวยๆ 127 +อนุรักษ์ 127 +เกราะ 127 +เหลือบ 127 +แผ่ 127 +ขาน 126 +คลาน 126 +ชิด 126 +ตอนเย็น 126 +บรรยากาศ 126 +บันเทิง 126 +บารมี 126 +บ่อย 126 +พัง 126 +ราชบุตร 126 +ฤๅษี 126 +เอ้า 126 +กฎเกณฑ์ 125 +ขนมปัง 125 +คุณป้า 125 +ช่อ 125 +ดำเนินการ 125 +ดูด 125 +ที่พัก 125 +ม่าน 125 +ย่ำ 125 +ล่อ 125 +สาธารณะ 125 +อิฐ 125 +อีสาน 125 +เครื่องแบบ 125 +เจ็บปวด 125 +กระดิก 124 +กาแฟ 124 +คุณภาพ 124 +จิ้ม 124 +ชิน 124 +ดินแดน 124 +นัย 124 +นี่แน่ะ 124 +บ่าว 124 +ประกาย 124 +พิศวง 124 +พูดคุย 124 +รัด 124 +วลี 124 +ห้องแถว 124 +เกียจคร้าน 124 +เปล่าๆ 124 +เรือรบ 124 +แฝง 124 +โรงงาน 124 +กวน 123 +กำจัด 123 +ขัดแย้ง 123 +ขึ้นอยู่กับ 123 +คล้อยตาม 123 +งง 123 +จินตนาการ 123 +น่าเชื่อ 123 +พลาด 123 +พิเคราะห์ 123 +ลูกไก่ 123 +สันนิษฐาน 123 +เกี่ยวข้าว 123 +เก้า 123 +เขลา 123 +เคลื่อนไหว 123 +เบื้อง 123 +เล้า 123 +แม่ค้า 123 +โขน 123 +ค่านิยม 122 +ต่อย 122 +ทูต 122 +น้ำผึ้ง 122 +น้ำเงิน 122 +บรรทม 122 +บัง 122 +บังเกิด 122 +ปลอม 122 +ปวด 122 +พจนานุกรม 122 +ลำตัว 122 +อ่อนๆ 122 +เงือก 122 +เผลอ 122 +เพรา 122 +เพื่อนฝูง 122 +เสื่อม 122 +เอื้อเฟื้อ 122 +ซน 121 +พินิจ 121 +รก 121 +ศักดิ์สิทธิ์ 121 +สนอง 121 +หมอบ 121 +หลีก 121 +หิ้ว 121 +อุตสาหกรรม 121 +เน่า 121 +เบียดเบียน 121 +เอะอะ 121 +กรรมการ 120 +ขีด 120 +คิ้ว 120 +จุก 120 +จ้าง 120 +ชาดก 120 +ปลุก 120 +ผู้ใช้ 120 +ยืนยัน 120 +ย้อน 120 +ฤๅ 120 +สบ 120 +สับ 120 +อ้อม 120 +เบ็ด 120 +แถม 120 +โค้ง 120 +ไทร 120 +กลิ้ง 119 +จำแนก 119 +ทบทวน 119 +ที่นั่ง 119 +นางฟ้า 119 +ผ่า 119 +พงศาวดาร 119 +พระบาทสมเด็จพระเจ้าอยู่หัว 119 +มั่งมี 119 +ว่องไว 119 +สภาพแวดล้อม 119 +สิง 119 +สูญ 119 +เคลื่อนที่ 119 +เอาละ 119 +โคร่ง 119 +ทาย 118 +นึกคิด 118 +ผีเสื้อ 118 +สอดคล้อง 118 +สิน 118 +แนวคิด 118 +ใต้ถุน 118 +กาลเทศะ 117 +ของเล่น 117 +ง่วง 117 +จำต้อง 117 +บ่า 117 +ปรุง 117 +รัฐ 117 +ล้ำ 117 +วน 117 +สะดุ้ง 117 +สำรวจ 117 +ห้องสมุด 117 +อัธยาศัย 117 +เปียก 117 +แพ 117 +คดี 116 +คนงาน 116 +ตัวเลข 116 +บรรพบุรุษ 116 +บัญชี 116 +ริน 116 +ร่ำรวย 116 +ลงท้าย 116 +ลูกเสือ 116 +หอบ 116 +อยุธยา 116 +อำนวย 116 +เศรษฐกิจ 116 +เอียง 116 +กาเหว่า 115 +คนไข้ 115 +ปี่ 115 +ภายหน้า 115 +มหาชน 115 +ยกเว้น 115 +ระฆัง 115 +รื่นเริง 115 +ลูกไม้ 115 +วิตก 115 +หยด 115 +อุ่น 115 +อ้อนวอน 115 +เผ่า 115 +เอกสาร 115 +แก่ง 115 +โดยที่ 115 +ใบตอง 115 +ครุ 114 +ชำระ 114 +ดอกบัว 114 +ตามลำพัง 114 +ทาส 114 +ธนาคาร 114 +บัดนั้น 114 +ประทับใจ 114 +ประเทศชาติ 114 +พริก 114 +สัน 114 +หัวเมือง 114 +หุ้ม 114 +แพร 114 +โอ่ง 114 +คำแนะนำ 113 +ถึงแม้ว่า 113 +นวล 113 +นิราศ 113 +บาดเจ็บ 113 +ฟุ้ง 113 +สมมุติ 113 +สัญลักษณ์ 113 +สาด 113 +สำคัญๆ 113 +หยาบ 113 +เจ้าชาย 113 +เหาะ 113 +จอม 112 +ชะงัก 112 +ตบ 112 +ติดตัว 112 +ทุกสิ่งทุกอย่าง 112 +นิยาย 112 +พวง 112 +ร่ำ 112 +ศร 112 +ศาล 112 +ศิลา 112 +เหงา 112 +ไกลๆ 112 +ดินสอ 111 +ตรงข้าม 111 +ถวายบังคม 111 +ทรัพย์สิน 111 +นายทหาร 111 +ร้าง 111 +ลาภ 111 +ลายมือ 111 +ลูกจ้าง 111 +ว่าว 111 +สนั่น 111 +อาบ 111 +เข่า 111 +เข้มแข็ง 111 +เอาชนะ 111 +แปลกๆ 111 +แลกเปลี่ยน 111 +แสงสว่าง 111 +โมโห 111 +การันต์ 110 +ครบถ้วน 110 +ด่วน 110 +ต่อเมื่อ 110 +ปก 110 +พระพุทธรูป 110 +พลเมือง 110 +มณฑล 110 +หย่อน 110 +เกียรติยศ 110 +เขื่อน 110 +เจ้าหล่อน 110 +เทศน์ 110 +เผื่อ 110 +เลื่อมใส 110 +แม่น 110 +โดยสาร 110 +ไพร 110 +กุศล 109 +จริงจัง 109 +จิ๋ว 109 +ดก 109 +ดุจ 109 +ตรอง 109 +ตรึกตรอง 109 +ที่ผ่านมา 109 +บาตร 109 +ผัด 109 +ภาระ 109 +มรดก 109 +ยัก 109 +สมรรถภาพ 109 +หลากหลาย 109 +ห่วงใย 109 +เช่า 109 +เป้น 109 +เหรียญ 109 +ข้อสังเกต 108 +ข้าวต้ม 108 +ซุ่ม 108 +ดา 108 +ดูหมิ่น 108 +ตำหนิ 108 +ทางเดิน 108 +นิจ 108 +บุพบท 108 +พาราณสี 108 +ภูมิ 108 +ร่าเริง 108 +สงกรานต์ 108 +สละ 108 +สืบไป 108 +ส่าย 108 +เขี้ยว 108 +เฆี่ยน 108 +เลี่ยง 108 +เหม็น 108 +กระรอก 107 +กล้ำ 107 +กาง 107 +กางเขน 107 +กู้ 107 +ขอบเขต 107 +ชุบ 107 +ปีศาจ 107 +ผู้ร้าย 107 +พลัด 107 +พับ 107 +พายุ 107 +ฟื้น 107 +มหาราช 107 +ยากลำบาก 107 +หนาม 107 +หลับตา 107 +หวาย 107 +เตะ 107 +เบิกบาน 107 +เอื้อม 107 +คลอ 106 +จริงใจ 106 +ต้อน 106 +ถูกใจ 106 +ประกอบการ 106 +พราย 106 +พาน 106 +ยอ 106 +ระยะทาง 106 +วาระ 106 +อพยพ 106 +อ่อนโยน 106 +เรือง 106 +แลก 106 +กรอบ 105 +กระทง 105 +ขว้าง 105 +คล้อง 105 +ซอย 105 +นรก 105 +นักหนา 105 +บรรทัด 105 +ประณีต 105 +ปา 105 +มวย 105 +วาย 105 +สะบัด 105 +สาขา 105 +อัศจรรย์ 105 +อุปมา 105 +เข้าหา 105 +กำไร 104 +ชก 104 +ตรงๆ 104 +บทเรียน 104 +บันเทิงคดี 104 +ปากกา 104 +พื้นฐาน 104 +ย้ำ 104 +สูงๆ 104 +หนูน้อย 104 +เคี้ยว 104 +เจาะ 104 +เมตร 104 +กระหาย 103 +คำนับ 103 +ชะโงก 103 +ตับ 103 +ทรัพย์สมบัติ 103 +บ้านพัก 103 +ปลาช่อน 103 +ปลื้ม 103 +ปัด 103 +ภาพยนตร์ 103 +ราชทูต 103 +ศาสตร์ 103 +องค์ประกอบ 103 +อ๋อ 103 +เจ็บป่วย 103 +เดี่ยว 103 +แต่เดิม 103 +แนะ 103 +ในขณะนั้น 103 +กัง 102 +งอกงาม 102 +ท้า 102 +พร้อมๆ 102 +ราศี 102 +ลอบ 102 +ศีล 102 +สถานการณ์ 102 +สวดมนต์ 102 +หลังจากนั้น 102 +ฮะ 102 +เสมอๆ 102 +เอกลักษณ์ 102 +แค่นี้ 102 +กระโจน 101 +ขวิด 101 +คงคา 101 +ชี 101 +ปรารภ 101 +รุม 101 +ลาด 101 +วานร 101 +เอว 101 +กระเด็น 100 +ซึม 100 +ญาณ 100 +ติเตียน 100 +ที่ปรึกษา 100 +พอใช้ 100 +พ่น 100 +มาตรฐาน 100 +มูล 100 +ย่ะ 100 +ราตรี 100 +วันหยุด 100 +วิงวอน 100 +สะท้อน 100 +อุตสาหะ 100 +เกรงใจ 100 +เคราะห์ร้าย 100 +เจ้าหญิง 100 +เหนียว 100 +แม่นยำ 100 +ไม้เท้า 100 +ของกิน 99 +คาง 99 +ช้อน 99 +ซุก 99 +ดวงใจ 99 +ตลก 99 +ทองคำ 99 +น้ำท่วม 99 +พนม 99 +พรรณ 99 +ยืดยาว 99 +ลีลา 99 +สิงห์ 99 +อุปราช 99 +เครื่องประดับ 99 +เบื้องหน้า 99 +โยคี 99 +กล้อง 98 +ข้อควร 98 +คุณหญิง 98 +จัตวา 98 +ซ่อม 98 +ตัวเมีย 98 +ตาราง 98 +ประหาร 98 +ป้อน 98 +ภาชนะ 98 +ราชธานี 98 +ลักษณนาม 98 +สดใส 98 +หมูป่า 98 +เป็นอย่างยิ่ง 98 +เรียว 98 +เสี่ยง 98 +เห่ 98 +ใช้จ่าย 98 +ไม่ใคร่ 98 +กลีบ 97 +จักร 97 +ฉุด 97 +ชะ 97 +ชั่ง 97 +ตัวแทน 97 +นั่นคือ 97 +ปฐม 97 +วิวาท 97 +หลีกเลี่ยง 97 +แซ่ 97 +ไถ 97 +กระจ่าง 96 +กระบวน 96 +กระผม 96 +คราง 96 +งอก 96 +ฉาย 96 +ประสิทธิภาพ 96 +อรุณ 96 +อินเดียนแดง 96 +อ้างอิง 96 +เสบียง 96 +โครงเรื่อง 96 +โอ้ 96 +กระจาบ 95 +กันเอง 95 +ขี้เกียจ 95 +ข้าวของ 95 +คำราม 95 +ชมพู่ 95 +ญี่ปุ่น 95 +ตระหนัก 95 +ตลิ่ง 95 +ถ่าย 95 +ธูป 95 +ผลประโยชน์ 95 +ยุ 95 +รุ่งเช้า 95 +สารพัด 95 +สำแดง 95 +เข้าเฝ้า 95 +เฉลียวฉลาด 95 +เอาใจ 95 +แวว 95 +โบสถ์ 95 +กุ 94 +คล้ายคลึง 94 +ควาญ 94 +งูเห่า 94 +ชอบกล 94 +ตกแต่ง 94 +ประคอง 94 +ผง 94 +มนต์ 94 +รัตนโกสินทร์ 94 +ศอก 94 +สะอื้น 94 +สูงสุด 94 +หาไม่ 94 +อบ 94 +เบื่อหน่าย 94 +เผ่น 94 +เมื่อไหร่ 94 +โตๆ 94 +ใต้ฝ่าละอองธุลีพระบาท 94 +กระดาน 93 +กว้างใหญ่ 93 +ข่าวสาร 93 +คล่องแคล่ว 93 +จิก 93 +ฉันใด 93 +ดำรงชีวิต 93 +น้ำแข็ง 93 +พื้นเมือง 93 +สงฆ์ 93 +ห้องน้ำ 93 +อนุมาน 93 +เกม 93 +เสภา 93 +คด 92 +คล่อง 92 +คล้ายๆ 92 +นมัสการ 92 +พระผู้เป็นเจ้า 92 +ราชคฤห์ 92 +ลหุ 92 +วางแผน 92 +สมิง 92 +สมุนไพร 92 +สังเคราะห์ 92 +หน้าผาก 92 +อำลา 92 +เฉลียง 92 +เป้าหมาย 92 +เพ่ง 92 +เยาว์ 92 +เลื้อย 92 +แปรง 92 +โฉม 92 +โรงนา 92 +ใจคอ 92 +ไพร่พล 92 +ขัดข้อง 91 +ชาน 91 +ดีด 91 +บรรจง 91 +พยาน 91 +พระบาท 91 +ฟ้อน 91 +ย่อง 91 +รัศมี 91 +ร่มรื่น 91 +สนธิ 91 +สุนทร 91 +เทพเจ้า 91 +แตงโม 91 +ขบขัน 90 +คณะกรรมการ 90 +คำกล่าว 90 +คุ้มครอง 90 +จำลอง 90 +ถึงคราว 90 +ทวี 90 +นิดหน่อย 90 +น้อยใจ 90 +บดี 90 +ร่วมใจ 90 +สิ้นสุด 90 +หมดสิ้น 90 +หวี 90 +อินทร์ 90 +อ่อนหวาน 90 +เด็ดขาด 90 +เยาวชน 90 +เย้ย 90 +แห 90 +โกง 90 +ใต้เท้า 90 +ไตร 90 +ขวาน 89 +ชีพ 89 +ชุ่ม 89 +ด้าย 89 +บรม 89 +ประชา 89 +ผา 89 +รอบรู้ 89 +ลุ่ม 89 +สิทธิ 89 +อารี 89 +แม่ทัพ 89 +แย้ง 89 +โดด 89 +ใช้สอย 89 +คัดเลือก 88 +คารวะ 88 +ฉมวก 88 +ดุร้าย 88 +ตั้งต้น 88 +ทวีป 88 +ทิศทาง 88 +ทุกแห่ง 88 +บัญชา 88 +ลาบ 88 +สมมติ 88 +หน่วยงาน 88 +หันหลัง 88 +หารือ 88 +อีกหน่อย 88 +เนิน 88 +เวตาล 88 +เสพ 88 +แบบอย่าง 88 +ไปรษณีย์ 88 +ขอเดชะ 87 +ขัดขวาง 87 +งวง 87 +นักเลง 87 +น้ำค้าง 87 +พิศ 87 +ยังงี้ 87 +รวง 87 +รามเกียรติ์ 87 +ริ 87 +ริษยา 87 +ร่มเย็น 87 +สูด 87 +อุโบสถ 87 +อ่าว 87 +เคียง 87 +เปลือง 87 +แท่ง 87 +แฮ 87 +ขนุน 86 +ครรภ์ 86 +คำอธิบาย 86 +น้อม 86 +บรรลุ 86 +มัง 86 +สามสิบ 86 +อนิจจา 86 +อุปกรณ์ 86 +เครื่องบิน 86 +เตี้ย 86 +เอ็ด 86 +เอ้อ 86 +แผนที่ 86 +โน 86 +โหร 86 +กระแส 85 +กึ่ง 85 +ขลาด 85 +คว่ำ 85 +ชัง 85 +ทะลุ 85 +ท่าที 85 +นายช่าง 85 +ปะปน 85 +ผูกพัน 85 +ภาคภูมิใจ 85 +มานะ 85 +รวย 85 +ละลาย 85 +ลำคลอง 85 +หมายเลข 85 +อย่างไรก็ดี 85 +เสมียน 85 +แห้งแล้ง 85 +โอบ 85 +กุญแจ 84 +คำขวัญ 84 +ซื่อ 84 +ดังๆ 84 +ดำริ 84 +ตอนต้น 84 +ตายาย 84 +ประสาน 84 +ป่าน 84 +ป่านนี้ 84 +ผู้ใหญ่บ้าน 84 +ฝีเท้า 84 +พลับพลา 84 +มะเขือ 84 +วิตกกังวล 84 +หนักแน่น 84 +ออกปาก 84 +อิน 84 +เชื่อมั่น 84 +เช้าตรู่ 84 +เตา 84 +เลียน 84 +แมลงปอ 84 +แห่ 84 +ใฝ่ 84 +ขับไล่ 83 +ควัก 83 +จริงอยู่ 83 +ประดิษฐาน 83 +มณี 83 +ระบุ 83 +ลมหายใจ 83 +ลิจฉวี 83 +สำเภา 83 +อาวุโส 83 +อึ่งอ่าง 83 +เรียงราย 83 +เวทนา 83 +เวที 83 +คล้องจอง 82 +คะแนน 82 +ค้อน 82 +ฆ้อง 82 +จรรโลง 82 +จัดทำ 82 +ซีก 82 +ปรางค์ 82 +ปุ 82 +พลัง 82 +มะตูม 82 +มาลัย 82 +รุ้ง 82 +ลังเล 82 +ลาง 82 +สิงโต 82 +อธิษฐาน 82 +อิจฉา 82 +เกสร 82 +เถาวัลย์ 82 +เท็จ 82 +เสน่ห์ 82 +แกม 82 +โพธิ์ 82 +กะทัดรัด 81 +ขอยืม 81 +คุ้ม 81 +จักรยาน 81 +ชั่วคราว 81 +ดื้อ 81 +ธาร 81 +ประสานเสียง 81 +ผู้เรียน 81 +พระนิพนธ์ 81 +มาร 81 +ม้วน 81 +ยืด 81 +ย้อม 81 +รี่ 81 +สำรับ 81 +เคร่งครัด 81 +เงื่อนไข 81 +เศร้าโศก 81 +แก่น 81 +แช่ 81 +แมลงวัน 81 +แรม 81 +โพก 81 +ใจหาย 81 +จอง 80 +ต้นเหตุ 80 +นุ่ม 80 +ผิวน้ำ 80 +พระครู 80 +ฟ้อง 80 +ภาวะ 80 +ยุ่งยาก 80 +ราโชวาท 80 +รุกราน 80 +ละออง 80 +ลูกศิษย์ 80 +สนุกๆ 80 +สำรวม 80 +ห่างๆ 80 +เจ๊ก 80 +เด็ด 80 +เลื่อย 80 +แยกย้าย 80 +ขำ 79 +ขุ่น 79 +ข่ม 79 +จราจร 79 +ชัน 79 +ซอก 79 +ซาก 79 +ดัน 79 +นักร้อง 79 +นักศึกษา 79 +บัญญัติ 79 +ปรานี 79 +ฝ่ามือ 79 +พระนครศรีอยุธยา 79 +พาด 79 +พิสูจน์ 79 +ภาวนา 79 +ยับยั้ง 79 +รวบ 79 +ลัง 79 +หลักเกณฑ์ 79 +ออ 79 +อึดอัด 79 +อุดม 79 +เขย 79 +เรือใบ 79 +โผ 79 +ไต่ถาม 79 +จำหน่าย 78 +ชื่อเรื่อง 78 +ซุกซน 78 +ตอนนั้น 78 +ถ้วน 78 +นิดๆ 78 +บุตรี 78 +ปด 78 +ปล้น 78 +ผู้โดยสาร 78 +พระโอรส 78 +พุด 78 +พุทโธ่ 78 +มนตร์ 78 +รู้อยู่ 78 +ลบ 78 +ลวง 78 +ลุ่มน้ำ 78 +วาสนา 78 +สารภาพ 78 +หมอก 78 +ออกลูก 78 +เข้ม 78 +เดช 78 +เพลา 78 +เอน 78 +แจ่ม 78 +แด่ 78 +แรงงาน 78 +ของขวัญ 77 +จอ 77 +จัดงาน 77 +ซ้อม 77 +ตะลึง 77 +ตัน 77 +ตื้น 77 +พนักงาน 77 +ภาษิต 77 +มะละกอ 77 +ยุง 77 +ระยะๆ 77 +รั้ง 77 +วิหาร 77 +สมาธิ 77 +สัตว์เลี้ยง 77 +หนุ่มๆ 77 +หล่อ 77 +องค์การ 77 +อาทิ 77 +เปิดเผย 77 +เวียง 77 +เสียสละ 77 +แต่อย่างใด 77 +แถลง 77 +กะเหรี่ยง 76 +ขัดสน 76 +ฉีก 76 +ดอย 76 +นักกีฬา 76 +บริหาร 76 +บา 76 +ปูน 76 +พง 76 +พระราชโอรส 76 +ยิ่งกว่านั้น 76 +ร้ายแรง 76 +ศุกร์ 76 +สงวน 76 +สมภาร 76 +สาบาน 76 +หวน 76 +หว้า 76 +หัตถ์ 76 +อันดี 76 +เถื่อน 76 +เบิก 76 +เว้นแต่ 76 +เส 76 +เหลวไหล 76 +เฮ้ย 76 +ไขมัน 76 +กระด้าง 75 +ของใช้ 75 +ข้าเจ้า 75 +คะนอง 75 +ฉงน 75 +ทำนองเสนาะ 75 +นิเวศน์ 75 +บรรดาศักดิ์ 75 +บรรเทา 75 +บ่วง 75 +ฟุ่มเฟือย 75 +มะลิ 75 +ร้านค้า 75 +หาญ 75 +องอาจ 75 +เกษตรกร 75 +เก้ง 75 +เครือ 75 +เดือด 75 +เยอรมัน 75 +ไย 75 +ขัดใจ 74 +ข่า 74 +คล้ำ 74 +งัด 74 +จำเริญ 74 +จ่า 74 +ทันสมัย 74 +ธรณี 74 +นโยบาย 74 +บิด 74 +พระฤๅษี 74 +พิง 74 +ภาคเรียน 74 +ภู 74 +ม่วง 74 +รอก 74 +รื้อ 74 +ลงทุน 74 +เงินเดือน 74 +แสตมป์ 74 +โลภ 74 +โอวาท 74 +ไหนๆ 74 +ขนำ 73 +ข้อเขียน 73 +ชาติไทย 73 +ซบ 73 +ซุ้ม 73 +ด้วยเหตุนี้ 73 +ตรงกลาง 73 +ตอ 73 +ตั้งตัว 73 +ถึงขนาด 73 +ที่อยู่อาศัย 73 +นินทา 73 +น้ำลาย 73 +พังพอน 73 +พิสดาร 73 +ยุยง 73 +ละเล่น 73 +สกัด 73 +ออกดอก 73 +อีกา 73 +เกะกะ 73 +เครื่องกล 73 +เถ้าแก่ 73 +เนื่อง 73 +เนื้อที่ 73 +เบี้ย 73 +แจกัน 73 +แผด 73 +โบ 73 +กรรเชียง 72 +กระชับ 72 +กระตุ้น 72 +ข้าวเหนียว 72 +ชาญ 72 +ดำรัส 72 +ทรงจำ 72 +ธุรกิจ 72 +นักเขียน 72 +นิยาม 72 +น้ำพริก 72 +บุ 72 +ปลด 72 +ผนัง 72 +พราก 72 +มคธ 72 +มิถุนายน 72 +ยึดถือ 72 +รำพัน 72 +ลวดลาย 72 +สึก 72 +หน่อ 72 +หวง 72 +เท่าๆ 72 +เพดาน 72 +แก้ตัว 72 +แคร่ 72 +แววตา 72 +แสร้ง 72 +โขง 72 +กระดี่ 71 +ขึง 71 +คำตาย 71 +จักจั่น 71 +ชาวสวน 71 +ดังเช่น 71 +ดั้น 71 +ตวาด 71 +ตื่นนอน 71 +ทึ่ม 71 +นิพนธ์ 71 +นิล 71 +พระราชดำรัส 71 +พะ 71 +มหรสพ 71 +มะนาว 71 +ยิ้มๆ 71 +รถเมล์ 71 +ล้าน 71 +สืบทอด 71 +สุบิน 71 +สู้รบ 71 +ห่างไกล 71 +อักษรสูง 71 +เค็ม 71 +เปล 71 +เริง 71 +แคบ 71 +แต่งตั้ง 71 +แพร่ 71 +แรงๆ 71 +แวดล้อม 71 +ไห 71 +กรรมกร 70 +กังวาน 70 +ข้อเสนอ 70 +คมคาย 70 +คำนวณ 70 +งอ 70 +ดูถูก 70 +ตะปู 70 +ตาล 70 +ต่างจังหวัด 70 +นิมิต 70 +ปริมาณ 70 +ปลาตะเพียน 70 +ปลิว 70 +ผู้ป่วย 70 +มะขาม 70 +ยง 70 +ยินยอม 70 +ลัทธิ 70 +วิถีทาง 70 +สม่ำเสมอ 70 +สิ้นพระชนม์ 70 +สโมสร 70 +ออกกำลังกาย 70 +เข็ด 70 +เมื่อย 70 +แส้ 70 +โปรย 70 +ก่อนๆ 69 +ข้อมือ 69 +ครา 69 +ค้าน 69 +จ้องมอง 69 +ช่องทาง 69 +ซาบซึ้ง 69 +ทยอย 69 +ที่พึ่ง 69 +ผลสำเร็จ 69 +ผู้เฒ่า 69 +ฝืน 69 +พวงมาลัย 69 +ฟอร์ม 69 +มอ 69 +มะเฟือง 69 +ย่าน 69 +ลังกา 69 +สะใภ้ 69 +หนุน 69 +หลาก 69 +อภัย 69 +อ่อนน้อม 69 +เฉลิม 69 +เบื้องต้น 69 +เปลี่ยว 69 +เพิ่มพูน 69 +แม่บ้าน 69 +โกหก 69 +กระโปรง 68 +ขบ 68 +ต้านทาน 68 +ถึงแก่กรรม 68 +ทราม 68 +ที่ระลึก 68 +นอกนั้น 68 +บทนำ 68 +บรรเลง 68 +พรรษา 68 +ฟุต 68 +ราบ 68 +รีด 68 +ล่าม 68 +วงกลม 68 +หยิก 68 +อันดับ 68 +อุปถัมภ์ 68 +ฮือ 68 +เยอะ 68 +เลยทีเดียว 68 +เหรอ 68 +เอาเปรียบ 68 +แสบ 68 +โปร่ง 68 +ไพร่ 68 +กลมกลืน 67 +กองไฟ 67 +ขม 67 +ขันแข็ง 67 +ซัด 67 +นิ 67 +ผู้อำนวยการ 67 +ฝุ่น 67 +ภิกษุ 67 +มหาสมุทร 67 +ยากเย็น 67 +ยาวๆ 67 +สื่อมวลชน 67 +หน้าอก 67 +อาญา 67 +อ่อนแอ 67 +เซ็งแซ่ 67 +เผยแพร่ 67 +เผื่อแผ่ 67 +เศียร 67 +เส้นทาง 67 +แตะ 67 +แผนก 67 +กระบือ 66 +คำมูล 66 +ซ้ำๆ 66 +ดอกเบี้ย 66 +ดอง 66 +ด่าน 66 +ตรวจสอบ 66 +ตลบ 66 +ตอนแรก 66 +ทึบ 66 +ท่วม 66 +ธรรมะ 66 +นิ่งเงียบ 66 +น้ำปลา 66 +บกพร่อง 66 +ประชาธิปไตย 66 +ประสาท 66 +ผาสุก 66 +พระเดชพระคุณ 66 +มติ 66 +มอบหมาย 66 +มัธยมศึกษา 66 +ร่อง 66 +ลึกลับ 66 +สลัด 66 +สอบสวน 66 +สาง 66 +หงส์ 66 +หวัด 66 +เครื่องจักร 66 +เครื่องแต่งกาย 66 +เบียด 66 +เสียบ 66 +แผนการ 66 +แสงไฟ 66 +แหงน 66 +ใส่ใจ 66 +ไข่ไก่ 66 +ไถนา 66 +กระเช้า 65 +กลบ 65 +ข้อบังคับ 65 +จักรพรรดิ 65 +จัน 65 +ถี่ถ้วน 65 +นายอำเภอ 65 +น่าเสียดาย 65 +ปฏิบัติงาน 65 +ผู้ชม 65 +พระราชธิดา 65 +ฟุตบอล 65 +มน 65 +ยั่ว 65 +ยิน 65 +ราชาธิราช 65 +ร้ายกาจ 65 +ลายลักษณ์ 65 +ลูกกรง 65 +วนเวียน 65 +ศูนย์ 65 +สาหัส 65 +หกล้ม 65 +หมายเหตุ 65 +อัตรา 65 +อาขยาน 65 +อำ 65 +อุโมงค์ 65 +อเมริกา 65 +เชิงเขา 65 +เทศนา 65 +เปรียบเหมือน 65 +กรวด 64 +กำนัน 64 +กุลี 64 +กู่ 64 +คนจน 64 +ครึ้ม 64 +คลุก 64 +คิดอ่าน 64 +คุ้น 64 +ชนช้าง 64 +ชานุ 64 +ชายหาด 64 +ดัดแปลง 64 +ดิ้นรน 64 +ติดใจ 64 +ตุ่ม 64 +ทูน 64 +ทแกล้วทหาร 64 +น้ำตก 64 +บุก 64 +บ้านนอก 64 +ปิศาจ 64 +พรหม 64 +พวกพ้อง 64 +พิษณุโลก 64 +ภาษี 64 +ระตู 64 +รุงรัง 64 +ลื่น 64 +ล้น 64 +วิด 64 +วิธีคิด 64 +สรง 64 +สอบถาม 64 +สัญจร 64 +สันติ 64 +สัมภาษณ์ 64 +หยาบคาย 64 +ออกบวช 64 +อาน 64 +อาศรม 64 +เร่ 64 +เห็นชอบ 64 +โถ 64 +โพธิสัตว์ 64 +ในขณะนี้ 64 +ไหวพริบ 64 +กง 63 +กราบบังคมทูล 63 +คุก 63 +ชนนี 63 +ชายฝั่ง 63 +ธนบุรี 63 +บรรณาการ 63 +ผ้าขาวม้า 63 +พร่ำ 63 +พ่อเจ้า 63 +ยี่ 63 +ระเบิด 63 +ลำคอ 63 +วางไข่ 63 +สดับ 63 +สลบ 63 +สิริ 63 +สุขใจ 63 +สุพรรณ 63 +ส่งกลิ่น 63 +ส่งผล 63 +อนุ 63 +เข้าถึง 63 +เจาะจง 63 +เบื้องหลัง 63 +เพิง 63 +เม่น 63 +เหงือก 63 +แจว 63 +แหวก 63 +โบก 63 +โรย 63 +กรมพระยา 62 +กระหม่อม 62 +กลั้น 62 +กาลเวลา 62 +กิโลเมตร 62 +คล้อย 62 +คับ 62 +จุฬา 62 +จุ่ม 62 +ฉะ 62 +ฉัตร 62 +ชำเลือง 62 +ญาติพี่น้อง 62 +ดวงดาว 62 +ตะครุบ 62 +ติดๆ 62 +ต่อว่า 62 +ถา 62 +ถ้อย 62 +ท่าเรือ 62 +นุ่มนวล 62 +บอกกล่าว 62 +บีบ 62 +ประจำตัว 62 +ผลิ 62 +พยาบาท 62 +ลพบุรี 62 +ลักษณ์ 62 +ล้างมือ 62 +สนามหลวง 62 +สะพาย 62 +สิ่งมีชีวิต 62 +อินเทอร์เน็ต 62 +อุปการะ 62 +เข็น 62 +เข้าแถว 62 +เร้า 62 +แกว่ง 62 +แก้แค้น 62 +โป่ง 62 +โหดร้าย 62 +โอ้โฮ 62 +กำนัล 61 +คราม 61 +งด 61 +จร 61 +จรรยา 61 +จำปา 61 +จิ 61 +ชวา 61 +ที่แท้ 61 +ทุกหนทุกแห่ง 61 +ทุจริต 61 +ผลเสีย 61 +รสชาติ 61 +รอคอย 61 +ละแวก 61 +วางใจ 61 +สงเคราะห์ 61 +สน 61 +สวรรคต 61 +หนี้สิน 61 +หม่อมฉัน 61 +อดอยาก 61 +อาณาเขต 61 +อาราม 61 +อุบัติเหตุ 61 +อ่อนเพลีย 61 +เตาไฟ 61 +เติบ 61 +เตือนใจ 61 +เปี่ยม 61 +เพาะปลูก 61 +เยอะแยะ 61 +เลอะเทอะ 61 +เห 61 +เหมียว 61 +แมงมุม 61 +กระถาง 60 +กริ่ง 60 +กลุ้ม 60 +ครูบาอาจารย์ 60 +จงรักภักดี 60 +ดิบ 60 +ด้านหน้า 60 +ตาข่าย 60 +ต้นฉบับ 60 +ถ้าหากว่า 60 +ทะ 60 +ท่องจำ 60 +ท้าทาย 60 +ประสูติ 60 +ปาง 60 +ผู้แสดง 60 +ผ้าเช็ดหน้า 60 +พบปะ 60 +พิธีการ 60 +มือหนึ่ง 60 +ริเริ่ม 60 +ฤกษ์ 60 +ลาว 60 +สบู่ 60 +สระน้ำ 60 +สละสลวย 60 +สลึง 60 +หงส์ทอง 60 +หมวด 60 +อุทยาน 60 +เกลี้ยกล่อม 60 +เก่าแก่ 60 +เตรียมพร้อม 60 +เพาะ 60 +เลื่องลือ 60 +เอร็ดอร่อย 60 +แว่ว 60 +โต้เถียง 60 +โรหิณี 60 +ไส้ 60 +กรุงเทพมหานคร 59 +ก็ช่าง 59 +ข้อเสนอแนะ 59 +ข้าวเปลือก 59 +ซี่ 59 +ด้าม 59 +ตักบาตร 59 +ถาวร 59 +ธานี 59 +นอกเหนือ 59 +นิดหนึ่ง 59 +ประพฤติปฏิบัติ 59 +ประพาส 59 +ผิดหวัง 59 +พุธ 59 +มหึมา 59 +ราชสำนัก 59 +รูปทรง 59 +สนม 59 +สวัสดิ์ 59 +อวดดี 59 +เปรียญ 59 +เรียกร้อง 59 +เรือไฟ 59 +เร่งรีบ 59 +แท่น 59 +แสงอาทิตย์ 59 +แหง 59 +โม 59 +โว้ย 59 +โอ๊ย 59 +กน 58 +กินเวลา 58 +คาว 58 +ฉันนั้น 58 +ถล่ม 58 +ถ่องแท้ 58 +ทุบ 58 +นวด 58 +บางกอก 58 +บุตรธิดา 58 +ประเดี๋ยวเดียว 58 +ผู้เล่น 58 +พระราชพิธี 58 +พลาสติก 58 +พิการ 58 +มกราคม 58 +ย่าม 58 +รม 58 +รั่ว 58 +ราชวงศ์ 58 +ราด 58 +ลงชื่อ 58 +ลัด 58 +สถิต 58 +สลาย 58 +สิ้นชีวิต 58 +สุดท้อง 58 +สูญเสีย 58 +หน้าเป็น 58 +หมั่นเพียร 58 +หอก 58 +หิมพานต์ 58 +อคติ 58 +อนุชา 58 +อุดหนุน 58 +อุทิศ 58 +เกย 58 +เจ็บไข้ 58 +เซ 58 +เทอม 58 +เนืองๆ 58 +เผชิญ 58 +แนบ 58 +โฮเต็ล 58 +ในขณะเดียวกัน 58 +กริ้ว 57 +ข้อคิดเห็น 57 +ครองราชย์ 57 +ครุฑ 57 +ชะรอย 57 +ชิงช้า 57 +ดำๆ 57 +ตบมือ 57 +ถนอม 57 +ถม 57 +ทรุด 57 +นัดหมาย 57 +นุ่งห่ม 57 +น้ำตาย 57 +บทกลอน 57 +บทสนทนา 57 +ประดุจ 57 +ปลูกฝัง 57 +ปี๊บ 57 +ป้อง 57 +พจน์ 57 +พระราชสาส์น 57 +พระเมตตา 57 +พาหนะ 57 +ภริยา 57 +ม้วย 57 +รีบร้อน 57 +ร่อน 57 +ลูกผู้ชาย 57 +สูญหาย 57 +ส่วย 57 +อาสาสมัคร 57 +อุดร 57 +เจ้าฟ้า 57 +เนตร 57 +เฮ้อ 57 +แกล้ว 57 +แข้ง 57 +แยะ 57 +โบราณคดี 57 +ไม่แพ้ 57 +กระแสน้ำ 56 +คชาธาร 56 +ครู่เดียว 56 +คาถา 56 +คุณอา 56 +คุ้ง 56 +ค่อน 56 +ตรึง 56 +ตะไคร้ 56 +ถิ่นฐาน 56 +ทะนง 56 +นกยูง 56 +นามสกุล 56 +บริบท 56 +ปู่ย่า 56 +ฝ้าย 56 +พระคลัง 56 +พระราชประสงค์ 56 +พอง 56 +ยุติ 56 +รำลึก 56 +ลิลิต 56 +วก 56 +วัสดุ 56 +สงัด 56 +สถิติ 56 +สะพรั่ง 56 +ห้วย 56 +อีเห็น 56 +อื้ออึง 56 +เคียว 56 +เชิด 56 +เผือก 56 +เผ่าพันธุ์ 56 +เรื่อ 56 +เสาะ 56 +โต้วาที 56 +โยก 56 +ใคร่ครวญ 56 +กระบี่ 55 +กระวนกระวาย 55 +กำพร้า 55 +กำเริบ 55 +คฤหัสถ์ 55 +คืบ 55 +คุณน้า 55 +ซื่อตรง 55 +ฎีกา 55 +ดอกมะลิ 55 +ดั้งเดิม 55 +ดาบส 55 +ตอบรับ 55 +ตึง 55 +ทศ 55 +น้ำหวาน 55 +บู่ 55 +ปริญญา 55 +ผู้แทน 55 +ผ่อง 55 +ฝึกซ้อม 55 +พ่าย 55 +ยั้ง 55 +ยาน 55 +ระดม 55 +รูปสระ 55 +ฤ 55 +วิสรรชนีย์ 55 +สอบไล่ 55 +สาป 55 +สำนักงาน 55 +หามิได้ 55 +อัศวิน 55 +เกา 55 +เทศกาล 55 +เยือน 55 +เอื้อน 55 +แต่ทว่า 55 +แผน 55 +โครงสร้าง 55 +โค่น 55 +ไตร่ตรอง 55 +กระชั้น 54 +กระบะ 54 +ขวนขวาย 54 +ขาดทุน 54 +ข่มเหง 54 +ข้อง 54 +จำปี 54 +ชุม 54 +ซุง 54 +ดาหา 54 +ตกเป็น 54 +ตำลึง 54 +ติดมือ 54 +ทดแทน 54 +ทฤษฎี 54 +ทอดเสียง 54 +ทัดทาน 54 +ทารุณ 54 +ทุกข์สุข 54 +พริบ 54 +พอเหมาะ 54 +พ่อเมือง 54 +มะกรูด 54 +ยานี 54 +ล้วง 54 +วับ 54 +หลักสูตร 54 +อวัยวะ 54 +ออกแรง 54 +อาฆาต 54 +อุ๊ย 54 +อู่ 54 +เกลื่อน 54 +เกื้อกูล 54 +เครื่องราช 54 +เคาะ 54 +เชษฐา 54 +เมาะ 54 +เหน็บ 54 +เอาเรื่อง 54 +แผนภูมิ 54 +โลดเต้น 54 +ได้ที 54 +ได้สติ 54 +กระเทียม 53 +ก๋วยเตี๋ยว 53 +ขจัด 53 +คั่น 53 +จักรี 53 +จูบ 53 +ชิม 53 +ซิ้ม 53 +ดำน้ำ 53 +ตรวจตรา 53 +ทะนาน 53 +ทางเข้า 53 +ทารก 53 +ทำตา 53 +ทำโทษ 53 +ธนบัตร 53 +ธุลี 53 +นับแต่ 53 +นายจ้าง 53 +บด 53 +ปวารณา 53 +ปี่พาทย์ 53 +ปุ่ม 53 +ผจญ 53 +ผลิตภัณฑ์ 53 +พุทธศักราช 53 +ยัน 53 +ย่น 53 +รื่น 53 +ลองดู 53 +ลับหลัง 53 +วิญญาณ 53 +วุ่น 53 +สากล 53 +หด 53 +หน้าร้าน 53 +หวาดหวั่น 53 +อย่างไรๆ 53 +ออมสิน 53 +อักษรกลาง 53 +เกลี้ยง 53 +เขิน 53 +เครื่องยนต์ 53 +เชิดชู 53 +เชี่ยวชาญ 53 +เตียน 53 +เพชรบุรี 53 +เมษายน 53 +เลียบ 53 +เล็ง 53 +เหมือนเดิม 53 +โศกเศร้า 53 +ขนบธรรมเนียม 52 +ขนาน 52 +ของดี 52 +คนร้าย 52 +ค่าใช้จ่าย 52 +งิ้ว 52 +ชักจูง 52 +ชื่นบาน 52 +ซะ 52 +ตริตรอง 52 +ถอยหลัง 52 +ถาด 52 +ทดสอบ 52 +ผจญภัย 52 +พระราชวงศ์ 52 +พระเกียรติ 52 +พากเพียร 52 +ภูมิปัญญา 52 +มาน 52 +ย่อท้อ 52 +รอดพ้น 52 +ราบเรียบ 52 +รุ 52 +รู้เห็น 52 +ร้อยละ 52 +ลอก 52 +ลาม 52 +ลืมตัว 52 +ลูกปลา 52 +ล้อมรอบ 52 +วิถีชีวิต 52 +ศิลปิน 52 +สมเด็จพระสังฆราช 52 +หมุนเวียน 52 +หวาด 52 +หั่น 52 +อยู่ๆ 52 +อั๊ว 52 +อู 52 +อ้อย 52 +เสนอแนะ 52 +เสมอหน้า 52 +เหย้า 52 +ใจร้าย 52 +กระจัด 51 +กระบุง 51 +ขมขื่น 51 +คุกเข่า 51 +จุ 51 +ดีเด่น 51 +ทรวง 51 +ทำขวัญ 51 +ที่ๆ 51 +ท่วงที 51 +นักรบ 51 +น้ำอบ 51 +ปม 51 +ประถม 51 +ผลาญ 51 +ผุด 51 +พงศ์ 51 +พระอาจารย์ 51 +พฤศจิกายน 51 +ภักดี 51 +ภาพพจน์ 51 +ยาสูบ 51 +รูปภาพ 51 +ร่า 51 +วันๆ 51 +สมุทร 51 +สายน้ำ 51 +หรู 51 +หล้า 51 +อร่าม 51 +เขย่า 51 +เจี๊ยบ 51 +เฉียง 51 +เทพยดา 51 +เนื้อสัตว์ 51 +เป็นได้ 51 +เป้า 51 +แทะ 51 +แบน 51 +แม่เลี้ยง 51 +แยบคาย 51 +แส 51 +โบกมือ 51 +ไกร 51 +กงจักร 50 +กระจาด 50 +กุม 50 +กุ๊ก 50 +ขออภัย 50 +ขาดแคลน 50 +คดโกง 50 +ครอบคลุม 50 +งามๆ 50 +ฉีด 50 +ฉ่ำ 50 +ชอุ่ม 50 +ตอม 50 +ถาง 50 +บรรพต 50 +ผู้ช่วย 50 +ผ่องใส 50 +ฝัก 50 +พรวน 50 +พร้อมหน้า 50 +พร้อมใจ 50 +พลาย 50 +พุทธศาสนา 50 +ฟ้าผ่า 50 +มาลา 50 +ร้อนๆ 50 +ลูกตา 50 +ล่ม 50 +วิจารณญาณ 50 +วิจิตร 50 +สง 50 +สันดาน 50 +หน้าไม้ 50 +หวั่นไหว 50 +อลหม่าน 50 +อวกาศ 50 +ฮา 50 +เกลียดชัง 50 +เกล็ด 50 +เถ้า 50 +เนินเขา 50 +เมื่อตะกี้ 50 +แจ่ว 50 +แตร 50 +โยง 50 +ในหลวง 50 +ใฝ่ฝัน 50 +ไว้วางใจ 50 +กระเทือน 49 +กรุงเก่า 49 +กรู 49 +กลางคน 49 +ขมวด 49 +คุณงาม 49 +จิบ 49 +ตั้งหน้า 49 +ทรุดโทรม 49 +ทอดแห 49 +ทางออก 49 +ธรรม์ 49 +นับตั้งแต่ 49 +บุษบา 49 +ปกคลุม 49 +ปฏิสังขรณ์ 49 +ปรากฏการณ์ 49 +ผลผลิต 49 +พก 49 +พอๆ 49 +พิลึก 49 +ภา 49 +มดแดง 49 +มัธยม 49 +ระบาย 49 +สอดแทรก 49 +อาภรณ์ 49 +อุปนิสัย 49 +เครื่องคอมพิวเตอร์ 49 +เช้ามืด 49 +เบื้องบน 49 +เลขานุการ 49 +เส้นด้าย 49 +แว่นตา 49 +โก่ง 49 +โบย 49 +ใช้งาน 49 +ให้อภัย 49 +การณ์ 48 +การ์ตูน 48 +ขอด 48 +ขึ้นๆ 48 +ครอบครอง 48 +คร่ำครวญ 48 +ค่าง 48 +ค่าจ้าง 48 +งับ 48 +ชุบเลี้ยง 48 +ดาวหาง 48 +ด้อย 48 +ทรพี 48 +ทาสี 48 +ทิว 48 +นอบน้อม 48 +บัน 48 +บำเหน็จ 48 +ปราชญ์ 48 +ผิวพรรณ 48 +พรรคพวก 48 +พลั้ง 48 +พังเพย 48 +พินาศ 48 +พึ่งพา 48 +ภายใต้ 48 +มหัศจรรย์ 48 +มหาดไทย 48 +ยั่งยืน 48 +ระแวง 48 +รื่นรมย์ 48 +ลิ้นชัก 48 +วาบ 48 +สมทบ 48 +สังหาร 48 +สัจ 48 +หว่า 48 +หอน 48 +อนามัย 48 +อักขรวิธี 48 +อักษรต่ำ 48 +อัด 48 +อิ่มหนำ 48 +เกือก 48 +เจียว 48 +เจ้าพ่อ 48 +เทพธิดา 48 +เทวรูป 48 +เสียเถอะ 48 +เอ๊ย 48 +แผนผัง 48 +แยกแยะ 48 +แรกๆ 48 +ไวยากรณ์ 48 +กรกฎาคม 47 +กวด 47 +กัก 47 +กำลังกาย 47 +ขายหน้า 47 +ขูด 47 +ครวญคราง 47 +ครอบ 47 +ครัน 47 +คำบอกเล่า 47 +งบประมาณ 47 +งูเหลือม 47 +จดหมายเหตุ 47 +จันทน์ 47 +ชั่วร้าย 47 +ซิ่น 47 +ดัด 47 +ดาดฟ้า 47 +ดินสอพอง 47 +ถลา 47 +ทั้งคน 47 +ทำนุบำรุง 47 +บาดแผล 47 +ประกัน 47 +ปลิด 47 +ผู้จัดการ 47 +พลัดพราก 47 +พารา 47 +พ่ายแพ้ 47 +มาลี 47 +รอยยิ้ม 47 +รัชสมัย 47 +รับทราบ 47 +ลิ 47 +วรรณะ 47 +วายร้าย 47 +ศาสดา 47 +สัง 47 +สาบ 47 +สุม 47 +สุวรรณ 47 +หงาย 47 +หน่อไม้ 47 +หยอด 47 +อาตมา 47 +อือ 47 +เทศ 47 +เป็นไป 47 +เพียงนั้น 47 +เยือกเย็น 47 +เล่ห์ 47 +เวสสันดร 47 +เอเชีย 47 +แตง 47 +แน่ชัด 47 +แน่วแน่ 47 +โคก 47 +โคม 47 +ไข่มุก 47 +ได้เปรียบ 47 +ไถล 47 +ไฟฉาย 47 +คนๆ 46 +ครก 46 +ครองเรือน 46 +คึกคัก 46 +จูงมือ 46 +ตาบอด 46 +ถีบ 46 +ทะเลสาบ 46 +ทานตะวัน 46 +ธันวาคม 46 +นอ 46 +นิพพาน 46 +ปฏิกิริยา 46 +ปรนนิบัติ 46 +ประคุณ 46 +พระราชหฤทัย 46 +พรุ 46 +พิกล 46 +พิกุล 46 +มนตรี 46 +มาด 46 +ยาวนาน 46 +ราชบัณฑิตยสถาน 46 +วรรณศิลป์ 46 +วิวาห์ 46 +สรร 46 +สักการะ 46 +สำเพ็ง 46 +หงุดหงิด 46 +หนังตะลุง 46 +หยอก 46 +หวด 46 +หวั่น 46 +หว่าน 46 +หัวร่อ 46 +อวย 46 +อีฉัน 46 +เข้าข้าง 46 +เครา 46 +เจ้าพนักงาน 46 +เฉพาะตัว 46 +เตี้ยๆ 46 +เสียด 46 +เหว 46 +เหวี่ยง 46 +แอ่งน้ำ 46 +โกน 46 +โทสะ 46 +โอสถ 46 +กบฏ 45 +กรรไกร 45 +กระทั่ง 45 +กราว 45 +กล่าวหา 45 +ขมิ้น 45 +ขรรค์ 45 +ครู่ใหญ่ 45 +คั่ว 45 +คาม 45 +คุ้มค่า 45 +ชอบพอ 45 +ชะตา 45 +ดึกดำบรรพ์ 45 +ตอบสนอง 45 +ต่อรอง 45 +ถือโอกาส 45 +ทว่า 45 +ท้องที่ 45 +นิตยสาร 45 +นิมนต์ 45 +นิ่งๆ 45 +บึ้ง 45 +ประดา 45 +ประมวล 45 +ปราบปราม 45 +ปอง 45 +ปัน 45 +ปีกลาย 45 +ผุ 45 +พระราชดำริ 45 +พิภพ 45 +มิด 45 +ยู่ 45 +รถจักรยาน 45 +รองรับ 45 +รังนก 45 +ฤดูกาล 45 +ละเว้น 45 +ศีลธรรม 45 +สดๆ 45 +หลานๆ 45 +หวาดกลัว 45 +หาร 45 +อับอาย 45 +อิเล็กทรอนิกส์ 45 +อุดมคติ 45 +อเมริกัน 45 +เกี้ยว 45 +เขียง 45 +เขียด 45 +เชื่อมโยง 45 +เณร 45 +เลือน 45 +เล่นหัว 45 +เสร็จสิ้น 45 +แข็งขัน 45 +แท้ที่จริง 45 +กรอง 44 +กระชาก 44 +กระดุกกระดิก 44 +กรีด 44 +กว้างๆ 44 +กินรี 44 +ขาก 44 +คนตาย 44 +คลี่ 44 +คัมภีร์ 44 +คิดค้น 44 +คู่ครอง 44 +จดจ่อ 44 +จากนี้ 44 +จำเพาะ 44 +ชายทะเล 44 +ชุกชุม 44 +ติดขัด 44 +ถ่ายรูป 44 +ทองกวาว 44 +ทิฐิ 44 +ธงชาติ 44 +นักท่องเที่ยว 44 +ปอบ 44 +ปัง 44 +ปากน้ำ 44 +ปีเศษ 44 +ปุโรหิต 44 +ฝี 44 +พระเจ้าบรมวงศ์เธอ 44 +พร้อมเพรียง 44 +พฤษภาคม 44 +พลังงาน 44 +มงกุฎ 44 +มุด 44 +รอดชีวิต 44 +ราชบัณฑิต 44 +ร้อนรน 44 +ละอาย 44 +ลับตา 44 +วกวน 44 +วิมาน 44 +สภา 44 +สลัก 44 +สวามี 44 +สีสัน 44 +หน้าผา 44 +หฤทัย 44 +หลงใหล 44 +หลักแหลม 44 +หัวแม่มือ 44 +หุ่นยนต์ 44 +อุดมการณ์ 44 +เด่นชัด 44 +เบือน 44 +เย้า 44 +เลือกสรร 44 +เล็ม 44 +เล่นคำ 44 +เสียว 44 +เหลา 44 +เหี่ยว 44 +แกลง 44 +แขวง 44 +แต้ม 44 +แบ่งปัน 44 +แฟน 44 +แม่เจ้า 44 +แหย่ 44 +โฆษณาชวนเชื่อ 44 +ไชโย 44 +กระดาก 43 +กระตือรือร้น 43 +กระทู้ 43 +กวีนิพนธ์ 43 +กันยายน 43 +กำมือ 43 +ครุ่นคิด 43 +คร้าน 43 +คลำ 43 +งอบ 43 +จาง 43 +จำใจ 43 +ฉิบหาย 43 +ชนชาติ 43 +ชำรุด 43 +ช้างเผือก 43 +ดูเถิด 43 +ตะเกียกตะกาย 43 +ตะเกียง 43 +ประชด 43 +ประทีป 43 +ประทุษร้าย 43 +ผละ 43 +พระเชตุพน 43 +พรายน้ำ 43 +พี 43 +พู 43 +มีชัย 43 +ยำเกรง 43 +ระบำ 43 +รายชื่อ 43 +ริมทาง 43 +ลูกคิด 43 +วันพระ 43 +วิถี 43 +สะกิด 43 +สัมผัสสระ 43 +หนาแน่น 43 +หน้าซีด 43 +หมึก 43 +อับ 43 +อานุภาพ 43 +อ่าง 43 +เข็ญ 43 +เตย 43 +เพลีย 43 +เสนาะ 43 +เสียเถิด 43 +โดยมาก 43 +โน้ม 43 +ใหญ่หลวง 43 +กระเบื้อง 42 +กันดาร 42 +กำปั้น 42 +ขรึม 42 +ของเก่า 42 +คนกลาง 42 +คริสตัง 42 +จับจ่าย 42 +ชนก 42 +ตัวดี 42 +ถอนใจใหญ่ 42 +ทีท่า 42 +ท่วงทำนอง 42 +ท่อ 42 +นามธรรม 42 +บิ 42 +บ๊อกเซ่อร์ 42 +ปรองดอง 42 +ปอนด์ 42 +ผึ่ง 42 +พิชัย 42 +มาณพ 42 +มิตรสหาย 42 +ยอดเยี่ยม 42 +ยาเสพติด 42 +รีรอ 42 +หมัก 42 +หรูหรา 42 +หาว 42 +อภิเษก 42 +อัง 42 +อัชฌาสัย 42 +เชี่ยนหมาก 42 +เซนติเมตร 42 +เตร่ 42 +เผ็ด 42 +แกว 42 +แก่ๆ 42 +แว่นแคว้น 42 +โชก 42 +ไปรษณียบัตร 42 +ไพศาล 42 +ไส 42 +กระจายเสียง 41 +กวดขัน 41 +กัณฑ์ 41 +กุฏิ 41 +ขจี 41 +ขัดเคือง 41 +คมนาคม 41 +คอน 41 +คาดคะเน 41 +จัดตั้ง 41 +จูงใจ 41 +ชาวไร่ 41 +ซื้อขาย 41 +ตระหนก 41 +ตั้งท่า 41 +ตุลาคม 41 +ตู่ 41 +ทอดทิ้ง 41 +นกกระจอก 41 +บรรจบ 41 +บรรลัย 41 +ประจบ 41 +ปลอบใจ 41 +ปวง 41 +ปีติ 41 +ภาคภูมิ 41 +มั่งคั่ง 41 +ราชอาณาจักร 41 +ราชโองการ 41 +ราหู 41 +ลิ่ว 41 +ล่อลวง 41 +วงเล็บ 41 +ว้าเหว่ 41 +สบถ 41 +สายลม 41 +สาวก 41 +สืบเนื่อง 41 +สูงอายุ 41 +หมัด 41 +หิ้ง 41 +ห้วง 41 +อิริยาบถ 41 +ฮึ 41 +เกลือก 41 +เกษตรกรรม 41 +เขี่ย 41 +เคร่งเครียด 41 +เค้าโครง 41 +เจ้าหนู 41 +เช็ดน้ำ 41 +เปลวไฟ 41 +เย็นๆ 41 +เสียหลาย 41 +แปร 41 +โถง 41 +ไคล 41 +กระแทก 40 +กิโลกรัม 40 +กีดขวาง 40 +กี้ 40 +ก้อ 40 +คริสต์ 40 +ครึกครื้น 40 +คอบ 40 +จอมปลวก 40 +จ่ายตลาด 40 +ชุ่มชื้น 40 +ซุบซิบ 40 +ด่าง 40 +ตกปลา 40 +ตักกศิลา 40 +ตามๆ 40 +ทัด 40 +นักบวช 40 +นิทรรศการ 40 +นึกออก 40 +บางๆ 40 +ปลาดุก 40 +ปลูกฝี 40 +ผิดๆ 40 +ผ่านพ้น 40 +ภู่ 40 +มลายู 40 +มาศ 40 +ราบรื่น 40 +ละทิ้ง 40 +ศึกษาธิการ 40 +สมเหตุสมผล 40 +สรวล 40 +สะท้าน 40 +สัมผัสใน 40 +หมันหยา 40 +หลั่ง 40 +หาม 40 +อมรรัตน์ 40 +อยุติธรรม 40 +อาณา 40 +อาณาจักร 40 +อินทรี 40 +เชิ้ต 40 +เถา 40 +เนื้อตัว 40 +เป็นต้นมา 40 +เพ 40 +เมล์ 40 +แกว่น 40 +แจ่มชัด 40 +แสงจันทร์ 40 +โฉบ 40 +โบกขรณี 40 +ไส้กรอก 40 +กาญจนบุรี 39 +กำปั่น 39 +กึกก้อง 39 +กุมภาพันธ์ 39 +ขอทาน 39 +ขับขี่ 39 +ขากลับ 39 +คดเคี้ยว 39 +คบหา 39 +ครอบงำ 39 +คับขัน 39 +คุ 39 +ค้นพบ 39 +จงรัก 39 +จอบ 39 +จัดหา 39 +จันทบุรี 39 +จับตา 39 +ชั่วขณะ 39 +ดินเหนียว 39 +ดึงดูด 39 +ด้วน 39 +ตระเวน 39 +ตะกั่ว 39 +ตัง 39 +ตำรับ 39 +ต่อต้าน 39 +ถมไป 39 +ทั่วถึง 39 +นอกชาน 39 +บุรี 39 +บ่ง 39 +ประชวร 39 +ประปา 39 +ปริศนา 39 +ปิดปาก 39 +ป่น 39 +ผิวหนัง 39 +ฝาแฝด 39 +พยากรณ์ 39 +พระเนตร 39 +พึงพอใจ 39 +ย้อนกลับ 39 +รังผึ้ง 39 +รัดกุม 39 +ราษฎร์ 39 +รุ่งโรจน์ 39 +ลอนดอน 39 +ลอยกระทง 39 +ละเลย 39 +ลิบ 39 +วิตามิน 39 +ศักดินา 39 +สะดุด 39 +สัจจะ 39 +สี่เหลี่ยม 39 +สูตร 39 +หนำซ้ำ 39 +หยัน 39 +อาเจียน 39 +อินทรีย์ 39 +เก็บเกี่ยว 39 +เครื่องดนตรี 39 +เงื่อน 39 +เปลื้อง 39 +เผง 39 +เลือกตั้ง 39 +เสด็จพระราชดำเนิน 39 +เห่เรือ 39 +เฮฮา 39 +แดงๆ 39 +โวนุง 39 +ไอน้ำ 39 +กติกา 38 +กระสอบ 38 +กะปิ 38 +กาบ 38 +ขรุขระ 38 +ขัดคอ 38 +คติชาวบ้าน 38 +คลาดเคลื่อน 38 +คุณวุฒิ 38 +ฉับพลัน 38 +ช้ำ 38 +ดวงตะวัน 38 +ถึงกัน 38 +ทุ่น 38 +นาก 38 +นิ่งเฉย 38 +น้ำดื่ม 38 +บทร้อง 38 +บังคม 38 +บั้งไฟ 38 +ประชิด 38 +ปรัชญา 38 +ปลอก 38 +ปลอดโปร่ง 38 +ปอด 38 +ปิ้ง 38 +ผสมผสาน 38 +ผู้สอน 38 +พระคัมภีร์ 38 +พระดำริ 38 +พรั่น 38 +พอกัน 38 +พิธีกรรม 38 +ภพ 38 +ยล 38 +ยัด 38 +ยิ้มเยาะ 38 +ย่อๆ 38 +รอน 38 +ลุกลาม 38 +ล้นพ้น 38 +วี 38 +สมอ 38 +สักวา 38 +สำ 38 +หล่ม 38 +หัวค่ำ 38 +ออกพรรษา 38 +อัญประกาศ 38 +อาวรณ์ 38 +เจียม 38 +เชี่ยว 38 +เชื่อง 38 +เต้นรำ 38 +เปื่อย 38 +เสือดำ 38 +เอาเถิด 38 +แขนง 38 +แร้ว 38 +โกย 38 +โอชา 38 +ไชย 38 +กระด้ง 37 +กายา 37 +ขอน 37 +ขาวๆ 37 +ข้าหลวง 37 +คับคั่ง 37 +ค่าเช่า 37 +จอก 37 +จีบ 37 +จืด 37 +จุดอ่อน 37 +ชั้นใน 37 +ดอน 37 +ตระ 37 +ตระหง่าน 37 +ตายตัว 37 +ถี่ 37 +ทักท้วง 37 +ทำบาป 37 +นกแก้ว 37 +นครราชสีมา 37 +นอง 37 +นาถ 37 +น่ารำคาญ 37 +น้ำหอม 37 +บายศรี 37 +บ่าง 37 +บ้านช่อง 37 +ประมง 37 +ปลอด 37 +ปลัด 37 +ปลายทาง 37 +ปิดบัง 37 +ผู้ตัดสิน 37 +มาตรว่า 37 +มิตรภาพ 37 +มุข 37 +มุ่งหน้า 37 +ระทม 37 +รายวัน 37 +วังเวง 37 +ว่างเปล่า 37 +ศิลปวิทยา 37 +สมัครใจ 37 +สลัว 37 +สัมพันธภาพ 37 +หยั่ง 37 +อบอ้าว 37 +อมยิ้ม 37 +เกรงขาม 37 +เต้า 37 +เนื่องด้วย 37 +เปรอะ 37 +เปรี้ยว 37 +เลขที่ 37 +เลน 37 +เลี้ยงชีพ 37 +เสริมสร้าง 37 +เสียม 37 +เสียหน่อย 37 +เห็นดี 37 +โจมตี 37 +ใจเย็น 37 +ไกว 37 +กระดก 36 +กระตุก 36 +กราย 36 +กล้ามเนื้อ 36 +กอบ 36 +การุณยเวช 36 +ขวามือ 36 +ของหวาน 36 +ขะโมย 36 +ข้อบกพร่อง 36 +คณิตศาสตร์ 36 +คลั่ง 36 +จัดสรร 36 +ชนม์ 36 +ชะเง้อ 36 +ชายา 36 +ชายแดน 36 +ชิ 36 +ชุลมุน 36 +ซีด 36 +ตระเตรียม 36 +ตอก 36 +ต้องโทษ 36 +ทะเบียน 36 +ทัศนคติ 36 +ที่ราบ 36 +น่าน 36 +น้ำมนต์ 36 +บวร 36 +ปกป้อง 36 +ประชาสัมพันธ์ 36 +ปอก 36 +ปืนใหญ่ 36 +ผิดเพี้ยน 36 +พญานาค 36 +พรม 36 +ย้อย 36 +รณรงค์ 36 +ราวๆ 36 +รูปธรรม 36 +ลน 36 +ลาออก 36 +ลิ่ม 36 +ล้อเลียน 36 +วันเวลา 36 +สมจริง 36 +สันทัด 36 +สารภี 36 +สืบเสาะ 36 +สุขุม 36 +สุพรรณบุรี 36 +หมอง 36 +หลอกลวง 36 +อนุเคราะห์ 36 +อึกอัก 36 +เกษม 36 +เงื้อ 36 +เฉพาะหน้า 36 +เชือด 36 +เชื้อสาย 36 +เท่าเทียม 36 +เบ่ง 36 +เปรียบเสมือน 36 +เปลว 36 +เปอร์เซ็นต์ 36 +เป็นลม 36 +เพี้ยน 36 +เรียบๆ 36 +เสน่หา 36 +เห่อ 36 +เอาการ 36 +แป๊ะ 36 +โขด 36 +โทรสาร 36 +โสด 36 +ไต้ 36 +ไพศาลี 36 +กระทะ 35 +ก่อสร้าง 35 +ขิง 35 +ข่าย 35 +ครอก 35 +คุณหมอ 35 +ค่าแรง 35 +ค้ำ 35 +ฉุน 35 +ชง 35 +ชื่นชมยินดี 35 +ดำดิน 35 +ตกตะลึง 35 +ตั๊กแตน 35 +ตั๋ว 35 +ตาแดง 35 +ทวง 35 +ทัศนศึกษา 35 +ท้อ 35 +นารี 35 +บอ 35 +บังคับบัญชา 35 +บางปะอิน 35 +บ้าๆ 35 +ปฐมวัย 35 +ประชากร 35 +ปล่อยตัว 35 +ปะทะ 35 +ผนวช 35 +ผิน 35 +ผู้บริโภค 35 +พระบรมมหาราชวัง 35 +พระพุทธเจ้าหลวง 35 +พระมหากรุณาธิคุณ 35 +พระองค์เจ้า 35 +พฤฒา 35 +พักแรม 35 +พืชพันธุ์ 35 +พุง 35 +พ่อคุณ 35 +ฟั่น 35 +ภารกิจ 35 +มหาธาตุ 35 +ยนต์ 35 +รน 35 +ระกา 35 +รัตนตรัย 35 +รัตน์ 35 +ราชสาสน์ 35 +ลำเอียง 35 +ล่ำสัน 35 +วัชชี 35 +วันเพ็ญ 35 +วัยรุ่น 35 +สภาพการณ์ 35 +สร่าง 35 +สวามิภักดิ์ 35 +สหรัฐอเมริกา 35 +สะสวย 35 +สังกะสี 35 +สาคร 35 +สำรอง 35 +สุดแต่ 35 +อยู่รอด 35 +อันว่า 35 +อิสรภาพ 35 +อึ้ง 35 +อ๊อด 35 +อ๊ะ 35 +เกลียว 35 +เกาทัณฑ์ 35 +เข้าพรรษา 35 +เคล้า 35 +เทคนิค 35 +เทือกเขา 35 +เท่าทัน 35 +เนย 35 +เพ็ญ 35 +เมรัย 35 +เหตุร้าย 35 +เหมา 35 +เหมือง 35 +เหลียวหลัง 35 +แคบๆ 35 +แถวๆ 35 +แย่งชิง 35 +แว่น 35 +โอษฐ์ 35 +ไมตรีจิต 35 +กระจง 34 +กะลาสี 34 +ก้าวร้าว 34 +ขจร 34 +ขรม 34 +ขวักไขว่ 34 +ขุนแผน 34 +ครวญ 34 +คาดหมาย 34 +ค้างคืน 34 +จ้ำ 34 +ฉกรรจ์ 34 +ฉิว 34 +ชอบธรรม 34 +ชีวิตชีวา 34 +ชีเปลือย 34 +ซ้ายมือ 34 +ดีละ 34 +ตระหนี่ 34 +ตัดบท 34 +ตื่นตูม 34 +ถกเถียง 34 +ทวด 34 +ทึ่ง 34 +นัดดา 34 +บอน 34 +ปทุมธานี 34 +ปวดหัว 34 +ปาฐกถา 34 +ผักตบชวา 34 +ฝ่ายเสนอ 34 +พยุง 34 +พระตำหนัก 34 +พระราชบัญญัติ 34 +ฟ้าร้อง 34 +ยอก 34 +ระกำ 34 +ลวด 34 +ลิเก 34 +วอน 34 +ศักดิ์ศรี 34 +สถาปนา 34 +สถูป 34 +สมหวัง 34 +สะเทือน 34 +สัมมา 34 +สืบสวน 34 +สุรุ่ยสุร่าย 34 +หยาบช้า 34 +หวงแหน 34 +หวา 34 +หากว่า 34 +หุบเขา 34 +ห่อน 34 +ห้ามปราม 34 +อดสู 34 +ออม 34 +อึดใจ 34 +อุทยานแห่งชาติ 34 +อูฐ 34 +เกลอ 34 +เกี่ยวเนื่อง 34 +เจ้าตัว 34 +เจ้าอาวาส 34 +เดี๋ยวก่อน 34 +เมิน 34 +เวทมนตร์ 34 +แจ้ 34 +แน่ว 34 +แน่แท้ 34 +แม่คุณ 34 +แร่ 34 +แสด 34 +โง่ๆ 34 +โชย 34 +โลหะ 34 +ใจบุญ 34 +กลับกลาย 33 +ขนส่ง 33 +ขลิบ 33 +ขะมักเขม้น 33 +ครื้นเครง 33 +คอมมิวนิสต์ 33 +คุ้ยเขี่ย 33 +จำนน 33 +ซา 33 +ซึ้ง 33 +ซ่อมแซม 33 +ตรากตรำ 33 +ตราบ 33 +ตอนๆ 33 +ตะเคียน 33 +ถ่วง 33 +ทั่วหน้า 33 +ทู 33 +นกเขา 33 +นกเป็ดน้ำ 33 +บทเพลง 33 +บาทหลวง 33 +บุญญาธิการ 33 +บ่งบอก 33 +ปกปิด 33 +ป้อม 33 +ผลัดเปลี่ยน 33 +ผ่อนผัน 33 +ฝาผนัง 33 +พาณิชย์ 33 +พิธีกร 33 +พูน 33 +พ่อขุน 33 +ภิรมย์ 33 +ภูมิลำเนา 33 +มัธยัสถ์ 33 +มาตา 33 +มีเรือน 33 +มูลเหตุ 33 +ยุ้ง 33 +รสนิยม 33 +ระงม 33 +ร่องรอย 33 +ร่ำไป 33 +ฤทัย 33 +วงการ 33 +วัฒนา 33 +วาว 33 +วิทยาลัย 33 +วี่แวว 33 +สว่างไสว 33 +สะดุดตา 33 +สะเทือนใจ 33 +สะเอว 33 +สเปน 33 +ส้วม 33 +หม่อม 33 +หิมะ 33 +ห้อ 33 +อริยะ 33 +อังคาร 33 +อาจหาญ 33 +อาภัพ 33 +อิงแลนด์ 33 +เจอะ 33 +เชื้อเพลิง 33 +เต็มตัว 33 +เนื้อเพลง 33 +เปรต 33 +เว็บ 33 +เสือป่า 33 +เหมือนๆ 33 +เหม่อ 33 +แจ๋ว 33 +แน่นหนา 33 +โด 33 +โย 33 +โรงละคร 33 +โลด 33 +โสโครก 33 +ไม้สัก 33 +ไหว้เจ้า 33 +กรน 32 +กระท้อน 32 +กระโดน 32 +กว้าน 32 +กังหัน 32 +กำบัง 32 +กิจวัตร 32 +กิ้งก่า 32 +กุเรปัน 32 +ก๊าซ 32 +ขลัง 32 +ขาดใจ 32 +ข้อสงสัย 32 +คนขับ 32 +ครัวเรือน 32 +คอยท่า 32 +คาย 32 +งงๆ 32 +ฉันทลักษณ์ 32 +ชล 32 +ชีวัน 32 +ชีวา 32 +ชีวี 32 +ดิรัจฉาน 32 +ตระการ 32 +ตลับ 32 +ตะแคง 32 +ตัวต่อตัว 32 +ตำหนัก 32 +ติดปาก 32 +ทรัพยากร 32 +ทาบ 32 +ทิพย์ 32 +นครศรีธรรมราช 32 +นัง 32 +นานัปการ 32 +นาวี 32 +บังอาจ 32 +บำบัด 32 +ประไหมสุหรี 32 +ปูเสฉวน 32 +ผลกระทบ 32 +ผิง 32 +ผู้ว่าราชการ 32 +พร้า 32 +พิโรธ 32 +พุทรา 32 +ภารโรง 32 +ยื้อ 32 +ยุทธ์ 32 +ระบาด 32 +รามัญ 32 +รุก 32 +รูปปั้น 32 +ลำไย 32 +ลุล่วง 32 +ลูกศร 32 +ว่าง่าย 32 +ว้าย 32 +ศูนย์กลาง 32 +สนเทศ 32 +สลิด 32 +สังเขป 32 +สัณฐาน 32 +สั่งการ 32 +สาก 32 +สาธารณชน 32 +อัตคัด 32 +อีเก้ง 32 +อุดมศึกษา 32 +เขตแดน 32 +เข็ญใจ 32 +เข็มขัด 32 +เฉยเมย 32 +เชย 32 +เดชะ 32 +เนืองนิตย์ 32 +เยี่ยง 32 +เรียกหา 32 +เร่ร่อน 32 +เสรี 32 +เอกชน 32 +แค่นั้น 32 +แซง 32 +แตะต้อง 32 +แม่ตาย 32 +โขนง 32 +โสมนัส 32 +โอบอ้อมอารี 32 +โอ้อวด 32 +ใบ้ 32 +กระพือปีก 31 +กระโดง 31 +กลมๆ 31 +กลอนสุภาพ 31 +กลางๆ 31 +กินใน 31 +ขณะเดียวกัน 31 +ขี้เถ้า 31 +คราส 31 +คอตก 31 +คอหอย 31 +คะเน 31 +คำคม 31 +คุ้ย 31 +จรด 31 +จี๋ 31 +ชิงชัง 31 +ชื้น 31 +ซ่า 31 +ซ้ำซาก 31 +ดุ้น 31 +ตูม 31 +ถวายพระพร 31 +ถ่อ 31 +ทนาย 31 +ทรัพยากรธรรมชาติ 31 +ทวาร 31 +ทุเรียน 31 +ทูลกระหม่อม 31 +ท่านชาย 31 +ท้องพระโรง 31 +ธ 31 +นกฮูก 31 +นอนเล่น 31 +นายทุน 31 +นำพา 31 +นิกาย 31 +บทพากย์ 31 +ปฏิญาณ 31 +ปริ 31 +ปาฏิหาริย์ 31 +ผลลัพธ์ 31 +ผลึก 31 +พระพุทธองค์ 31 +พิพากษา 31 +ฟื้นฟู 31 +ฟู 31 +ภูเขาไฟ 31 +มวน 31 +มวล 31 +มหาชาติ 31 +มัคคุเทศก์ 31 +มีนาคม 31 +ยากแค้น 31 +ยืนต้น 31 +ระบอบ 31 +ระเบียบวาระ 31 +รัว 31 +รำวง 31 +รู้มาก 31 +ร้องขอ 31 +ละเมิด 31 +วัต 31 +สดุดี 31 +สาวๆ 31 +สุภาพสตรี 31 +หนักใจ 31 +หม่อมเจ้า 31 +หยก 31 +หลังๆ 31 +หัตถกรรม 31 +อดกลั้น 31 +อร่อยๆ 31 +อุทาหรณ์ 31 +อุรา 31 +อเนก 31 +เกศา 31 +เครื่องดื่ม 31 +เจียระไน 31 +เพ่อ 31 +เมือ 31 +เยี่ยมเยียน 31 +เลา 31 +เลาะ 31 +เสียเปรียบ 31 +เหลว 31 +เอดส์ 31 +เอื้อ 31 +แกน 31 +แขกเต้า 31 +แตงกวา 31 +แบะ 31 +แวบ 31 +แหว่ง 31 +โซ่ 31 +โทรม 31 +โพงพาง 31 +โฟม 31 +ใจอ่อน 31 +ไกรลาส 31 +ไตรภูมิ 31 +กรมประชาสงเคราะห์ 30 +กระแอม 30 +กราก 30 +กร่อน 30 +กิเลส 30 +กุล 30 +ขยายตัว 30 +ขอพระราชทาน 30 +ขัดขืน 30 +ขี้ผึ้ง 30 +คติธรรม 30 +คับแค้น 30 +คุณลักษณะ 30 +จันทร 30 +จิ้งหรีด 30 +จี้ 30 +ซุกซ่อน 30 +ดอกสร้อย 30 +ดินเผา 30 +ตกหล่น 30 +ตรงไปตรงมา 30 +ตัวเมือง 30 +ทองแดง 30 +ทูลเกล้า 30 +ท้อถอย 30 +นักมวย 30 +นายก 30 +นำเข้า 30 +น้ำจืด 30 +บ่ายหน้า 30 +ประโคม 30 +ปลอบโยน 30 +ปวดท้อง 30 +ปาด 30 +ผวา 30 +ผักบุ้ง 30 +ผ่อนคลาย 30 +ฝ่ายค้าน 30 +พยาธิ 30 +พระบรมศาสดา 30 +พฤกษา 30 +พลบ 30 +พละ 30 +พูเดิ้ล 30 +พ้อ 30 +ภัยพิบัติ 30 +ยาฆ่าแมลง 30 +ย่อมๆ 30 +รถบรรทุก 30 +ระย้า 30 +ระเหย 30 +รับปาก 30 +รู้ทัน 30 +ร่ายรำ 30 +ร่ำไร 30 +ลุ 30 +ล่วงเกิน 30 +ล้มเหลว 30 +วารี 30 +วิพากษ์วิจารณ์ 30 +ศิลปกรรม 30 +สวยสด 30 +หมวดหมู่ 30 +หม่นหมอง 30 +หาเรื่อง 30 +ห้วน 30 +ห้าง 30 +อนุโลม 30 +อภิเษกสมรส 30 +อรหันต์ 30 +อโศก 30 +เกลื่อนกลาด 30 +เก็บรักษา 30 +เก้อ 30 +เครือข่าย 30 +เครื่องเล่น 30 +เตี่ย 30 +เบิ่ง 30 +เผย 30 +เรี่ยวแรง 30 +เลื่อง 30 +เสี่ยงทาย 30 +เหลี่ยม 30 +เอิกเกริก 30 +เอ็ดตะโร 30 +เอ้ก 30 +แค 30 +แช่มชื่น 30 +แบบฉบับ 30 +แผง 30 +แฝด 30 +แม้กระนั้น 30 +แย้ม 30 +โซดา 30 +โบราณสถาน 30 +โผล่หน้า 30 +โฮ 30 +ใจเร็ว 30 +ใฝ่ใจ 30 +ไพร่ฟ้า 30 +ไมล์ 30 +กระโจม 29 +กษาปณ์ 29 +กันแดด 29 +กิโล 29 +กีบ 29 +ก้อย 29 +ขาม 29 +ขึ้นใจ 29 +ข่มขู่ 29 +ข้อเท้า 29 +ข้อแนะนำ 29 +ข้างเคียง 29 +ครีม 29 +คลัง 29 +คำรบ 29 +คู่ควร 29 +ฆราวาส 29 +ง่ายดาย 29 +จุดหมายปลายทาง 29 +ชักช้า 29 +ซีเมนต์ 29 +ดาย 29 +ตกต่ำ 29 +ตวง 29 +ตึกแถว 29 +ตุ๊กแก 29 +ต่ำๆ 29 +ต้นน้ำ 29 +ถี 29 +ท้องร่อง 29 +นั่นซี 29 +นามแฝง 29 +นิรันดร์ 29 +นึ่ง 29 +น้ำนม 29 +บรมวงศานุวงศ์ 29 +บากบั่น 29 +บึกบึน 29 +ประเปรียว 29 +ปีนัง 29 +ป่าทึบ 29 +ป่าละเมาะ 29 +ฝอย 29 +พระธิดา 29 +พระราชกำหนด 29 +พลุ 29 +พอตัว 29 +ภูเขาทอง 29 +มลพิษ 29 +มหาศาล 29 +มิดชิด 29 +มโหฬาร 29 +ยักยอก 29 +ยักษา 29 +ยึดมั่น 29 +ยุทธหัตถี 29 +รวมๆ 29 +ลูกบอล 29 +ศอ 29 +สมรส 29 +สะเดา 29 +สังเวช 29 +สันต์ 29 +สิงหาคม 29 +สิ่งพิมพ์ 29 +ส่งออก 29 +หมอดู 29 +หมอผี 29 +หอยโข่ง 29 +อาสน์ 29 +อาสัญ 29 +อิ่มใจ 29 +อ้อน 29 +ฮินดู 29 +เก๋ 29 +เก๋ง 29 +เฉา 29 +เชิงเทิน 29 +เซ็น 29 +เดือนหงาย 29 +เตือนสติ 29 +เยี่ยงอย่าง 29 +เลียนแบบ 29 +เล่าลือ 29 +เสียแรง 29 +เสี้ยว 29 +เหยียดหยาม 29 +แตกแยก 29 +แรด 29 +แอ่ง 29 +โซเซ 29 +โปรดปราน 29 +โผน 29 +โศกา 29 +โหย 29 +ใต้ถุนเรือน 29 +ไก่ป่า 29 +ไม่เช่นนั้น 29 +ไส้เดือน 29 +ไห้ 29 +ไอศกรีม 29 +กระหน่ำ 28 +กลุ้มใจ 28 +กัดฟัน 28 +กาฬ 28 +กิตติ 28 +ก็แล้วแต่ 28 +คลา 28 +ค้อด 28 +จงอาง 28 +จริต 28 +จวบ 28 +จักสาน 28 +จาม 28 +จำนง 28 +จำแลง 28 +ฉาน 28 +ชีวประวัติ 28 +ดุน 28 +ตรวจเลือด 28 +ตะพาบน้ำ 28 +ตะแกรง 28 +ตัดพ้อ 28 +ตาฟาง 28 +ตุ 28 +ต้นตาล 28 +ต้อย 28 +ถลาง 28 +ทับทิม 28 +ทั่ง 28 +ทำที 28 +นกหวีด 28 +นามปากกา 28 +นายเรือ 28 +นิคม 28 +นิติ 28 +นิ่ม 28 +นึง 28 +บพิตร 28 +บวก 28 +บวงสรวง 28 +บาดาล 28 +บำรุงรักษา 28 +ปกเกล้า 28 +ปฏิบัติการ 28 +ประโลม 28 +ปรับตัว 28 +ปรีดา 28 +ปลอกคอ 28 +ปลาฉลาม 28 +ปล้อง 28 +ปิ่น 28 +ป่าชายเลน 28 +ผสมพันธุ์ 28 +พรู 28 +พุทธศาสนิกชน 28 +พเนจร 28 +มักง่าย 28 +มัลละ 28 +มุ่งมั่น 28 +ยับ 28 +ยำ 28 +ระอา 28 +ระอุ 28 +รักษ์ 28 +ราชย์ 28 +ลำตัด 28 +ล่วงเลย 28 +ล้อมวง 28 +ศิลป์ 28 +สงครามโลก 28 +สมโภช 28 +สลับซับซ้อน 28 +สองต่อสอง 28 +สันดอน 28 +สารบัญ 28 +สาลี 28 +สำทับ 28 +สิทธิ์ขาด 28 +สไบ 28 +หยาบๆ 28 +หวิว 28 +หว่าง 28 +หอคอย 28 +หัวอก 28 +อนุโมทนา 28 +อักเสบ 28 +อัคร 28 +อาณัติสัญญาณ 28 +เกรียม 28 +เงี่ยหู 28 +เจ้ากรรม 28 +เจ้าข้า 28 +เซ่อ 28 +เตลิด 28 +เทวี 28 +เนื้อไม้ 28 +เบาบาง 28 +เบาใจ 28 +เบ็ดเตล็ด 28 +เพ่งเล็ง 28 +เรี่ยไร 28 +เลื่อนลอย 28 +เวท 28 +เสลา 28 +เหยียบย่ำ 28 +เอกราช 28 +แป้น 28 +โคจร 28 +โจทย์ 28 +โพลง 28 +โพล่ง 28 +โวยวาย 28 +กระติบ 27 +กระหยิ่ม 27 +กระเรียน 27 +กฤษณา 27 +กลางแจ้ง 27 +กาม 27 +กำมะหยี่ 27 +กำไล 27 +ก๊อก 27 +ขอตัว 27 +ข้อตกลง 27 +ครู่ใหญ่ๆ 27 +คะนึง 27 +คันนา 27 +คำโดด 27 +คึก 27 +จรวด 27 +จินดา 27 +ฉาบ 27 +ชุก 27 +ซอ 27 +ซับ 27 +ดั้ง 27 +ดาวเรือง 27 +ดุ่ม 27 +ดูงาน 27 +ตรึก 27 +ตลาดมืด 27 +ตีพิมพ์ 27 +ถลัน 27 +ถวายตัว 27 +ถอยทัพ 27 +ทนทาน 27 +ทะยาน 27 +ทันควัน 27 +ที่ทาง 27 +ธำรง 27 +นั้นแล 27 +นายกรัฐมนตรี 27 +นิรนัย 27 +น่าคิด 27 +บรรณานุกรม 27 +บาด 27 +บานประตู 27 +บิณฑบาต 27 +บี้ 27 +บูรณะ 27 +บูรพา 27 +ประมุข 27 +ปราด 27 +ปราโมทย์ 27 +ปลดเปลื้อง 27 +ปล่อง 27 +ปุย 27 +ผักหวานป่า 27 +ผ่องแผ้ว 27 +ผ้านุ่ง 27 +ฝีพาย 27 +พระราชินี 27 +พลับ 27 +พลิ้ว 27 +พาธา 27 +พุทธรักษา 27 +ฟอร์ด 27 +ฟ้าแลบ 27 +มารยา 27 +มิ่ง 27 +ยกยอ 27 +ยังไงๆ 27 +รณ 27 +ระรื่น 27 +ระลอก 27 +ราชบุรี 27 +รู้เท่า 27 +ลงแขก 27 +ลดหลั่น 27 +ลิ้ม 27 +ลี้ 27 +ลูกเรือ 27 +วุฒิ 27 +วูบ 27 +สบายๆ 27 +สมุน 27 +สวาท 27 +สับปะรด 27 +สัมปทาน 27 +สารเคมี 27 +สำลี 27 +สิ้นคิด 27 +สุดเสียง 27 +หม่น 27 +หละ 27 +องค์กร 27 +องุ่น 27 +อยู่กิน 27 +ออกร้าน 27 +อังวะ 27 +อับจน 27 +อื้อ 27 +อุปนัย 27 +อู้ 27 +อ่อยๆ 27 +เกรียวกราว 27 +เขื่อง 27 +เงาะป่า 27 +เงียบเหงา 27 +เชื้อโรค 27 +เนิ่นนาน 27 +เป็นๆ 27 +เพคะ 27 +เพล 27 +เศร้าหมอง 27 +เสก 27 +เสนี 27 +เสรีภาพ 27 +เหยือก 27 +เหลือกำลัง 27 +เอาหน้า 27 +เอี้ยง 27 +แกะสลัก 27 +แซม 27 +แตกฉาน 27 +แรกนา 27 +โคราช 27 +โทน 27 +โหน 27 +ไซต์ 27 +กตเวที 26 +กระหืดกระหอบ 26 +กลับไปกลับมา 26 +กัลปาวสาน 26 +กัลป์ 26 +กากี 26 +กึ่งกลาง 26 +ก๊อ 26 +ขมีขมัน 26 +ขัดเกลา 26 +ขุม 26 +ข้อสอบ 26 +คารม 26 +ค่อยยังชั่ว 26 +ค่ำคืน 26 +จงใจ 26 +จัดเตรียม 26 +จำพรรษา 26 +จุดหมาย 26 +ชุ่มชื่น 26 +ช้างพลาย 26 +ดารา 26 +ดิถี 26 +ดุสิต 26 +ดุเดือด 26 +ตม 26 +ตั่ง 26 +ตูข้า 26 +ทรงเครื่อง 26 +ทะนุถนอม 26 +ทัดเทียม 26 +ทั้งมวล 26 +ธรรมา 26 +นั่นแน่ 26 +บอบบาง 26 +บัลลังก์ 26 +บ้อง 26 +ปฏิภาณ 26 +ประกาศนียบัตร 26 +ป่าช้า 26 +ผาย 26 +ผิดแผก 26 +ผู้ชนะ 26 +ผู้รับผิดชอบ 26 +ผู้เชี่ยวชาญ 26 +ฝ่าฝืน 26 +พันๆ 26 +ฟ้องร้อง 26 +มือขวา 26 +ยิ้มละไม 26 +ย่อยๆ 26 +รามา 26 +ลงกา 26 +ลดเลี้ยว 26 +ลอยๆ 26 +ละเอียดอ่อน 26 +ลูกเลี้ยง 26 +ล้าสมัย 26 +วาทะ 26 +วารสาร 26 +วีรบุรุษ 26 +วู่วาม 26 +สวรรคโลก 26 +สอย 26 +สังฆราช 26 +สังสรรค์ 26 +สั่งซื้อ 26 +สาละวน 26 +สู่ขอ 26 +ส่วนร่วม 26 +ส่วนๆ 26 +ส่อ 26 +หมก 26 +หม้าย 26 +หลบหลีก 26 +หล่อเลี้ยง 26 +หัวหอม 26 +หายนะ 26 +หาสู่ 26 +อนาถ 26 +อนุสรณ์ 26 +ออกแบบ 26 +อักษรศาสตร์ 26 +อันที่จริง 26 +อุด 26 +อุปโภค 26 +เขม็ง 26 +เคล็ด 26 +เจ้าภาพ 26 +เฉียด 26 +เชียง 26 +เทพบุตร 26 +เนื่องมาจาก 26 +เป็นต้นไป 26 +เป็นนิตย์ 26 +เผชิญหน้า 26 +เพราะๆ 26 +เร่าร้อน 26 +เล็งเห็น 26 +เหนี่ยว 26 +แข็งๆ 26 +แผ่ว 26 +แมลงภู่ 26 +แฮะ 26 +โกศล 26 +โซ 26 +โล่ 26 +โหระพา 26 +ไทยๆ 26 +กรณียกิจ 25 +กระถิน 25 +กระวีกระวาด 25 +กลมเกลียว 25 +กล้องส่องทางไกล 25 +กักขัง 25 +กำหนดการ 25 +ก็ตามที 25 +ก่อนหน้านี้ 25 +ขันที 25 +ขั้นพื้นฐาน 25 +ข้อดี 25 +ข้อๆ 25 +คนต่างชาติ 25 +คลี่คลาย 25 +คำสุภาพ 25 +คีรี 25 +คู่หมั้น 25 +งี้ 25 +งุนงง 25 +ง้อ 25 +จิตร 25 +ฉุนเฉียว 25 +ชะมัด 25 +ชักนำ 25 +ชิงชัย 25 +ซุน 25 +ดำเนินงาน 25 +ดุลพินิจ 25 +ตอง 25 +ตะกละ 25 +ตะกุกตะกัก 25 +ตั้งอกตั้งใจ 25 +ต่างชาติ 25 +ต้มยำ 25 +ต้อ 25 +ถิ่นไทย 25 +ถือตัว 25 +ทับถม 25 +ที่ทำงาน 25 +นกคุ่ม 25 +นักสืบ 25 +นางเอก 25 +นิ่ว 25 +น้ำหน้า 25 +ปฏิมา 25 +ปั่น 25 +ปั่นป่วน 25 +ผักเสี้ยน 25 +ฝึกสอน 25 +พรรค 25 +พระชันษา 25 +พระเยาว์ 25 +พล่าน 25 +พำนัก 25 +พิถีพิถัน 25 +ภูเก็ต 25 +มัทนะ 25 +มุก 25 +ยุแหย่ 25 +รวมตัว 25 +รังสี 25 +รี้พล 25 +ลงๆ 25 +ลำปาง 25 +ลุย 25 +ลูกเต้า 25 +สงบเสงี่ยม 25 +สมญา 25 +สมมติฐาน 25 +สมเพช 25 +สรรพคุณ 25 +สัดส่วน 25 +สัตย์ซื่อ 25 +สามเณร 25 +สาแหรก 25 +สู่รู้ 25 +หนักๆ 25 +หยุดยั้ง 25 +หลบตา 25 +หวาดเสียว 25 +อยู่ตัว 25 +อัญเชิญ 25 +อัตโนมัติ 25 +อัปสร 25 +อึกทึก 25 +อุดรธานี 25 +ฮ้อ 25 +เข้าใส่ 25 +เคียดแค้น 25 +เงียบกริบ 25 +เจียน 25 +เชื้อชาติ 25 +เชื้อเชิญ 25 +เทวาลัย 25 +เนื้อสมัน 25 +เพียงแค่ 25 +เมรุ 25 +เมืองขึ้น 25 +เร่งรัด 25 +เศษๆ 25 +เสื่อมเสีย 25 +เหลืองๆ 25 +เอ่อ 25 +เฮ 25 +แข็งใจ 25 +แมง 25 +โข 25 +โครม 25 +โดยสิ้นเชิง 25 +โน้ต 25 +โน้มถ่วง 25 +โสต 25 +โสภา 25 +ให้การ 25 +ไพ่ 25 +กฐิน 24 +กดขี่ 24 +กระปุก 24 +กว้างไกล 24 +กะทิ 24 +กัลยา 24 +ก่อนหน้า 24 +ก่ำ 24 +ขด 24 +ขย้ำ 24 +ขอบพระคุณ 24 +ขุ่นเคือง 24 +ข้าราชบริพาร 24 +คราด 24 +คราบ 24 +คำปรึกษา 24 +คำหลวง 24 +คีบ 24 +ค้ำจุน 24 +ง่า 24 +จับเป็น 24 +จู้จี้ 24 +ฉบัง 24 +ฉลากบาง 24 +ฉวัดเฉวียน 24 +ชอกช้ำ 24 +ชำนิ 24 +ช่องว่าง 24 +ซักไซ้ 24 +ซุป 24 +ญัตติ 24 +ดอกทานตะวัน 24 +ดาวเทียม 24 +ดินฟ้า 24 +ด้น 24 +ตะกุย 24 +ตะขาบ 24 +ตะเลง 24 +ถัก 24 +ถี่ๆ 24 +ถูกๆ 24 +ทวย 24 +ทักษิณ 24 +ทำคุณ 24 +ทำเอา 24 +ท้อแท้ 24 +ธำมรงค์ 24 +นบ 24 +นึกเห็น 24 +นุช 24 +น้ำพุ 24 +บทดอกสร้อย 24 +บังเหียน 24 +บัดเดี๋ยว 24 +ประชาราษฎร์ 24 +ประสิทธิ์ 24 +ปักษ์ใต้ 24 +ผงก 24 +พระคุณเจ้า 24 +พรั่งพร้อม 24 +พราว 24 +พฤติการณ์ 24 +พลุ่ง 24 +พอควร 24 +พอเพียง 24 +พากย์ 24 +ฟักทอง 24 +ฟากฟ้า 24 +ฟ่อน 24 +มะยม 24 +มัจฉา 24 +มีดี 24 +ยักษี 24 +ยิ่งยวด 24 +ราชบุรุษ 24 +ริด 24 +ละเมอ 24 +ลูกกวาด 24 +ลูกโป่ง 24 +วาร 24 +ศรีษะ 24 +ศาสตรา 24 +สนาน 24 +สมัครสมาน 24 +สมัน 24 +สร้อยคอ 24 +สวนทาง 24 +สหกรณ์ 24 +สอดส่อง 24 +สะอาดสะอ้าน 24 +สารสนเทศ 24 +สาวเท้า 24 +สุดใจ 24 +ส้มตำ 24 +หนวกหู 24 +หน้าเสีย 24 +หมิ่นประมาท 24 +หาเหตุ 24 +หึๆ 24 +หุบ 24 +ห่า 24 +อติ 24 +ออด 24 +อารมณ์ขัน 24 +อิง 24 +ฮุบ 24 +เครื่องปรุง 24 +เคี่ยว 24 +เจือ 24 +เฉียบแหลม 24 +เฉื่อย 24 +เชือน 24 +เซิ้ง 24 +เดินเรือ 24 +เที่ยงตรง 24 +เนื้อร้อง 24 +เบาปัญญา 24 +เปรม 24 +เปลือย 24 +เป็นกลาง 24 +เราๆ 24 +เรือนไม้ 24 +เสื่อมโทรม 24 +เอาจริงเอาจัง 24 +แกงจืด 24 +แจ๊ส 24 +แทรกแซง 24 +แลบ 24 +แว่วๆ 24 +แหบ 24 +โชคร้าย 24 +โต้ 24 +โยชน์ 24 +โยม 24 +โอ๊ก 24 +ใจร้อน 24 +ไวๆ 24 +กระปรี้กระเปร่า 23 +กรำ 23 +กาว 23 +ก็เถอะ 23 +ขบคิด 23 +ขมา 23 +ของชำ 23 +ข่าวคราว 23 +ข้องใจ 23 +ข้างขึ้น 23 +ข้าวสุก 23 +ครบครัน 23 +ครองราชสมบัติ 23 +คริสเตียน 23 +คะน้า 23 +คั้น 23 +คำเตือน 23 +คุกคาม 23 +คู้ 23 +งัน 23 +จริยธรรม 23 +จ่าหน้า 23 +ฉก 23 +ชะลอ 23 +ชาวเขา 23 +ซี่โครง 23 +ซ่อนกลิ่น 23 +ด้อม 23 +ตกหนัก 23 +ตกเบ็ด 23 +ตะคุ่มๆ 23 +ตื่นตัว 23 +ตู้กระจก 23 +ถวิล 23 +ถ้วนถี่ 23 +ทอน 23 +ทะเยอทะยาน 23 +ทำครัว 23 +ทุกขเวทนา 23 +ทุเลา 23 +ท้วงติง 23 +นครปฐม 23 +นักบิน 23 +นักโทษ 23 +บรรพ 23 +บาดหมาง 23 +บุตรสาว 23 +บุตรหลาน 23 +บูชายัญ 23 +ปณิธาน 23 +ประจาน 23 +ปรือ 23 +ปานกลาง 23 +ปี๋ 23 +ป่วยการ 23 +ป่าวร้อง 23 +ฝืดเคือง 23 +ฝุ่นละออง 23 +พลเรือน 23 +พิสมัย 23 +พ่อครัว 23 +ฟอก 23 +ฟุ้งซ่าน 23 +ภูมิศาสตร์ 23 +มณฑป 23 +มอญซ่อนผ้า 23 +มังคุด 23 +มันๆ 23 +ยวดยาน 23 +ยวน 23 +ยี 23 +รับผิด 23 +รากษส 23 +ลดละ 23 +ลมทะเล 23 +ละห้อย 23 +ลามก 23 +ลำนำ 23 +ลู่ 23 +วางท่า 23 +วิสาสะ 23 +วิไล 23 +ว่างเว้น 23 +ว่างๆ 23 +สงขลา 23 +สะอึกสะอื้น 23 +สารท 23 +สาหร่าย 23 +สิงคโปร์ 23 +สิ้นใจ 23 +สุริยา 23 +หน้าตื่น 23 +หน้าท้อง 23 +หมาบ้า 23 +หยิ่ง 23 +หลาบ 23 +หัวออก 23 +หางเสือ 23 +หิมาลัย 23 +หือ 23 +ห่างเหิน 23 +อกตัญญู 23 +อวบ 23 +อวสาน 23 +อัญชลี 23 +อัฐิ 23 +อัดอั้นตันใจ 23 +อาลักษณ์ 23 +อุปัชฌาย์ 23 +อ้วนท้วน 23 +เกียรติคุณ 23 +เจ้าแม่ 23 +เชียร์ 23 +เบาะ 23 +เปลี่ยนใจ 23 +เมียง 23 +เม้ม 23 +เร้าใจ 23 +เสวก 23 +เสียงหลง 23 +เหี้ยมโหด 23 +เอ็น 23 +แง้ม 23 +แห้งๆ 23 +แอฟริกา 23 +โกลาหล 23 +โก้ 23 +โด่งดัง 23 +โปรตีน 23 +ใจดำ 23 +ใจถึง 23 +ได้ที่ 23 +ไป่ 23 +ไม้เรียว 23 +ไล่เลี่ย 23 +ไสว 23 +กรด 22 +กรร 22 +กระดอง 22 +กระดิ่ง 22 +กระทืบ 22 +กระโถน 22 +กราด 22 +กล่าวชม 22 +กล่าวโทษ 22 +กะพริบ 22 +กันแสง 22 +กู้เงิน 22 +ขนานนาม 22 +ขั้ว 22 +ขี้เรื้อน 22 +ข้น 22 +ข้อขัดแย้ง 22 +ข้อเสีย 22 +คงเหลือ 22 +คลาด 22 +คางคก 22 +คำมั่น 22 +คำร้อง 22 +คู่เคียง 22 +จุกจิก 22 +จุ๊บแจง 22 +ดุจดัง 22 +ดูๆ 22 +ด้วยซ้ำไป 22 +ตริ 22 +ตอบโต้ 22 +ตัดตอน 22 +ตู้เย็น 22 +ต้าน 22 +ถามไถ่ 22 +ถือดี 22 +ทรยศ 22 +ทะลาย 22 +ทัณฑฆาต 22 +ทุ่มเถียง 22 +ธรรมดาๆ 22 +นที 22 +นวม 22 +น้อยหน้า 22 +บวม 22 +บาย 22 +บุคลิกลักษณะ 22 +บุตรบุญธรรม 22 +ประชัน 22 +ปลงใจ 22 +ปลั่ง 22 +ปล้ำ 22 +ปากกว้าง 22 +ปึกแผ่น 22 +ปุถุชน 22 +ผลร้าย 22 +ผิ 22 +ผิดชอบ 22 +ผิวปาก 22 +ผู้เดินทาง 22 +ฝาน 22 +พน 22 +พระราชไมตรี 22 +ภาย 22 +มี่ 22 +ม่าย 22 +ม้าใช้ 22 +ยื่นมือ 22 +ระยับ 22 +ระวาง 22 +ริบ 22 +ร่ำเรียน 22 +ละวาด 22 +ลูกเขย 22 +ลูบคลำ 22 +ล้า 22 +วิชาชีพ 22 +วินาที 22 +วิมล 22 +ว้า 22 +สนเท่ห์ 22 +สมร 22 +สมาน 22 +สลอน 22 +สะดุดใจ 22 +สัจธรรม 22 +สัญชาตญาณ 22 +สัมผัสอักษร 22 +สามเหลี่ยม 22 +สุกใส 22 +หม้อแกง 22 +หยัก 22 +หลาว 22 +หัวมัน 22 +หายตัว 22 +หึง 22 +อนุสาวรีย์ 22 +อัตโน 22 +อัยกา 22 +อาชญา 22 +อาพาธ 22 +อิตาลี 22 +อียิปต์ 22 +อึ 22 +อุตรดิตถ์ 22 +อุทร 22 +ฮะๆ 22 +เกลี่ย 22 +เข่นฆ่า 22 +เข้าที 22 +เคียงคู่ 22 +เงินตรา 22 +เงินสด 22 +เจ้ากรม 22 +เฉลิมพระชนมพรรษา 22 +เชิงกล 22 +เชียงราย 22 +เซนต์ 22 +เซ่น 22 +เผ้า 22 +เย่อหยิ่ง 22 +เรืองรอง 22 +เสียดทาน 22 +เหรียญทอง 22 +เหลอ 22 +เห็ด 22 +แก่นสาร 22 +แคระ 22 +แช่ง 22 +แตกตื่น 22 +แนบเนียน 22 +แปร่ง 22 +แพงๆ 22 +แสวง 22 +แหน 22 +โคตร 22 +โป้ง 22 +โยธา 22 +โลกา 22 +โหม 22 +โหล 22 +โหวกเหวก 22 +โอย 22 +ใจมา 22 +ไซ 22 +ได้ส่วน 22 +ไม้ม้วน 22 +กระฉับกระเฉง 21 +กระดังงา 21 +กระสับกระส่าย 21 +กระโชก 21 +กราม 21 +กริช 21 +กลุ้มรุม 21 +กลไก 21 +กวัก 21 +กวัดแกว่ง 21 +กว่าๆ 21 +กัปตัน 21 +กุฎี 21 +ก่อง 21 +ขยำ 21 +ขอประทานโทษ 21 +ขัดจังหวะ 21 +ขาดคำ 21 +ขี้เมา 21 +ขึ้นชื่อ 21 +ขึ้นเสียง 21 +ข้าวแกง 21 +คร่าวๆ 21 +คร่ำ 21 +คับแคบ 21 +งก 21 +งัวเงีย 21 +ง่าม 21 +จางๆ 21 +ฉลาก 21 +ซ่าน 21 +ดักจับ 21 +ดุดัน 21 +ตกดิน 21 +ตรัสรู้ 21 +ตะไคร่ 21 +ตาด 21 +ติดตา 21 +ติดไฟ 21 +ต้องใจ 21 +ทรวดทรง 21 +ทรหด 21 +ทองหลาง 21 +ทันใจ 21 +ท่านผู้หญิง 21 +ท้องถนน 21 +ธัญญาหาร 21 +น้ำข้าว 21 +บงการ 21 +บนบาน 21 +บรรหาร 21 +บ่อน 21 +ปทุม 21 +ประจัญ 21 +ประดู่ 21 +ปลง 21 +ปักษ์ 21 +ปุจฉา 21 +ผู้ซื้อ 21 +ผู้บังคับการ 21 +ผ้าขี้ริ้ว 21 +ฝีดาษ 21 +ฝ่าพระบาท 21 +พระราชกรณียกิจ 21 +พรั่นพรึง 21 +พริบตาเดียว 21 +พฤหัสบดี 21 +พ่ะ 21 +ฟังๆ 21 +มรรยาท 21 +มอด 21 +มาตรการ 21 +มาย 21 +มุ 21 +ยอง 21 +ยับเยิน 21 +รง 21 +รัตนา 21 +ร้อยชั่ง 21 +ร้อยๆ 21 +ลงคอ 21 +ลงโรง 21 +ละม้าย 21 +ลำพอง 21 +ลูกพรวน 21 +ลูกยาเธอ 21 +ลูกเต๋า 21 +ล่วงรู้ 21 +ล้าหลัง 21 +วัตร 21 +วโรกาส 21 +ศตวรรษ 21 +สักการ 21 +สัมผัสนอก 21 +สายสร้อย 21 +สิ้นเชิง 21 +หน้าตาเฉย 21 +หยวก 21 +หยาด 21 +หรรษา 21 +หรี่ 21 +หายหน้า 21 +ห้าว 21 +อดิเรก 21 +อดีตกาล 21 +อนาถา 21 +อริ 21 +อวน 21 +อัคคี 21 +อาจิณ 21 +อิดโรย 21 +อึง 21 +เก็บหอมรอมริบ 21 +เก่งๆ 21 +เคร่งขรึม 21 +เจ้าบ้าน 21 +เจ้าสาว 21 +เฉ 21 +เช่นไร 21 +เซาะ 21 +เต็มๆ 21 +เทง 21 +เทียนอบ 21 +เมื่อยล้า 21 +เม้มปาก 21 +เลือดเนื้อ 21 +เสียงแข็ง 21 +เสือก 21 +เหวย 21 +แกงเผ็ด 21 +แกรก 21 +แกลบ 21 +แปลบ 21 +แผ่เมตตา 21 +แม้กระทั่ง 21 +แล้ 21 +แอปเปิล 21 +โป 21 +โพ 21 +โพ้น 21 +ไข่เต่า 21 +ไดโนเสาร์ 21 +ไน 21 +ไปๆ 21 +กงการ 20 +กรมศิลปากร 20 +กระจกเงา 20 +กระเพาะ 20 +กระได 20 +กาก 20 +กาสร 20 +กำกวม 20 +กำลังดี 20 +กิตติศัพท์ 20 +กึก 20 +ก้าวเท้า 20 +ขยาด 20 +ของเสีย 20 +ขุนเขา 20 +คนเมือง 20 +ครองชีพ 20 +คร่อม 20 +คร้าม 20 +ควบคู่ 20 +คิดเลข 20 +คูณ 20 +งงงวย 20 +งีบ 20 +จก 20 +จลาจล 20 +จับกุม 20 +จำศีล 20 +จีวร 20 +จ้อ 20 +ฉาด 20 +ชกต่อย 20 +ชัดๆ 20 +ชูคอ 20 +ช้างน้อย 20 +ซบเซา 20 +ซ่อนเร้น 20 +ดึกดื่น 20 +ดื้อดึง 20 +ดุจหนึ่ง 20 +ตกค้าง 20 +ตวัด 20 +ตะเกียบ 20 +ตามมี 20 +ติง 20 +ตีปีก 20 +ตื้นตันใจ 20 +ต่ำต้อย 20 +ถือท้าย 20 +ทะเลทราย 20 +ทั้งผอง 20 +ทินกร 20 +ทุกเมื่อ 20 +ทุนทรัพย์ 20 +ธรรมจริยา 20 +นภาลัย 20 +นักพรต 20 +นางสาว 20 +น่านน้ำ 20 +น้อยหรือ 20 +บ 20 +บ่งชี้ 20 +บ้านเกิดเมืองนอน 20 +ประทัง 20 +ประนมมือ 20 +ปลาแดก 20 +ปัสสาวะ 20 +ป้าน 20 +ผอมๆ 20 +ผู้ขาย 20 +ผู้ดูแล 20 +ผู้เยาว์ 20 +พระบรมราชินีนาถ 20 +พระเคราะห์ 20 +พริ้ม 20 +พร่า 20 +พลับพลึง 20 +พสกนิกร 20 +พิทักษ์ 20 +พิพิธภัณฑ์ 20 +ฟูมฟาย 20 +ภูต 20 +มหันต์ 20 +มะค่า 20 +มีแก่ใจ 20 +มุนี 20 +ยาเส้น 20 +ยืนกราน 20 +ยุทธวิธี 20 +ยุ่งเหยิง 20 +รบเร้า 20 +รองๆ 20 +รอนแรม 20 +ระเห็จ 20 +รัฐมนตรี 20 +ริ้ว 20 +ร้องทุกข์ 20 +ร้าว 20 +ฤทธา 20 +ลอยตัว 20 +ละม่อม 20 +ลำบากใจ 20 +ลำเนา 20 +ลิ้นจี่ 20 +ลื้อ 20 +ล้วงกระเป๋า 20 +วิจัย 20 +ว่ะ 20 +ว่างงาน 20 +สกรู 20 +สถาปัตยกรรม 20 +สัต 20 +สัตวแพทย์ 20 +สาธก 20 +สายๆ 20 +สารพัน 20 +สูงส่ง 20 +ส่วนหลัง 20 +ส้น 20 +หนีบ 20 +หมัน 20 +หยิบยืม 20 +หยุดหย่อน 20 +หย่อนใจ 20 +หย่อมๆ 20 +หลอด 20 +หลังคาเรือน 20 +หักห้าม 20 +หับ 20 +ห้วนๆ 20 +ห้างร้าน 20 +อมรา 20 +อร 20 +อรชร 20 +ออกรับ 20 +อิฉัน 20 +อินทรวิเชียร 20 +อุบล 20 +เกลี้ยงเกลา 20 +เก้งก้าง 20 +เขม้น 20 +เคล็ดลับ 20 +เจ 20 +เจ็บใจ 20 +เจ้ามือ 20 +เฉียบ 20 +เชาวน์ 20 +เซา 20 +เติมเต็ม 20 +เปียโน 20 +เผยอ 20 +เฝือก 20 +เล่นงาน 20 +เสวนา 20 +เส้นเลือด 20 +เหิน 20 +เอาใจช่วย 20 +แขกเมือง 20 +แฉะ 20 +แน่นขนัด 20 +แล้วๆ 20 +แสนรู้ 20 +แสลง 20 +แอ 20 +แอตแลนติก 20 +โคลงเคลง 20 +โคลัมโบ 20 +โทมนัส 20 +โลม 20 +ไป๊ 20 +ไม้ยมก 20 +ไหล่เขา 20 +กระบวนแห่ 19 +กระเซ็น 19 +กระแต 19 +กลัก 19 +กลับหลัง 19 +กวางทอง 19 +กองทหาร 19 +กอปร 19 +ขยับเขยื้อน 19 +ขยี้ 19 +ขรัว 19 +ข้อยุติ 19 +คบค้า 19 +ครหา 19 +คฤหบดี 19 +คอลัมน์ 19 +คำย่อ 19 +คิดมาก 19 +คู่ๆ 19 +จับความ 19 +จินตภาพ 19 +จุน 19 +จุลศักราช 19 +ฉายา 19 +ชกมวย 19 +ชะแง้ 19 +ชี้แนะ 19 +ซด 19 +ซู่ซ่า 19 +ดลใจ 19 +ดูหรือ 19 +ตนๆ 19 +ตะกาย 19 +ตะลุมบอน 19 +ตัดรอน 19 +ตัวนาง 19 +ตึงเครียด 19 +ต้นทาง 19 +ถ่ายเท 19 +ท้วง 19 +ท้องเรื่อง 19 +นางงาม 19 +บาปกรรม 19 +บุคลิกภาพ 19 +บุราณ 19 +บ่ายๆ 19 +ประกอบอาหาร 19 +ประทัด 19 +ประหม่า 19 +ปราม 19 +ปลี 19 +ปลุกใจ 19 +ผันแปร 19 +ผีหลอก 19 +ผูกมัด 19 +ผู้กำกับ 19 +ผู้สมัคร 19 +พยศ 19 +พระเป็นเจ้า 19 +ภูมิภาค 19 +มั้ง 19 +มารดร 19 +ยางพารา 19 +ยุพราช 19 +ยู 19 +ย่ำยี 19 +ระคาย 19 +ระราน 19 +ระเด่น 19 +ระเบียบการ 19 +ลวก 19 +ลออ 19 +ละล่ำละลัก 19 +ลึกๆ 19 +ลูกแก้ว 19 +ล่วงลับ 19 +วิจักษณ์ 19 +วิญญาณ์ 19 +ศิลปวัฒนธรรม 19 +สถานภาพ 19 +สนิม 19 +สวมใส่ 19 +สวิง 19 +สังเกตการณ์ 19 +สันตะปาปา 19 +สัมมาสัมพุทธเจ้า 19 +สาธุ 19 +สุดกำลัง 19 +สุนทรพจน์ 19 +หงอย 19 +หนาๆ 19 +หนำ 19 +หมั้น 19 +หมิ่น 19 +ห้อมล้อม 19 +อมนุษย์ 19 +อวดอ้าง 19 +อัสสัมชัญ 19 +อุ้ยอ้าย 19 +อ้อมค้อม 19 +อ้ำอึ้ง 19 +เขียวๆ 19 +เคยตัว 19 +เครียด 19 +เคลิ้ม 19 +เคหสถาน 19 +เจ้าขา 19 +เดน 19 +เดินหน้า 19 +เดี๋ยวเดียว 19 +เทวัญ 19 +เทอญ 19 +เทิด 19 +เบ้ 19 +เพรียง 19 +เยิ้ม 19 +เยื้อง 19 +เลอะ 19 +เว้า 19 +เหยาะ 19 +เอนตัว 19 +เอื่อย 19 +แบบฝึกหัด 19 +แปรปรวน 19 +แยแส 19 +โห 19 +ใจเสีย 19 +ในที่นี้ 19 +ไพล่ 19 +กบิล 18 +กรณียะ 18 +กรวย 18 +กริ๋ง 18 +กรุ่น 18 +กลวง 18 +กองทัพเรือ 18 +กะพง 18 +กะเพรา 18 +กาน 18 +ขมุบขมิบ 18 +ขยุ้ม 18 +ขี้หนู 18 +ขึงขัง 18 +ข่าวร้าย 18 +ข้าวสวย 18 +คงที่ 18 +คู่มือ 18 +งม 18 +จงดี 18 +จับกลุ่ม 18 +จับคู่ 18 +จำเจ 18 +จำเลย 18 +จ้าน 18 +ฉายาลักษณ์ 18 +ชฎา 18 +ชะตากรรม 18 +ชั้นๆ 18 +ชาตรี 18 +ซักซ้อม 18 +ดาวดึงส์ 18 +ดีอกดีใจ 18 +ดึกๆ 18 +ดูเถอะ 18 +ตกทอด 18 +ตรม 18 +ตรอก 18 +ตราบเท่า 18 +ตราบใด 18 +ตั้งหน้าตั้งตา 18 +ตื่นตาตื่นใจ 18 +ตื้นตัน 18 +ตุ้มหู 18 +ต่างแดน 18 +ต้นทุน 18 +ต้องสู้ 18 +ถลอก 18 +ถ่อย 18 +ทวีคูณ 18 +ทอดกฐิน 18 +ทัณฑ์ 18 +ทันทีทันใด 18 +ทัศน์ 18 +ที่จอดรถ 18 +ทุนรอน 18 +นรินทร์ 18 +น้ำยา 18 +น้ำเกลือ 18 +บวบ 18 +บาทา 18 +บำเรอ 18 +บ่าวไพร่ 18 +ปฏิวัติ 18 +ประลอง 18 +ปรับทุกข์ 18 +ปลวก 18 +ปวงชน 18 +ปีบ 18 +ผลกำไร 18 +ผลิตผล 18 +ผักชี 18 +ผิดสังเกต 18 +ผุดผ่อง 18 +ผูกไมตรี 18 +ฝังใจ 18 +ฝาด 18 +พระศรีรัตนศาสดาราม 18 +พลตระเวน 18 +พลุกพล่าน 18 +พอก 18 +พัวพัน 18 +พายัพ 18 +พิณ 18 +พิธีเปิด 18 +พิรุธ 18 +พึงใจ 18 +ฟุบ 18 +ภาพเขียน 18 +มนุษยชาติ 18 +มรสุม 18 +มวลชน 18 +มะระ 18 +มืดมัว 18 +ยุทธ 18 +ระแหง 18 +ร้องเรียน 18 +ละเอียดลออ 18 +ลั่นกุญแจ 18 +ลั่นทม 18 +ลิงโลด 18 +ลูกปืน 18 +ลูกเดียว 18 +ล้างผลาญ 18 +วัตถุดิบ 18 +วางมือ 18 +วาที 18 +วานซืน 18 +วิก 18 +วิตถาร 18 +วิสกี้ 18 +วิสาขบูชา 18 +ศักยภาพ 18 +สมุทรปราการ 18 +สัมพันธไมตรี 18 +สั่งสม 18 +สามล้อ 18 +สำเร็จรูป 18 +สิงหล 18 +สินบน 18 +สุดา 18 +สูญพันธุ์ 18 +สแลง 18 +ส่งเสีย 18 +หนังสติ๊ก 18 +หน่อยๆ 18 +หมดจด 18 +หมาใน 18 +หมู่เกาะ 18 +หม้อข้าวหม้อแกงลิง 18 +หวอ 18 +หวูด 18 +หัวเรื่อง 18 +ออกกำลัง 18 +ออกชื่อ 18 +อัปยศ 18 +อั้น 18 +อั๊วะ 18 +อิ่มเอิบ 18 +อีแอ่น 18 +อุตลุด 18 +อุทัย 18 +อุ่นๆ 18 +อ่าวไทย 18 +อ้างว้าง 18 +ฮอลันดา 18 +ฮื้อ 18 +เกศ 18 +เกี่ยง 18 +เก่งกาจ 18 +เขน 18 +เขยก 18 +เขย่ง 18 +เคน 18 +เครื่องบูชา 18 +เครื่องใน 18 +เงินได้ 18 +เฉี่ยว 18 +เชิงอรรถ 18 +เซอร์ 18 +เซ้าซี้ 18 +เตาผิง 18 +เถลไถล 18 +เปน 18 +เผินๆ 18 +เผื่อว่า 18 +เผ็ดร้อน 18 +เพรียว 18 +เพลี่ยงพล้ำ 18 +เลือกเฟ้น 18 +เศรษฐศาสตร์ 18 +เสียดสี 18 +เหลียวแล 18 +เหลือทน 18 +เหลือหลาย 18 +เอกรรถประโยค 18 +เอนหลัง 18 +เอราวัณ 18 +เอารัดเอาเปรียบ 18 +เอียน 18 +แก๊ส 18 +แข็งแกร่ง 18 +แคลง 18 +แจกจ่าย 18 +แซว 18 +แตน 18 +แบ่งแยก 18 +แผนภาพ 18 +แผ่วๆ 18 +แพน 18 +แฟง 18 +แยกเขี้ยว 18 +แร้นแค้น 18 +แสม 18 +โชคชะตา 18 +โต๊ะทำงาน 18 +โลกนาถ 18 +โอน 18 +โอ่โถง 18 +ให้ร้าย 18 +ไช 18 +ไตรยางศ์ 18 +ไพ 18 +ไม้บรรทัด 18 +ไล่เลียง 18 +ไสร้ 18 +กรมหลวง 17 +กระซิบกระซาบ 17 +กระดานดำ 17 +กระติก 17 +กระหนาบ 17 +กระแสลม 17 +กลัด 17 +กลุ่มๆ 17 +กัญชา 17 +กุญชร 17 +ก่อการ 17 +ก้ามปู 17 +ขวดโหล 17 +ขอแรง 17 +ขำขัน 17 +ขี้เหนียว 17 +ข่อย 17 +ข้อย่อย 17 +ข้าวหลาม 17 +ครั่ง 17 +ครั่นคร้าม 17 +ครืน 17 +ควายป่า 17 +คอนกรีต 17 +คาดคิด 17 +ค่าธรรมเนียม 17 +ง่วน 17 +จริยา 17 +จักรวาล 17 +จักษุ 17 +จิตรลดา 17 +จิ้งจก 17 +จุติ 17 +จู่ 17 +จ่อ 17 +จ้วง 17 +จ้อย 17 +ชำ 17 +ซ้อนๆ 17 +ดอด 17 +ดังหนึ่ง 17 +ดับเพลิง 17 +ดาษ 17 +ดีเซล 17 +ด้วง 17 +ตกใน 17 +ตราไปรษณียากร 17 +ตัดเย็บ 17 +ตัวเอก 17 +ตาคม 17 +ถลก 17 +ถาก 17 +ถ่ายเดียว 17 +ทบ 17 +ทองเหลือง 17 +ทะนุบำรุง 17 +ทันท่วงที 17 +ทาก 17 +ทางแยก 17 +ทิวทัศน์ 17 +ท้องแก่ 17 +ธรรมศาสตร์ 17 +นักวิทยาศาสตร์ 17 +นางรม 17 +นางแอ่น 17 +นางไม้ 17 +นายแพทย์ 17 +นำทาง 17 +น้อยหน่า 17 +น้ำพักน้ำแรง 17 +น้ำว้า 17 +บทสรุป 17 +บอด 17 +บอลล์ 17 +บาล 17 +ปรก 17 +ปรปักษ์ 17 +ปราง 17 +ปอน 17 +ปะการัง 17 +ปีนป่าย 17 +ปีๆ 17 +ผ่อนส่ง 17 +ฝากตัว 17 +พรมแดน 17 +พรวด 17 +พระวินัย 17 +พระวิหาร 17 +พระเอก 17 +พระแสง 17 +พร่ำสอน 17 +พฤกษชาติ 17 +พวกๆ 17 +พิณพาทย์ 17 +พิพัฒน์ 17 +ฟุด 17 +ภูมิหลัง 17 +มอม 17 +มอมแมม 17 +มือขึ้น 17 +ยัติภังค์ 17 +รอม 17 +ระยะห่าง 17 +รับไหว้ 17 +รูปลักษณ์ 17 +รูปสมบัติ 17 +ละมุด 17 +ลักพา 17 +ลัดเลาะ 17 +ลิขิต 17 +ลิบๆ 17 +ลูกฟุตบอล 17 +วิทยากร 17 +ว่อน 17 +ศาสตราจารย์ 17 +สรณะ 17 +สลวย 17 +สล้าง 17 +สัมมนา 17 +สั่นสะเทือน 17 +สาธยาย 17 +สาธุการ 17 +สายเลือด 17 +สาละ 17 +สาโลหิต 17 +สุภาพบุรุษ 17 +ส่งตัว 17 +หงอก 17 +หมั่นไส้ 17 +หลงกล 17 +หลอกล่อ 17 +หวีด 17 +หอมหวน 17 +หุ้นส่วน 17 +อดใจ 17 +อนันต์ 17 +อรรถรส 17 +อักโข 17 +อัปรีย์ 17 +อำพราง 17 +อีโต้ 17 +อุปสมบท 17 +อ่อนใจ 17 +อ้น 17 +เกรี้ยวกราด 17 +เก็บออม 17 +เขียวหวาน 17 +เจิม 17 +เจื้อยแจ้ว 17 +เจ่า 17 +เฉลี่ย 17 +เดินสวน 17 +เต็มปาก 17 +เถิง 17 +เบน 17 +เบียดเสียด 17 +เพ้อ 17 +เภท 17 +เลวร้าย 17 +เลวๆ 17 +เล็ด 17 +เสน 17 +เสากระโดง 17 +เสียคน 17 +เสียรู้ 17 +เสียหลัก 17 +เหนื่อยหน่าย 17 +เหมือนว่า 17 +เฮโรอิน 17 +แกร่ง 17 +แก่งแย่ง 17 +แก้วมรกต 17 +แข 17 +แคลงใจ 17 +แบ 17 +แยม 17 +โง่เง่า 17 +โชติช่วง 17 +โถม 17 +โทโส 17 +โปรตุเกส 17 +โพลน 17 +โรม 17 +โลดโผน 17 +โล้ 17 +โหว่ 17 +โอ่อ่า 17 +ไม้ขีด 17 +ไม้ยาว 17 +ไยดี 17 +กระเต็น 16 +กระเพื่อม 16 +กลอก 16 +กลัง 16 +กลั่นกรอง 16 +กลางเดือน 16 +กลางแปลง 16 +กล่า 16 +กองหน้า 16 +กะหล่ำ 16 +กันไตร 16 +กาลสมัย 16 +กำยำ 16 +ก้มหัว 16 +ขง 16 +ขยะแขยง 16 +ขวัญตา 16 +ขีดเขียน 16 +ขื่อ 16 +ข้าพระ 16 +คณนา 16 +คนรัก 16 +ครีบ 16 +คลั่ก 16 +ควาน 16 +คอแห้ง 16 +ฆ่าตัวตาย 16 +จนชั้น 16 +จรลี 16 +จะงอย 16 +จัญไร 16 +จับตาดู 16 +จำเดิม 16 +จุดเด่น 16 +ฉอดๆ 16 +ฉิน 16 +ชนชั้น 16 +ชะล่า 16 +ชัดแจ้ง 16 +ชันสูตร 16 +ชั่วช้า 16 +ชั้นเชิง 16 +ชำแหละ 16 +ชี้นิ้ว 16 +ชุมนุมชน 16 +ซาบ 16 +ฌาปนกิจ 16 +ดล 16 +ตอด 16 +ตอนหลัง 16 +ตะคอก 16 +ติดตั้ง 16 +ต่อตา 16 +ต้นเรื่อง 16 +ต้อยติ่ง 16 +ทก 16 +ทมิฬ 16 +ทลาย 16 +ทะมึน 16 +ทะลึ่ง 16 +ทิ่ม 16 +ที่ทำการ 16 +ที่ว่าการ 16 +ทื่อ 16 +ทุบตี 16 +ธร 16 +นวดข้าว 16 +นายพล 16 +นาสิก 16 +นิกร 16 +น้ำกรด 16 +น้ำมันก๊าด 16 +บทเจรจา 16 +บรรณารักษ์ 16 +บอๆ 16 +บางพระโขนง 16 +บุปผา 16 +บ้วน 16 +ปฏิบัติธรรม 16 +ปฏิสนธิ 16 +ปฏิสันถาร 16 +ประจวบ 16 +ประยูร 16 +ปราย 16 +ปลาดาว 16 +ปลาบ 16 +ปลาบปลื้ม 16 +ปล่อยมือ 16 +ปอ 16 +ปุ๋ยคอก 16 +ผงคลี 16 +ผนวก 16 +ผันอักษร 16 +ผาล 16 +ผู้ริเริ่ม 16 +ผ้าพื้น 16 +ฝักบัว 16 +พรต 16 +พระนางเจ้า 16 +พรักพร้อม 16 +พราง 16 +พลาดท่า 16 +พลี 16 +พะวง 16 +พัดลม 16 +พันธ์ 16 +พิมาน 16 +ฟอด 16 +มิ่งขวัญ 16 +มืดมน 16 +ยกพื้น 16 +ยม 16 +ยิบ 16 +ยืนยง 16 +ยุทธนา 16 +ระยิบระยับ 16 +รัตนบุระอังวะ 16 +รากฐาน 16 +ราวี 16 +รินๆ 16 +รู้ที 16 +ฤษี 16 +ลมปาก 16 +ลำเค็ญ 16 +ลุกลี้ลุกลน 16 +ลูกเธอ 16 +ลูบไล้ 16 +ลู่ทาง 16 +ล่มจม 16 +ล้มลุกคลุกคลาน 16 +วงศ์วาน 16 +วัก 16 +วิปริต 16 +วิริยะ 16 +วิเวก 16 +สมดุล 16 +สรรพ์ 16 +สรวง 16 +สอดแนม 16 +สังขาร 16 +สัด 16 +สามัญชน 16 +สิ้นเปลือง 16 +สีดา 16 +สุรางคนางค์ 16 +ส่า 16 +ส่ำ 16 +ส้อม 16 +หนองคาย 16 +หมายมั่น 16 +หมายใจ 16 +หลงลืม 16 +หลงเหลือ 16 +หลักแหล่ง 16 +หลั่งไหล 16 +หลืบ 16 +หวี่ 16 +หอมๆ 16 +หาความ 16 +หาวนอน 16 +หึ่ง 16 +องก์ 16 +อธิบดี 16 +อนุบาล 16 +อบายมุข 16 +อภินิหาร 16 +อรรถ 16 +ออกซิเจน 16 +อัตภาพ 16 +อัปมงคล 16 +อาทร 16 +อิสริยยศ 16 +อุทัยธานี 16 +อุบัติ 16 +อุบาทว์ 16 +อุ่นใจ 16 +อ๊อก 16 +ฮื่อ 16 +เกรียน 16 +เกศธาตุ 16 +เข 16 +เขียนแบบ 16 +เครื่องจักรกล 16 +เครื่องแกง 16 +เครื่องใช้ไฟฟ้า 16 +เคหะ 16 +เงียบเชียบ 16 +เทอะ 16 +เนื้อทราย 16 +เบอร์ 16 +เบียน 16 +เปรย 16 +เปรี้ยง 16 +เป๋ 16 +เผือด 16 +เพท 16 +เพ้อเจ้อ 16 +เมษ 16 +เมี่ยง 16 +เยาวมาลย์ 16 +เร่งด่วน 16 +เร่งเร้า 16 +เลี้ยงแขก 16 +เลือดฝาด 16 +เสมอภาค 16 +เส้นใย 16 +เหา 16 +เหี่ยวแห้ง 16 +เอกภาพ 16 +เอาจริง 16 +เอ้อระเหย 16 +แก้วตา 16 +แง่มุม 16 +แช่ม 16 +แต่อย่างไรก็ตาม 16 +แถลงการณ์ 16 +แนวโน้ม 16 +แน่นแฟ้น 16 +แผ้ว 16 +แพร่ง 16 +แระ 16 +แล่ 16 +แอปเปิ้ล 16 +โขมง 16 +โดดเดี่ยว 16 +โม่ 16 +โฮๆ 16 +ไก่ฟ้า 16 +ไข่ดาว 16 +ไพรี 16 +ไม้ไต่คู้ 16 +ไส้ศึก 16 +กระจอก 15 +กระเปาะ 15 +กระเหม็ดกระแหม่ 15 +กรีฑา 15 +กรี๊ด 15 +กลบเกลื่อน 15 +กลางดึก 15 +กล่อมเกลา 15 +กล่าวขวัญ 15 +กล้ำกราย 15 +กะทันหัน 15 +กะละออม 15 +กะโหลก 15 +กัญ 15 +กาพย์กลอน 15 +กาหลัง 15 +กิจจา 15 +กินใจ 15 +กึ่งหนึ่ง 15 +กุมารา 15 +ก้าบ 15 +ขนมจีน 15 +ขลับ 15 +ขับขาน 15 +ขาดสาย 15 +ขี้เหร่ 15 +ข่าง 15 +ข้อจำกัด 15 +ข้อโต้แย้ง 15 +ข้างแรม 15 +ข้าวปลูก 15 +คณา 15 +ครั้งแล้วครั้งเล่า 15 +ครึ่งๆ 15 +ครือ 15 +คลี 15 +คาดคั้น 15 +คำแปล 15 +คำๆ 15 +คืนดี 15 +คูหา 15 +งวด 15 +งาช้าง 15 +จับจ้อง 15 +จั่น 15 +จิปาถะ 15 +จิ๊บ 15 +จุลภาค 15 +จ้อกแจ้ก 15 +ฉลองพระองค์ 15 +ฉับไว 15 +ฉุกเฉิน 15 +ชมชอบ 15 +ชลบุรี 15 +ชะโด 15 +ชิ้นๆ 15 +ชื่นชอบ 15 +ช้างต่อ 15 +ซีดเซียว 15 +ซื้อหา 15 +ดร 15 +ดิ่ง 15 +ดื้อๆ 15 +ดุม 15 +ดูกร 15 +ดูดาย 15 +ดูรา 15 +ตลาดนัด 15 +ตะลีตะลาน 15 +ตะไกร 15 +ตังค์ 15 +ตัดถนน 15 +ตั้งไข่ 15 +ตายคาที่ 15 +ตีกรรเชียง 15 +ตื๋อ 15 +ต้องตา 15 +ถูกกระทำ 15 +ทัศนา 15 +ทางผ่าน 15 +ทางเท้า 15 +ทางเลือก 15 +ท่อนๆ 15 +นกกระสา 15 +นกพิราบ 15 +นนท์ 15 +นักการ 15 +นักบุญ 15 +นิเวศ 15 +นุ่น 15 +นุ่มๆ 15 +น้ำเค็ม 15 +น้ำเต้า 15 +น้ำเมา 15 +บทประพันธ์ 15 +บรรพชา 15 +บริภาษ 15 +บาก 15 +บิดร 15 +บุหงา 15 +บ้านเกิด 15 +ประปราย 15 +ประยุกต์ 15 +ปิ่นโต 15 +ป่าวประกาศ 15 +ผอง 15 +ผิวเผิน 15 +ผืนดิน 15 +ผู้ตาย 15 +ผ้าใบ 15 +พนา 15 +พยัคฆ์ 15 +พยุหยาตรา 15 +พระญาติ 15 +พร้อง 15 +พร้อมพรัก 15 +พร้อมมูล 15 +พัลวัน 15 +พิฆาต 15 +พิชัยสงคราม 15 +พิธีรีตอง 15 +พิรุณ 15 +พึ่บ 15 +พู่กัน 15 +พ่อตา 15 +ฟรีๆ 15 +ฟองน้ำ 15 +ฟัด 15 +ฟื้นตัว 15 +มณฑา 15 +มนัส 15 +มรกต 15 +มรรค 15 +มลทิน 15 +มหัพภาค 15 +มะขามเทศ 15 +มะเขือเทศ 15 +มะไฟ 15 +มักได้ 15 +มันสมอง 15 +มั่นหมาย 15 +มุ่งหวัง 15 +มูลฝอย 15 +มโน 15 +ม้าน้ำ 15 +ยอบ 15 +ยากไร้ 15 +ยิงฟัน 15 +ยิ้มย่อง 15 +ยึดเหนี่ยว 15 +ยุบ 15 +ยุ่งเกี่ยว 15 +ย่อยยับ 15 +รวนเร 15 +รับขวัญ 15 +ราน 15 +รายจ่าย 15 +รุ่นราวคราวเดียวกัน 15 +รู้จักมักคุ้น 15 +ร้อยเอ็ด 15 +ลนลาน 15 +ลำเรือ 15 +ลำเลียง 15 +ล่ำ 15 +ล้วนๆ 15 +วงดนตรี 15 +วจี 15 +วันทา 15 +วิวัฒนาการ 15 +วีรกรรม 15 +วูบวาบ 15 +ว่าน 15 +สถาพร 15 +สมณะ 15 +สมา 15 +สะทก 15 +สามล 15 +สารถี 15 +สารประโยชน์ 15 +สิงหนาท 15 +สีข้าง 15 +สุดคิด 15 +สุทัศน์ 15 +สุริยอุปราคา 15 +สูญสิ้น 15 +ส้มโอ 15 +หดหู่ 15 +หนอย 15 +หมากรุก 15 +หลา 15 +หลุดลอย 15 +หว้ากอ 15 +หาเสียง 15 +หิ่งห้อย 15 +หึ่งๆ 15 +ห้อยโหน 15 +ห้าวหาญ 15 +อดออม 15 +อสุรี 15 +ออฟฟิศ 15 +อัดอั้น 15 +อานิสงส์ 15 +อึก 15 +ฮวน 15 +ฮือๆ 15 +เกรียงไกร 15 +เกร็ด 15 +เกี่ยวพัน 15 +เขยิบ 15 +เข้าหู 15 +เครื่องรับ 15 +เคลือบ 15 +เค้ก 15 +เงินกู้ 15 +เจ้าเล่ห์ 15 +เชลย 15 +เดาะ 15 +เดียวดาย 15 +เด็ดเดี่ยว 15 +เถอะน่า 15 +เนรมิต 15 +เบี่ยง 15 +เปรยๆ 15 +เปราะ 15 +เปิดเปิง 15 +เฝ้าคอย 15 +เรื่องๆ 15 +เรไร 15 +เล่ห์เหลี่ยม 15 +เว้ย 15 +เหลือใช้ 15 +เห้น 15 +เอางาน 15 +เอาเลย 15 +เอื้ออำนวย 15 +แตกทัพ 15 +แตกร้าว 15 +แตรวง 15 +แน่นิ่ง 15 +แบแร๊ก 15 +แมน 15 +โกศ 15 +โจ๊ก 15 +โยกย้าย 15 +โลง 15 +โสน 15 +โหยหวน 15 +โอภาส 15 +โฮ่งๆ 15 +ใส่ร้าย 15 +ไก 15 +ไกล่เกลี่ย 15 +ไตรรงค์ 15 +ไปยาล 15 +ไม้มลาย 15 +ไม้สูง 15 +กรมท่า 14 +กรรณ 14 +กรรมสิทธิ์ 14 +กระเถิบ 14 +กระแสไฟฟ้า 14 +กรับ 14 +กรี๊ดๆ 14 +กลอย 14 +กลั่น 14 +กลี 14 +กล่าวอ้าง 14 +กวางป่า 14 +กุลบุตร 14 +ขลุกขลัก 14 +ขลุ่ย 14 +ของโจร 14 +ข้อศอก 14 +ข้าแผ่นดิน 14 +ข้าไท 14 +คช 14 +คดีความ 14 +คมขำ 14 +คลาไคล 14 +คลื่นลม 14 +คลุมเครือ 14 +คอม 14 +คะยั้นคะยอ 14 +คาดการณ์ 14 +คาดหวัง 14 +คำขอ 14 +คิก 14 +คิกๆ 14 +คีม 14 +คุ้นหู 14 +งอน 14 +ง่าน 14 +จองจำ 14 +จักรราศี 14 +จำกัดความ 14 +จำนวนนับ 14 +จิตรกร 14 +จิตสำนึก 14 +จิ๊ด 14 +จ๊า 14 +ฉุย 14 +ฉ้อ 14 +ชนะเลิศ 14 +ชาวเกาะ 14 +ชื่อตัว 14 +ชุน 14 +ช่วงชิง 14 +ซอน 14 +ซี้ 14 +ณรงค์ 14 +ดอกรัก 14 +ดัดสันดาน 14 +ดีกรี 14 +ดีฉัน 14 +ดุเหว่า 14 +ดุ่มๆ 14 +ตรุษ 14 +ตละ 14 +ตอนเช้าๆ 14 +ตะกุยตะกาย 14 +ตะขอ 14 +ตะเกียงลาน 14 +ตะเพียน 14 +ตัดกัน 14 +ตัวกลาง 14 +ตัวนำ 14 +ตัวหนังสือ 14 +ตาน 14 +ติดพัน 14 +ตีผึ้ง 14 +ตุ้ม 14 +ต้นๆ 14 +ต๊าย 14 +ต๋ง 14 +ทด 14 +ทางใน 14 +ทีม 14 +ทุ่มเท 14 +ท่าเดียว 14 +ท้องเสีย 14 +ธุดงค์ 14 +นราธิป 14 +นักสู้ 14 +นัยว่า 14 +นาคบาศ 14 +นิสิต 14 +น้ำหมาก 14 +บรมธาตุ 14 +บังตา 14 +บานไม่รู้โรย 14 +บิดเบือน 14 +บึ่ง 14 +บึ้งตึง 14 +บุกบั่น 14 +บุกรุก 14 +บ่ม 14 +บ่ายเบี่ยง 14 +บ๊อบ 14 +ปฏิทิน 14 +ประนอม 14 +ประวิง 14 +ประหารชีวิต 14 +ปริบๆ 14 +ปลิงทะเล 14 +ปักใจ 14 +ปานนี้ 14 +ปาสเตอร์ 14 +ป่อง 14 +ป่าดิบ 14 +ผ่านๆ 14 +ผ้าลาย 14 +ฝากครรภ์ 14 +ฝาย 14 +ฝ้า 14 +พระไตรปิฎก 14 +พรำ 14 +พริกไทย 14 +พร้อมพรั่ง 14 +พฤกษ์ 14 +พลศึกษา 14 +พลอง 14 +พลิกแพลง 14 +พสุธา 14 +พหูพจน์ 14 +พับผ้า 14 +พิชิต 14 +พิทยา 14 +พืด 14 +พ่อบ้าน 14 +พ่อเลี้ยง 14 +ภูธร 14 +ภูษา 14 +มะเร็ง 14 +มารศรี 14 +มิจฉาชีพ 14 +มโนภาพ 14 +ยังชีพ 14 +ยืดเยื้อ 14 +รถไฟฟ้า 14 +รอๆ 14 +ระยำ 14 +ระส่ำระสาย 14 +ระหัด 14 +รัตนะ 14 +รางๆ 14 +ราชาภิเษก 14 +ราชินี 14 +ราชูปถัมภ์ 14 +ราบคาบ 14 +ราวป่า 14 +รุน 14 +ร็อก 14 +ลวกๆ 14 +ลีบ 14 +ล้มเลิก 14 +วอ 14 +วัชพืช 14 +วางตัว 14 +วางตา 14 +ศก 14 +ศิริ 14 +สกัดกั้น 14 +สภาวะ 14 +สมรภูมิ 14 +สรรพสิ่ง 14 +สระบุรี 14 +สราญ 14 +สอ 14 +สะพานลอย 14 +สักหลาด 14 +สังหรณ์ 14 +สัปปุรุษ 14 +สัมภาระ 14 +สาธารณสุข 14 +สามานยนาม 14 +สามเกลอ 14 +สายสิญจน์ 14 +สายหยุด 14 +สำอาง 14 +สิงขร 14 +สิงหัดส่าหรี 14 +สุริยัน 14 +ส่วนเกี่ยวข้อง 14 +ส่อเสียด 14 +หง่าว 14 +หทัย 14 +หนูๆ 14 +หน้ากาก 14 +หมาด 14 +หมุด 14 +หยอง 14 +หยิบยก 14 +หลวมๆ 14 +หักล้าง 14 +หัวเลี้ยว 14 +หาเช้ากินค่ำ 14 +อนิจจัง 14 +อนุกรรมการ 14 +อภิ 14 +อหังการ 14 +อัปลักษณ์ 14 +อาราธนา 14 +อาสนะ 14 +อิด 14 +อึงมี่ 14 +อุตริ 14 +อุบ 14 +อุบอิบ 14 +อุปไมย 14 +อุ้ง 14 +อ่อนช้อย 14 +อ่า 14 +อ่านเล่น 14 +อ๊บ 14 +เกาะกิน 14 +เกียรติประวัติ 14 +เข็มกลัด 14 +เครื่องเซ่น 14 +เงี้ยว 14 +เจ้าบ่าว 14 +เฉียบขาด 14 +เชีย 14 +เชื่อใจ 14 +เทพารักษ์ 14 +เทิดทูน 14 +เบี้ยๆ 14 +เบ้อเร่อ 14 +เพชฌฆาต 14 +เพิกเฉย 14 +เพียบ 14 +เรือกสวน 14 +เลอ 14 +เลินเล่อ 14 +เลื้อยคลาน 14 +เล็ดลอด 14 +เหลิง 14 +เหลืออด 14 +แคน 14 +แปรรูป 14 +แปะ 14 +แร้ง 14 +แส้ม้า 14 +แห้งผาก 14 +โกลน 14 +โง 14 +โปรดสัตว์ 14 +โปรยปราย 14 +โพธิ 14 +โย้เย้ 14 +โลน 14 +โศกี 14 +โสฬส 14 +โหรา 14 +โอบอุ้ม 14 +ใฝ่สูง 14 +ใหม่เอี่ยม 14 +ไซ้ 14 +ได้ช่อง 14 +ไพบูลย์ 14 +ไม่ฟังเสียง 14 +ไล่ออก 14 +ไสยศาสตร์ 14 +ไหวติง 14 +กนก 13 +กระจุก 13 +กระดึง 13 +กระดุม 13 +กระพริบ 13 +กระหึ่ม 13 +กระแสเสียง 13 +กร้าน 13 +กลางบ้าน 13 +กลางเมือง 13 +กะปูด 13 +กะรุ่งกะริ่ง 13 +กาน้ำ 13 +กำสรด 13 +กำสรวล 13 +กำหมัด 13 +กินตัว 13 +กิ๊ก 13 +กุลีกุจอ 13 +ขยับขยาย 13 +ขวับ 13 +ขับถ่าย 13 +ข่วน 13 +ข่าวลือ 13 +คติพจน์ 13 +คบคิด 13 +คร่า 13 +คลุ้ง 13 +คล้อยหลัง 13 +คำทาย 13 +ค้าว 13 +งอมแงม 13 +จรัส 13 +จวัก 13 +จะแจ้ง 13 +จัดสร้าง 13 +จาด 13 +จิ้งจอก 13 +จิ๊กๆ 13 +จุณ 13 +จุดเริ่มต้น 13 +จุฬามณี 13 +ฉาดฉาน 13 +ฉุกคิด 13 +ชนวน 13 +ชอน 13 +ชั่วคน 13 +ชานชาลา 13 +ชโย 13 +ช่ำชอง 13 +ซาว 13 +ซูบผอม 13 +ดลบันดาล 13 +ดอกไม้ไฟ 13 +ดะ 13 +ดัดตน 13 +ดำนา 13 +ดิบดี 13 +ดื่มกิน 13 +ดูดน้ำ 13 +ดูแคลน 13 +ตกตะกอน 13 +ตนุ 13 +ตัดใจ 13 +ตาเหลือก 13 +ติ่ง 13 +ตี๋ 13 +ตื้นๆ 13 +ตุ่น 13 +ต่อตี 13 +ต่อม 13 +ต้นหน 13 +ถก 13 +ถั่วแระ 13 +ถือกำเนิด 13 +ถูกกัน 13 +ถ่ม 13 +ทรงกลม 13 +ทะมัดทะแมง 13 +ทะเลาะเบาะแว้ง 13 +ทานบารมี 13 +ทำเล 13 +ทิด 13 +ทีวี 13 +ทุม 13 +ทุลักทุเล 13 +ท่อน้ำ 13 +ธารา 13 +นบนอบ 13 +นฤคหิต 13 +นักกฎหมาย 13 +นั่งยองๆ 13 +นาฏ 13 +นาฏศิลป์ 13 +นายตำรวจ 13 +นายหน้า 13 +นิทรา 13 +น้ำมันยาง 13 +บทกวีนิพนธ์ 13 +บริพาร 13 +บอกบุญ 13 +บัก 13 +บัดสี 13 +บัตรสนเท่ห์ 13 +บิตุเรศ 13 +ปฏิปักษ์ 13 +ประจิม 13 +ประตูน้ำ 13 +ประทับแรม 13 +ประหวัด 13 +ปรักหักพัง 13 +ปรารมภ์ 13 +ปริปาก 13 +ปริ่ม 13 +ปรีดิ์ 13 +ปลงศพ 13 +ปลาโลมา 13 +ปวดร้าว 13 +ปะขาว 13 +ปากเปล่า 13 +ปารีส 13 +ปุ๋ยเคมี 13 +ป้อมปราการ 13 +ป้ายชื่อ 13 +ป๊ะ 13 +ผลบุญ 13 +ผลุนผลัน 13 +ผัง 13 +ผิดใจ 13 +ผู้เกี่ยวข้อง 13 +ผ้าถุง 13 +ฝึกงาน 13 +ฝูงๆ 13 +ฝ่าฟัน 13 +พระรูป 13 +พระเกียรติยศ 13 +พราหมณี 13 +พริ้ง 13 +พร้าว 13 +พลัดถิ่น 13 +พวงมาลา 13 +พวยพุ่ง 13 +พอประมาณ 13 +พะยอม 13 +พะรุงพะรัง 13 +พั่บ 13 +พาดพิง 13 +พาลา 13 +พิราบ 13 +พุทธชาด 13 +พุพอง 13 +พู่ 13 +พ่ะย่ะค่ะ 13 +ฟาร์ม 13 +ภักษาหาร 13 +ภาษาศาสตร์ 13 +ภาส 13 +ภูมิประเทศ 13 +ภูวไนย 13 +มรณภาพ 13 +มหานคร 13 +มะกอก 13 +มืดๆ 13 +มูลนิธิ 13 +ม้ารำ 13 +ยั่วเย้า 13 +ยิ่งๆ 13 +ยิ้มแป้น 13 +ยุด 13 +รวด 13 +รหัส 13 +รอดตัว 13 +ระบายสี 13 +ระยอง 13 +รัน 13 +ราญ 13 +รายทาง 13 +รุ่งริ่ง 13 +รูปพรรณ 13 +ร้ายๆ 13 +ฤดี 13 +ลงนาม 13 +ลงแรง 13 +ลดหย่อน 13 +ลวดหนาม 13 +ลาสิกขา 13 +ลูกผู้หญิง 13 +ลูกมือ 13 +ล่วงล้ำ 13 +ล้วงมือ 13 +ล้ำเลิศ 13 +วังหน้า 13 +วางยา 13 +วาม 13 +วิงเวียน 13 +วิทย์ 13 +ศฤงคาร 13 +ศักราช 13 +ศัสตรา 13 +สมภพ 13 +สรรค์ 13 +สลัวๆ 13 +สวาย 13 +สหประชาชาติ 13 +สะพรึงกลัว 13 +สักแต่ว่า 13 +สังกร 13 +สังเวย 13 +สัญชาติ 13 +สัพยอก 13 +สายลับ 13 +สายใย 13 +สารส้ม 13 +สารานุกรม 13 +สารีริกธาตุ 13 +สิทธ์ 13 +ส่วนผสม 13 +หนะ 13 +หน่าย 13 +หมกมุ่น 13 +หวาดระแวง 13 +หวานๆ 13 +หัต 13 +หัวนม 13 +หัวไหล่ 13 +หุบปาก 13 +หูฟัง 13 +ห้างสรรพสินค้า 13 +องค์ประชุม 13 +อบอวล 13 +อมฤต 13 +อสุรา 13 +อัก 13 +อาคม 13 +อารักษ์ 13 +อาหารว่าง 13 +อินโดนีเซีย 13 +อิศร 13 +อืด 13 +อุบลราชธานี 13 +อุ้มชู 13 +อ้อมแอ้ม 13 +อ้อยอิ่ง 13 +เก็บข้าว 13 +เข่ง 13 +เข้มงวด 13 +เข้าหุ้น 13 +เครื่องบรรณาการ 13 +เครื่องป้องกัน 13 +เคว้งคว้าง 13 +เงินฝาก 13 +เงื้อม 13 +เจี๊ยวจ๊าว 13 +เจ็บๆ 13 +เจ้าเนื้อ 13 +เฉลย 13 +เชื่องๆ 13 +เช็ดหน้า 13 +เช้าๆ 13 +เซิง 13 +เดชานุภาพ 13 +เดินขบวน 13 +เดือดดาล 13 +เต็ง 13 +เต็มอกเต็มใจ 13 +เทพดา 13 +เที่ยงธรรม 13 +เที่ยวบิน 13 +เทือก 13 +เท้าแขน 13 +เนรเทศ 13 +เบ้าตา 13 +เปะปะ 13 +เผยแผ่ 13 +เยิ่นเย้อ 13 +เยื่อ 13 +เย็นใจ 13 +เรี่ยราย 13 +เรือยาว 13 +เรื่อยเปื่อย 13 +เลขา 13 +เลขาธิการ 13 +เวิ้งว้าง 13 +เวียนหัว 13 +เศร้าๆ 13 +เสมา 13 +เสียชื่อ 13 +เส้นผม 13 +เหม 13 +เหม่ 13 +เหลือก 13 +เหลือล้น 13 +เอม 13 +เอาอย่าง 13 +เอาๆ 13 +เอี่ยม 13 +แกล 13 +แก้วผลึก 13 +แคว 13 +แจง 13 +แช 13 +แบนๆ 13 +แผงลอย 13 +แม่นม 13 +แม่ฮ่องสอน 13 +แสงสี 13 +แหลก 13 +แฮ่ 13 +โขยกเขยก 13 +โง้ง 13 +โพง 13 +โพย 13 +โหมโรง 13 +โองการ 13 +โอรสาธิราช 13 +ใจแคบ 13 +ใต้ฝ่าพระบาท 13 +ใบเสมา 13 +ไขว้ 13 +ไม้ขีดไฟ 13 +ไม้สั้น 13 +ไวรัส 13 +กระจ้อยร่อย 12 +กระทุ่ม 12 +กระท่อนกระแท่น 12 +กระบี่กระบอง 12 +กระเชียง 12 +กระเซ้า 12 +กระเป๋าถือ 12 +กระแสพระราชดำรัส 12 +กระโน้น 12 +กราน 12 +กราฟ 12 +กรีนแลนด์ 12 +กรุ 12 +กร่ำ 12 +กองทุน 12 +กับดัก 12 +กัมปนาท 12 +กาๆ 12 +กำแหง 12 +กินนอน 12 +กีดกัน 12 +กุ้งแห้ง 12 +กู้ยืม 12 +ก้อนๆ 12 +ขณะหนึ่ง 12 +ขนาบ 12 +ขอคืน 12 +ขอบข่าย 12 +ขัณฑสีมา 12 +ขันหมาก 12 +ขาดตกบกพร่อง 12 +ขี้ข้า 12 +ขี้ปาก 12 +ขุ่นๆ 12 +ข้าวเจ้า 12 +ข้าวเปียก 12 +คงทน 12 +คละ 12 +คลางแคลง 12 +คลุกเคล้า 12 +คอลเลจ 12 +คะนู 12 +คัก 12 +คำรน 12 +คำเติม 12 +คำเป็น 12 +คู่แข่ง 12 +งวงช้าง 12 +งึมงำ 12 +จริยาวัตร 12 +จวนตัว 12 +จอมพล 12 +จัดจ้า 12 +จัดเจน 12 +จัดเรียง 12 +จารีต 12 +จำนำ 12 +จิตวิทยา 12 +จุ๊ 12 +จู 12 +จู่ๆ 12 +จู้ 12 +จ้อก 12 +ฉวี 12 +ฉาง 12 +ฉิ่ง 12 +ชมพูทวีป 12 +ชลนา 12 +ชลประทาน 12 +ชันษา 12 +ชิบ 12 +ชุมพา 12 +ช่อฟ้า 12 +ช้ำใจ 12 +ซึมซับ 12 +ดวงแก้ว 12 +ดอลล่าร์ 12 +ดาล 12 +ดิบๆ 12 +ดึงดัน 12 +ดุๆ 12 +ดูดดื่ม 12 +ตกลูก 12 +ตะราง 12 +ตะโหงก 12 +ตะไล 12 +ตัดขาด 12 +ติ๋งๆ 12 +ต้นร่าง 12 +ถลำ 12 +ถือศีล 12 +ถ้าว่า 12 +ทรพล 12 +ทะลวง 12 +ทัง 12 +ทันตา 12 +ทัพพี 12 +ทางมะพร้าว 12 +ที่ไหนๆ 12 +ทุกทีๆ 12 +ธงชัย 12 +ธม 12 +ธาดา 12 +นขลิขิต 12 +นมนาน 12 +นักหนังสือพิมพ์ 12 +นั่งคุกเข่า 12 +นำเที่ยว 12 +น่อง 12 +น้ำพระทัย 12 +บังคับสัมผัส 12 +บัด 12 +บิตุรงค์ 12 +บีบคั้น 12 +บุ้ง 12 +บ่นๆ 12 +ปฏิปทา 12 +ประณม 12 +ประวิสรรชนีย์ 12 +ประสิทธิผล 12 +ประหวั่น 12 +ประเคน 12 +ปรัศนี 12 +ปราดเปรียว 12 +ปรามาส 12 +ปราโมช 12 +ปริญญาตรี 12 +ปริญญาบัตร 12 +ปรุงแต่ง 12 +ปลอบขวัญ 12 +ปลิ้น 12 +ปะหนัน 12 +ปักเป้า 12 +ปัจเจกบุคคล 12 +ปัญจาละ 12 +ปาล์ม 12 +ปิติ 12 +ปุ๊ก 12 +ป่นปี้ 12 +ป่าโปร่ง 12 +ผงซักฟอก 12 +ผลตอบแทน 12 +ผลุบ 12 +ผู้บังคับบัญชา 12 +ผู้บัญชาการ 12 +ผู้ว่า 12 +ผ้าเช็ดตัว 12 +ฝากฝัง 12 +พงศา 12 +พรวดๆ 12 +พระราชหัตถเลขา 12 +พรุน 12 +พร่าง 12 +พลความ 12 +พล่อย 12 +พอที 12 +พอไปได้ 12 +พันทาง 12 +พันธนาการ 12 +พิจิตร 12 +พิมเสน 12 +พืชผล 12 +พื้นผิว 12 +พุ้ย 12 +ฟันเลื่อย 12 +ฟุ้งเฟ้อ 12 +ฟ้าดิน 12 +ภาษ 12 +มดดำ 12 +มรรคา 12 +มะขามป้อม 12 +มันเทศ 12 +มัวเมา 12 +มั่นเหมาะ 12 +มั่ว 12 +มุ้งลวด 12 +มโนราห์ 12 +ม่อน 12 +ยุวชน 12 +ยโส 12 +รกๆ 12 +รถรา 12 +รวบรัด 12 +รักแร้ 12 +รังสรรค์ 12 +รัฐธรรมนูญ 12 +ริ้วรอย 12 +รี้ 12 +รูด 12 +รู้คิด 12 +ร่น 12 +ร่มผ้า 12 +ลงข่าว 12 +ลงทะเบียน 12 +ลอดช่อง 12 +ลอยหน้า 12 +ละเหี่ย 12 +ละโมบ 12 +ลูกน้ำ 12 +ลูกบ้าน 12 +ลูกอม 12 +ล่วงละเมิด 12 +วงเวียน 12 +วดี 12 +วัดวา 12 +วันแล้ววันเล่า 12 +วิกาล 12 +วิหารทิศ 12 +วี่วัน 12 +ศิลปศาสตร์ 12 +สกล 12 +สมน้ำหน้า 12 +สรณคมน์ 12 +สรรพางค์ 12 +สวัสดิการ 12 +สอดไส้ 12 +สะบั้น 12 +สะแก 12 +สังคมวิทยา 12 +สังวร 12 +สังวาล 12 +สิบๆ 12 +สิ้นชีพ 12 +สีมา 12 +สีห์ 12 +สื่อสารมวลชน 12 +สุรเสียง 12 +สเด็จ 12 +ส่งท้าย 12 +หนังใหญ่ 12 +หนีเสือ 12 +หน้าดิน 12 +หน้าปัด 12 +หยกๆ 12 +หยอกเย้า 12 +หย่อม 12 +หวาดไหว 12 +หัวขวาน 12 +หัวนอน 12 +หัวเราะๆ 12 +หัวเรือใหญ่ 12 +หัวเสีย 12 +อยู่จริงๆ 12 +อลวน 12 +อวดรู้ 12 +อัฐ 12 +อันธพาล 12 +อาถรรพ์ 12 +อาบัติ 12 +อารยประเทศ 12 +อำนวยการ 12 +อี๊ 12 +อุบะ 12 +เกรียว 12 +เกียรติศักดิ์ 12 +เกี่ยงงอน 12 +เกื้อ 12 +เก็บความ 12 +เข้าคู่ 12 +เข้าตัว 12 +เครื่องเงิน 12 +เค้าท์ 12 +เงื้อมมือ 12 +เจ้าชู้ 12 +เจ้าอารมณ์ 12 +เฉลียว 12 +เฉือน 12 +เชอ 12 +เชิงซ้อน 12 +เซลล์ 12 +เซ็ก 12 +เดิมพัน 12 +เทป 12 +เทวสถาน 12 +เทียนไข 12 +เท่าไรๆ 12 +เนา 12 +เบญจคีรีนคร 12 +เป็นกลางๆ 12 +เป๋ง 12 +เพรง 12 +เพี้ยง 12 +เภทภัย 12 +เมล 12 +เยา 12 +เลาๆ 12 +เวนิส 12 +เวสาลี 12 +เวหา 12 +เสนาบดีๆ 12 +เสพย์ติด 12 +เสียขวัญ 12 +เสี้ยม 12 +เสือสมิง 12 +เหง่ง 12 +เหมาะเจาะ 12 +เหยาะๆ 12 +เหลือเชื่อ 12 +เอกา 12 +เฮย 12 +เฮา 12 +เฮโรอีน 12 +แกว่งไกว 12 +แคล้ว 12 +แบงก์ 12 +แบมือ 12 +แบ่งเบา 12 +แพรก 12 +แพลงตอน 12 +แฟ้ม 12 +แม่เบี้ย 12 +แรกนาขวัญ 12 +แลน 12 +แวววาว 12 +แหนง 12 +แหะๆ 12 +แอบแฝง 12 +โกรธา 12 +โกลด์ 12 +โจมทัพ 12 +โฉมฉาย 12 +โชน 12 +โบราณวัตถุ 12 +โว 12 +โหด 12 +โอ่ 12 +โฮม 12 +ใจแข็ง 12 +ใช้เรือ 12 +ใช้ใบ 12 +ไขว่คว้า 12 +ไข้หวัด 12 +ได้แต่ 12 +ไต 12 +ไพล่หลัง 12 +ไม่เชิง 12 +ไม้กางเขน 12 +ไม้ทัณฑฆาต 12 +ไม้เป็น 12 +กมล 11 +กระดูกสันหลัง 11 +กระทุ้ง 11 +กระเช้าสีดา 11 +กระเดียด 11 +กระเดื่อง 11 +กระเบียด 11 +กระเสือกกระสน 11 +กรัง 11 +กรีก 11 +กล้วยไม้ 11 +กะเกณฑ์ 11 +กะเทาะ 11 +กายกรรม 11 +กำมะถัน 11 +กิตติมศักดิ์ 11 +กุฏฐัง 11 +ขวัญหาย 11 +ของดีๆ 11 +ของร้อน 11 +ขอรับผม 11 +ข่อ 11 +คนจริง 11 +คบไฟ 11 +ครัวไฟ 11 +ครูด 11 +คลอก 11 +คลุกคลี 11 +คอกลม 11 +คอด 11 +คอยเหตุ 11 +คะมำ 11 +คะแนนเสียง 11 +ค่าครองชีพ 11 +ค้างปี 11 +จับจอง 11 +จิตรกรรม 11 +จุใจ 11 +จู่โจม 11 +จ้ำจี้ 11 +ฉีดยา 11 +ชดใช้ 11 +ชลมารค 11 +ชัยภูมิ 11 +ชำนะ 11 +ชิวหา 11 +ชิโนรส 11 +ชีปะขาว 11 +ช่วงๆ 11 +ช่องเขา 11 +ช่างทอง 11 +ช่างภาพ 11 +ช้างร้อง 11 +ซึมซาบ 11 +ซ่อนหา 11 +ซ่าๆ 11 +ฐานานุกรม 11 +ดาวเคราะห์ 11 +ดินฟ้าอากาศ 11 +ดิลก 11 +ดีร้าย 11 +ตกยาก 11 +ตถาคต 11 +ตะบึง 11 +ตะเภา 11 +ตัดผม 11 +ตามบุญตามกรรม 11 +ตามอำเภอใจ 11 +ตาลาย 11 +ต้นยาง 11 +ถั่วเขียว 11 +ถ่ายภาพ 11 +ทัศนะ 11 +ทั้งเพ 11 +ที่ประชุม 11 +ทุรนทุราย 11 +ทูตานุทูต 11 +ท้วม 11 +ท้องขึ้น 11 +ท้ายน้ำ 11 +นนทบุรี 11 +นักเล่น 11 +นักแสดง 11 +นัยนา 11 +นั่งพับเพียบ 11 +นางพญา 11 +นายกเทศมนตรี 11 +นาวา 11 +นิรันดร 11 +นึกๆ 11 +น้าว 11 +บง 11 +บดบัง 11 +บทจร 11 +บลู 11 +บอระเพ็ด 11 +บอล 11 +บังควร 11 +บั่น 11 +บาร์ 11 +บิดพลิ้ว 11 +บุคคลธรรมดา 11 +ประสิทธิ 11 +ประเทือง 11 +ปรัมปรา 11 +ปราณี 11 +ปูชนียสถาน 11 +ป้อ 11 +ผดุง 11 +ผนึก 11 +ผัดวันประกันพรุ่ง 11 +ผูกขาด 11 +ผู้รับ 11 +ผู้ร่วมงาน 11 +ผ้าผ่อน 11 +พรรค์ 11 +พรวดพราด 11 +พระราชกุศล 11 +พร่อง 11 +พักตรา 11 +พัสดุ 11 +พื้นๆ 11 +ฟรี 11 +ฟิต 11 +ฟ่อๆ 11 +ภูผา 11 +ภูมิฐาน 11 +ภูมิรู้ 11 +มนุษยโลก 11 +มนเทียร 11 +มรณะ 11 +มหากษัตริย์ 11 +มหิงสา 11 +มะปราง 11 +มิน่าเล่า 11 +ยางลบ 11 +ยาจก 11 +ย่างเท้า 11 +ระบม 11 +ระเกะระกะ 11 +รัฐศาสตร์ 11 +รัฐสภา 11 +รั้น 11 +ราชกุมารี 11 +ราชทินนาม 11 +รำไร 11 +รูปถ่าย 11 +รูปพยัญชนะ 11 +รู่ 11 +ร่ำไห้ 11 +ลบหลู่ 11 +ลอยคอ 11 +ลอยบาป 11 +ลั่นวาจา 11 +ลำพู 11 +ลำพูน 11 +ลิปสติก 11 +ลูกแฝด 11 +ล่อนจ้อน 11 +วงจร 11 +วอก 11 +วอดวาย 11 +วัฒนะ 11 +วางอำนาจ 11 +วาท 11 +วาทศิลป์ 11 +วิสัชนา 11 +วิสามานยนาม 11 +สถานะ 11 +สปริง 11 +สภากาชาดไทย 11 +สภาผู้แทนราษฎร 11 +สมัญญา 11 +สมุทรสงคราม 11 +สมุหเทศาภิบาล 11 +สยอง 11 +สะดือ 11 +สังคมศาสตร์ 11 +สันหลัง 11 +สาธิต 11 +สาธุชน 11 +สำลัก 11 +สำเนา 11 +สินธุ์ 11 +สิบล้อ 11 +สิ้นฤทธิ์ 11 +สุราษฎร์ธานี 11 +สุเมรุ 11 +สุ้มเสียง 11 +สูงศักดิ์ 11 +ส่วนประกอบ 11 +หกคะเมน 11 +หนักหน่วง 11 +หน้าบาน 11 +หมอความ 11 +หมี่ 11 +หม่นๆ 11 +หรา 11 +หล่อหลอม 11 +หวุดหวิด 11 +หอบหิ้ว 11 +หัวดื้อ 11 +หัวโขน 11 +หัวไม้ 11 +หุ้มแพร 11 +ห่อตัว 11 +อนงค์ 11 +อภิธรรม 11 +อภิวันท์ 11 +อมร 11 +อยู่ยาม 11 +อสรพิษ 11 +ออสเตรเลีย 11 +อักขระ 11 +อัมพร 11 +อัศเจรีย์ 11 +อากร 11 +อาคันตุกะ 11 +อาณานิคม 11 +อาด 11 +อารยธรรม 11 +อิดเอื้อน 11 +อิ่มอกอิ่มใจ 11 +อุปทูต 11 +อุปลักษณ์ 11 +อุโฆษ 11 +อ่างน้ำ 11 +เกน 11 +เกลี้ยงๆ 11 +เกศี 11 +เกษตรศาสตร์ 11 +เกี่ยวดอง 11 +เข้มข้น 11 +เคลือบแคลง 11 +เคลื่อนตัว 11 +เค็มๆ 11 +เง่า 11 +เจื่อนๆ 11 +เชื่องช้า 11 +เชื้อไฟ 11 +เซ้ง 11 +เดียงสา 11 +เทียบเท่า 11 +เนิ่น 11 +เนียม 11 +เบี้ยหวัด 11 +เปรียบเปรย 11 +เปลือกตา 11 +เป็นงานเป็นการ 11 +เป็นเงินเป็นทอง 11 +เป็นไฟ 11 +เผาะ 11 +เพลินๆ 11 +เฟื้อง 11 +เฟ้น 11 +เยินยอ 11 +เล่นๆ 11 +เสถียร 11 +เสวยพระชาติ 11 +เสือปลา 11 +เสื้อคลุม 11 +เสื้อฝน 11 +เหมันต์ 11 +เหลือวิสัย 11 +แช่มช้อย 11 +แต้ 11 +แท็กซี่ 11 +แผ่นดินไหว 11 +แยบยล 11 +โกรก 11 +โขยง 11 +โจม 11 +โจษ 11 +โฉด 11 +โปรแกรม 11 +โป๊ะ 11 +โมหะ 11 +โยกเยก 11 +โล่งๆ 11 +โหยง 11 +โอ้ว่า 11 +โอ้เอ้ 11 +โฮกๆ 11 +ใจสูง 11 +ใจเย็นๆ 11 +ใสๆ 11 +ไจ 11 +ไตรมาส 11 +ไหวๆ 11 +กฎจราจร 10 +กรอด 10 +กระจุกกระจิก 10 +กระดอน 10 +กระสัน 10 +กร้าว 10 +กลมกล่อม 10 +กลัวน้ำ 10 +กองกลาง 10 +กอดอก 10 +กะเลียว 10 +กันตัว 10 +กานต์ 10 +กาวน์ 10 +กินแรง 10 +กุกกัก 10 +กุนเชียง 10 +กุมภัณฑ์ 10 +ก้าง 10 +ก้ำกึ่ง 10 +ก๊าด 10 +ก๊าบๆ 10 +ขนง 10 +ขนิษฐา 10 +ขบถ 10 +ขมุกขมัว 10 +ขวับๆ 10 +ขัย 10 +ข้อเตือนใจ 10 +ข้างมาก 10 +ข้าวใหม่ 10 +ครั่น 10 +คริสต์มาส 10 +ครุย 10 +คร่ำคร่า 10 +คลอน 10 +คลาคล่ำ 10 +คลื่นเสียง 10 +ควง 10 +คัล 10 +คำขาด 10 +คิดคด 10 +คุณๆ 10 +คูน 10 +คู่หู 10 +ค่าว 10 +งามงอน 10 +ง้าว 10 +จับผิด 10 +จับเจ่า 10 +จำนรรจา 10 +จุนเจือ 10 +จู๋ 10 +ฉลองพระบาท 10 +ฉลุ 10 +ชะง่อน 10 +ชะอม 10 +ชาตา 10 +ชายตา 10 +ชำร่วย 10 +ช่างกระไร 10 +ซิว 10 +ซ้อง 10 +ซ้ำเติม 10 +ดอม 10 +ตกมัน 10 +ตบะ 10 +ตรำ 10 +ตรีทูต 10 +ตอนเย็นๆ 10 +ตะกอน 10 +ตะปบ 10 +ตะเข้ 10 +ตะโพก 10 +ตัวบท 10 +ตัวๆ 10 +ตาปี 10 +ติ้ว 10 +ตีสนิท 10 +ตีโพยตีพาย 10 +ตื่นๆ 10 +ตื้อ 10 +ตุบ 10 +ตุ้บ 10 +ต้นกำเนิด 10 +ต้นคอ 10 +ถอนพิษ 10 +ถัดๆ 10 +ถั่วพู 10 +ทบวง 10 +ทอดตัว 10 +ทอดๆ 10 +ทัศนาจร 10 +ทั้งที 10 +ทางหลวง 10 +ทาม 10 +ทายาท 10 +ทำเงิน 10 +ที่มั่น 10 +ทึม 10 +ทุ้ม 10 +ท้องกาง 10 +นครบาล 10 +นงลักษณ์ 10 +นฤมล 10 +นักขัตฤกษ์ 10 +นางรำ 10 +นิ่มนวล 10 +นุ่มนิ่ม 10 +นูน 10 +น้ำตาลทราย 10 +น้ำป่า 10 +น้ำมันดิน 10 +บทศรี 10 +บริสุทธิ์ใจ 10 +บังคับเอก 10 +บัญชาการ 10 +บัดซบ 10 +บานบุรี 10 +บุบ 10 +บุษบก 10 +ประจวบคีรีขันธ์ 10 +ประทม 10 +ประธานาธิบดี 10 +ประนีประนอม 10 +ประภาคาร 10 +ประสพ 10 +ประสานงาน 10 +ปราการ 10 +ปริญญาโท 10 +ปริยัติธรรม 10 +ปร๋อ 10 +ปลาเค็ม 10 +ปัจจามิตร 10 +ปัจจุบันทันด่วน 10 +ปัตตานี 10 +ปากขอ 10 +ปากคำ 10 +ปิ้ม 10 +ปูด 10 +ผยอง 10 +ผวน 10 +ผีดิบ 10 +ผึง 10 +ผู้ผลิต 10 +ฝึกอบรม 10 +พนัก 10 +พรหมจรรย์ 10 +พฤษภ 10 +พลอด 10 +พล่าม 10 +พอดู 10 +พาลี 10 +พิพิธภัณฑสถาน 10 +พิไร 10 +ฟันดาบ 10 +ฟูมฟัก 10 +ภัตตาคาร 10 +ภูมี 10 +มกุฎราชกุมาร 10 +มล 10 +มหาตมะ 10 +มหาบพิตร 10 +มอบอำนาจ 10 +มังคลาราม 10 +มันสำปะหลัง 10 +มาส 10 +มึน 10 +มโหรี 10 +ม่อย 10 +ยมก 10 +ยอกย้อน 10 +ยอมจำนน 10 +ยินร้าย 10 +ยีราฟ 10 +ยี่ห้อ 10 +ยื้อยุด 10 +ยุคลบาท 10 +ย่นย่อ 10 +รจนา 10 +รวงผึ้ง 10 +ระทด 10 +ระบือ 10 +ระรัว 10 +ระริก 10 +ระหง 10 +รัสเซีย 10 +รีๆ 10 +รุดหน้า 10 +ร่วงโรย 10 +ลอบกัด 10 +ละติน 10 +ละเลิง 10 +ลายเซ็น 10 +ลิบลิ่ว 10 +ลิสง 10 +ลูกล้อ 10 +ลูกหาบ 10 +ล้านนา 10 +วงศา 10 +วังหลวง 10 +วัดวาอาราม 10 +วัติ 10 +วัลย์ 10 +วายชนม์ 10 +วายปราณ 10 +วิญญูชน 10 +วิทยาการ 10 +วิบัติ 10 +วิวิธ 10 +วิสูตร 10 +วิ้วๆ 10 +ว่าขาน 10 +ว้าง 10 +ศุภนิมิต 10 +สก 10 +สกุณา 10 +สยดสยอง 10 +สรรหา 10 +สลาก 10 +สวิสเซอร์แลนด์ 10 +สะเดาะ 10 +สะเทิ้น 10 +สะเพร่า 10 +สังขยา 10 +สันโดษ 10 +สั่งงาน 10 +สั่งเสีย 10 +สินะ 10 +สุคนธ์ 10 +สุรินทร์ 10 +หงายท้อง 10 +หงึกๆ 10 +หนังสือสัญญา 10 +หน้าตัก 10 +หน้ามุข 10 +หมู่ๆ 10 +หม่อน 10 +หยัง 10 +หยั่งรู้ 10 +หยาม 10 +หลอน 10 +หลายหลาก 10 +หวงห้าม 10 +หักคอ 10 +หาบเร่ 10 +ห่าม 10 +อธรรม 10 +อธิ 10 +อย่างน้อยๆ 10 +ออกตัว 10 +ออกนอกหน้า 10 +ออกรส 10 +ออกอากาศ 10 +อัคคีภัย 10 +อัคนี 10 +อัจฉริยภาพ 10 +อันเป็นไป 10 +อัมพวา 10 +อัมพาต 10 +อาจอง 10 +อาชา 10 +อาละวาด 10 +อาว 10 +อาสาฬหบูชา 10 +อาหรับ 10 +อาเพศ 10 +อิทธิฤทธิ์ 10 +อินทนิล 10 +อิสลาม 10 +อุทกภัย 10 +อุทธรณ์ 10 +อุย 10 +อุระ 10 +อ้วนๆ 10 +อ้าก 10 +ฮับ 10 +ฮึกฮัก 10 +ฮึดฮัด 10 +ฮุย 10 +ฮ้า 10 +เกาะๆ 10 +เก็บงำ 10 +เก้กัง 10 +เขี้ยวเล็บ 10 +เข้าท่า 10 +เครือๆ 10 +เคร่ง 10 +เงินผ่อน 10 +เจือปน 10 +เจ็บแค้น 10 +เจ้าชีวิต 10 +เชยชม 10 +เซื่อง 10 +เตาเผา 10 +เต็มตา 10 +เต็มตื้น 10 +เต็มเหนี่ยว 10 +เทวัน 10 +เที่ยงแท้ 10 +เนืองแน่น 10 +เนือยๆ 10 +เน็ต 10 +เบี่ยงบ่าย 10 +เปา 10 +เพลงยาว 10 +เพ็ดทูล 10 +เพ่นพ่าน 10 +เมามาย 10 +เมืองท่า 10 +เม่นทะเล 10 +เม่า 10 +เรอ 10 +เริ่มแรก 10 +เรียม 10 +เร้น 10 +เร้นลับ 10 +เลียง 10 +เลี้ยวลด 10 +เล่าขาน 10 +เวิ้ง 10 +เสงี่ยม 10 +เสมอใจ 10 +เสิร์ฟ 10 +เสียงอ่อน 10 +เหนี่ยวรั้ง 10 +เหลือใจ 10 +เหลื่อม 10 +เหล็กใน 10 +เหี้ยมเกรียม 10 +เอาถ่าน 10 +เอือม 10 +เอ็ดอึง 10 +เฮือก 10 +แกงส้ม 10 +แก่กล้า 10 +แข็งตัว 10 +แคลเซียม 10 +แคล่วคล่อง 10 +แฉล้ม 10 +แซะ 10 +แต้จิ๋ว 10 +แบบสอบถาม 10 +แพรวพราว 10 +แมวป่า 10 +แม่เหล็ก 10 +แสยะ 10 +แหล่ 10 +แอก 10 +แฮม 10 +โฉมงาม 10 +โตนด 10 +โต้ง 10 +โทรคมนาคม 10 +โทรศัพท์มือถือ 10 +โพยม 10 +โพสพ 10 +โม้ 10 +โรคจิต 10 +โอนอ่อน 10 +โอลิมปิก 10 +โฮ่ง 10 +ใจกลาง 10 +ใจกว้าง 10 +ใจชื้น 10 +ใช้บน 10 +ใบพัด 10 +ไขว่ห้าง 10 +ไข้ทรพิษ 10 +ไดอะตอม 10 +ไถ่ 10 +ไพ่ป๊อก 10 +ไอเสีย 10 +กถา 9 +กระฉ่อน 9 +กระทบกระเทียบ 9 +กระหวัด 9 +กระเจิง 9 +กระเฉด 9 +กรูด 9 +กลัดหนอง 9 +กลับคำ 9 +กลางคัน 9 +กลางช้าง 9 +กลไฟ 9 +กล่อมเกลี้ยง 9 +กล้วยแขก 9 +กล้าม 9 +กล้ำกลืน 9 +กวาดตา 9 +กวาดต้อน 9 +กว่าง 9 +กษัตรา 9 +กะละแม 9 +กักเก็บ 9 +กาญ 9 +การุญ 9 +การ์ด 9 +กำยาน 9 +กุลธิดา 9 +ขนบธรรมเนียมประเพณี 9 +ขนมครก 9 +ขลาดกลัว 9 +ขวัญข้าว 9 +ของว่าง 9 +ขั้นๆ 9 +ขาดมือ 9 +ขาตั้ง 9 +ขาออก 9 +ขี้ริ้ว 9 +ขูดรีด 9 +ข้อยกเว้น 9 +ข้อหา 9 +ข้าวเม่า 9 +คชสาร 9 +คนจนๆ 9 +คำสัญญา 9 +คิดๆ 9 +คุณลุงคุณป้า 9 +คุ้มกัน 9 +งาย 9 +งุ่มง่าม 9 +ง้าง 9 +จรัล 9 +จอภาพ 9 +จอแจ 9 +จังๆ 9 +จัดจ้าน 9 +จับยาม 9 +จางวาง 9 +จาร 9 +จาริก 9 +จีบพลู 9 +จุล 9 +จุ๊บ 9 +ฉอด 9 +ฉะเชิงเทรา 9 +ฉับ 9 +ฉาว 9 +ฉูดฉาด 9 +ฉ่อย 9 +ฉ้อโกง 9 +ชมชื่น 9 +ชัชวาล 9 +ชายคา 9 +ชุมพร 9 +ชโลม 9 +ช้อย 9 +ซัดเซ 9 +ฌาน 9 +ดนุ 9 +ดมๆ 9 +ดาด 9 +ดาน 9 +ดาวฤกษ์ 9 +ดาษดา 9 +ดินดำ 9 +ดีปลี 9 +ดีไม่ดี 9 +ตรมตรอม 9 +ตักกสิลา 9 +ตั้งเค้า 9 +ตามที 9 +ตายห่า 9 +ตารางสอน 9 +ตื่นตา 9 +ตุ๊ดตู่ 9 +ตูมๆ 9 +ต่อล้อต่อเถียง 9 +ต้นเสียง 9 +ถอดรูป 9 +ถ่ายปัสสาวะ 9 +ทองม้วน 9 +ทองใบ 9 +ทอฟฟี่ 9 +ทารุณกรรม 9 +ทำเหตุ 9 +ทิน 9 +ทิศา 9 +ที่หมาย 9 +ทึ้ง 9 +ท้องร่วง 9 +ท้องอืด 9 +นริศ 9 +นอนใจ 9 +นางนวล 9 +นาด 9 +นานาชาติ 9 +นาบ 9 +นายเวร 9 +บะหมี่ 9 +บังอร 9 +บันลือ 9 +บัวลอย 9 +บิดขี้เกียจ 9 +บุ้ยปาก 9 +บ้วนปาก 9 +บ๊ะ 9 +บ๋อย 9 +ปฐมยาม 9 +ปนเป 9 +ปมด้อย 9 +ประคับ 9 +ประจง 9 +ประจัน 9 +ประดับกาย 9 +ประท้วง 9 +ประมูล 9 +ประวัติการณ์ 9 +ประหลาดๆ 9 +ประเดิม 9 +ประเดี๋ยวก่อน 9 +ปราชัย 9 +ปราศ 9 +ปริยาย 9 +ปรี่ 9 +ปลาหมึก 9 +ปล้นสะดม 9 +ปากท้อง 9 +ปืนยาว 9 +ป่าว 9 +ป่าสูง 9 +ป้วนเปี้ยน 9 +ป๊อก 9 +ผกา 9 +ผลักดัน 9 +ผัดผ่อน 9 +ผันผ่อน 9 +ผู้ต้องหา 9 +ผู้บริหาร 9 +ผ่อนตาม 9 +ผ่าตัด 9 +ผ่าว 9 +ฝักใฝ่ 9 +พงศ์พันธุ์ 9 +พระพุทธบาท 9 +พระราชฐาน 9 +พระเครื่อง 9 +พร้อมหน้าพร้อมตา 9 +พลกาย 9 +พวน 9 +พังทลาย 9 +พังผืด 9 +พินัยกรรม 9 +พิพาท 9 +พิมพ์ใจ 9 +พุทธกาล 9 +พุทธคุณ 9 +ฟั่นเฟือน 9 +ฟิด 9 +ฟู่ 9 +ฟ่อ 9 +ภัค 9 +ภูติ 9 +มธุรส 9 +มรคา 9 +มรณ์ 9 +มะกอกป่า 9 +มะลิลา 9 +มะโรง 9 +มัจจุราช 9 +มั้ย 9 +มาบ 9 +มาระ 9 +มิสเตอร์ 9 +มึนเมา 9 +มือสอง 9 +มูสัง 9 +ยกไว้ 9 +ยอน 9 +ยั้วเยี้ย 9 +ยาเสพย์ติด 9 +ยิบๆ 9 +ยูง 9 +ยู่ยี่ 9 +รงค์ 9 +รวน 9 +ระคายเคือง 9 +รังควาน 9 +รังแตน 9 +รัดตัว 9 +รำแพน 9 +ริ้วๆ 9 +รโหฐาน 9 +ร่วน 9 +ลพ 9 +ลอกคราบ 9 +ลอน 9 +ละล้าละลัง 9 +ละไม 9 +ลั่นฆ้อง 9 +ลาตาย 9 +ลายมือชื่อ 9 +ลำแพน 9 +ลิตร 9 +ลูกโซ่ 9 +ล่วงพ้น 9 +ล่วม 9 +ล่อแหลม 9 +ฦๅ 9 +วัยวุฒิ 9 +วาบๆ 9 +วายุ 9 +วินิจ 9 +วิบาก 9 +วิภาค 9 +วิหค 9 +วิหารหลวง 9 +ว่าจ้าง 9 +ศานติ 9 +ศาสน์ 9 +ศิลาแลง 9 +สกรรมกริยา 9 +สนธยา 9 +สนพระทัย 9 +สบัด 9 +สมคะเน 9 +สมบูรณ์แบบ 9 +สรรค์สร้าง 9 +สลอด 9 +สอพลอ 9 +สะกอ 9 +สะบัดหน้า 9 +สะโพก 9 +สั่นเครือ 9 +สาบสูญ 9 +สายัณห์ 9 +สายโลหิต 9 +สาลิกา 9 +สำเหนียก 9 +สิงสู่ 9 +สุดขีด 9 +สุทธิ 9 +สุนทรียภาพ 9 +สุราลัย 9 +สุราษฎร์ 9 +สู้หน้า 9 +หงอยเหงา 9 +หน้าตึง 9 +หน้าที่ๆ 9 +หมาๆ 9 +หม่อมหลวง 9 +หลังยาว 9 +หลุดปาก 9 +หอสมุด 9 +หักหาญ 9 +หัตถี 9 +หัวคิด 9 +หัวล้าน 9 +หัสดิน 9 +หูไว 9 +อกแตก 9 +อดิศัย 9 +อดๆ 9 +อนาคตกาล 9 +อนาทร 9 +อนุชน 9 +อภิวาท 9 +อยากๆ 9 +อรรค 9 +อวตาร 9 +ออดแอด 9 +อั๋น 9 +อากาศยาน 9 +อายุขัย 9 +อาเซียน 9 +อำไพ 9 +อือๆ 9 +อูย 9 +อ่อย 9 +อ้อนแอ้น 9 +ฮั่น 9 +ฮี้ๆ 9 +ฮ่า 9 +เกล้ากระหม่อม 9 +เกษมสันต์ 9 +เกินหน้า 9 +เกินเลย 9 +เกี่ยวโยง 9 +เกี้ยวพาราสี 9 +เข็มทิศ 9 +เข่น 9 +เข้ารีต 9 +เครื่องสาย 9 +เครื่องสำอาง 9 +เครื่องเทศ 9 +เคหา 9 +เคาน์เตอร์ 9 +เคียน 9 +เค้าเงื่อน 9 +เงินทุน 9 +เงื่อนงำ 9 +เจ้ากู 9 +เจ้าสัว 9 +เซล 9 +เดินหน 9 +เถิ่ง 9 +เทศบาล 9 +เทศะ 9 +เท็จจริง 9 +เท้ง 9 +เบญจพรรณ 9 +เบ้อเริ่ม 9 +เปรี้ยวหวาน 9 +เปีย 9 +เป็นต่อ 9 +เป็นรอง 9 +เผล่ 9 +เพชรนิลจินดา 9 +เพนียด 9 +เพรียก 9 +เพลี้ย 9 +เพียงแค่นั้น 9 +เฟื่องฟ้า 9 +เยียวยา 9 +เรี่ยราด 9 +เรือนยอด 9 +เรือหางยาว 9 +เรื่อๆ 9 +เละ 9 +เลี้ยงปากเลี้ยงท้อง 9 +เล่นตลก 9 +เล้ย 9 +เวน 9 +เสียวไส้ 9 +เสี่ยว 9 +เสือดาว 9 +เสแสร้ง 9 +เหง้า 9 +เหนียวแน่น 9 +เหนียวๆ 9 +เหลียวซ้ายแลขวา 9 +เหลือเฟือ 9 +เหลือแสน 9 +เออออ 9 +เอาชัย 9 +เอาชื่อ 9 +เอาอกเอาใจ 9 +เอิ๊บ 9 +แกร็ก 9 +แกละ 9 +แขนขวา 9 +แข็งเมือง 9 +แคม 9 +แคลน 9 +แคะ 9 +แง 9 +แจ 9 +แจกแจง 9 +แจม 9 +แฉก 9 +แดก 9 +แตกหัก 9 +แต่ก่อนๆ 9 +แต่งการ 9 +แต่งหน้า 9 +แบบบาง 9 +แป 9 +แปรเปลี่ยน 9 +แม่มด 9 +แรกเริ่ม 9 +แร่ธาตุ 9 +แล้วอย่างนี้ 9 +แสบๆ 9 +แส่ 9 +แหลมหลัก 9 +แห่งๆ 9 +แห้ 9 +แอ่น 9 +โกรธๆ 9 +โขลก 9 +โจษจัน 9 +โฉมยง 9 +โชติ 9 +โซม 9 +โภชนาการ 9 +โรมรัน 9 +โรมัน 9 +โศกศัลย์ 9 +โสหุ้ย 9 +โหราศาสตร์ 9 +โอหัง 9 +โอ้ย 9 +โอ๋ 9 +โฮฟ 9 +ใจน้อย 9 +ใบรับรอง 9 +ไขว่ 9 +ไขว้เขว 9 +ไข้ป่า 9 +ไต่สวน 9 +ไมโครโฟน 9 +ไม่ช้าไม่นาน 9 +ไม่ได้ศัพท์ 9 +ไม้สั้นไม้ยาว 9 +ไม้หันอากาศ 9 +ไม้เอก 9 +ไสย 9 +ไสยา 9 +ไสยาสน์ 9 +ไสหัว 9 +ไหวทัน 9 +ไอร์แลนด์ 9 +กดดัน 8 +กตเวทิตา 8 +กรงเล็บ 8 +กรมทหาร 8 +กรมป่าไม้ 8 +กรรมวิธี 8 +กรรโชก 8 +กรอ 8 +กระจัดกระจาย 8 +กระชอน 8 +กระทาย 8 +กระสุนปืน 8 +กริ่งเกรง 8 +กรีซ 8 +กรุบๆ 8 +กลัดกลุ้ม 8 +กลับทาง 8 +กลั่นแกล้ง 8 +กลั้นใจ 8 +กลา 8 +กลางหาว 8 +กัมพล 8 +กาชาด 8 +กาฬปักษ์ 8 +กาฬโรค 8 +กำลังวังชา 8 +กินนร 8 +กีด 8 +กุด 8 +กุน 8 +กุ่ม 8 +ขวัญหนีดีฝ่อ 8 +ขาดๆ 8 +ขายตัว 8 +ขาล 8 +ขาอ่อน 8 +ขี้มูก 8 +ขุดลอก 8 +ขุ่นข้องหมองใจ 8 +ข่มขวัญ 8 +ข้าทาส 8 +ข้าวนึ่ง 8 +ข้าวผัด 8 +ข้าวเกรียบ 8 +คมกริบ 8 +ควีน 8 +คว้าง 8 +คหบดี 8 +คิรี 8 +ค่าคบ 8 +ค่ำๆ 8 +ค้อย 8 +งดเว้น 8 +งบ 8 +งอมืองอเท้า 8 +ง้ำ 8 +จดทะเบียน 8 +จนๆ 8 +จันทรุปราคา 8 +จำรัส 8 +จำวัด 8 +จิตระ 8 +จิ๊ป 8 +จี 8 +จืดชืด 8 +จุ้น 8 +จ่าง 8 +จ้าว 8 +จ้ำม่ำ 8 +ฉีกหน้า 8 +ชลเนตร 8 +ชวนชม 8 +ชอล์ก 8 +ชะลูด 8 +ชาญฉลาด 8 +ชี้ฟ้า 8 +ชื่อสกุล 8 +ชุบตัว 8 +ช่างเหล็ก 8 +ช้อง 8 +ช้าก่อน 8 +ช้างใหญ่ 8 +ซม 8 +ซอกแซก 8 +ซากปรักหักพัง 8 +ซาน 8 +ซีกซ้าย 8 +ซีดๆ 8 +ซึง 8 +ซื่อๆ 8 +ซุย 8 +ซูบซีด 8 +ซู่ 8 +ดรุณี 8 +ดาวศุกร์ 8 +ดาษดื่น 8 +ดินร่วน 8 +ดิส 8 +ดื่มด่ำ 8 +ดุษณี 8 +ด่าทอ 8 +ตรอม 8 +ตลบตะแลง 8 +ตะบัน 8 +ตะพาย 8 +ตัณหา 8 +ตั้งโต๊ะ 8 +ตายใจ 8 +ตี่ 8 +ตุน 8 +ตุ่นๆ 8 +ตู 8 +ต่ำช้า 8 +ต๊าก 8 +ถลึงตา 8 +ถาน 8 +ถ่อม 8 +ทนต์ 8 +ทนายความ 8 +ทรชน 8 +ทรามวัย 8 +ทศพิธราชธรรม 8 +ทอดสายตา 8 +ทอแสง 8 +ทะนงตัว 8 +ทับศัพท์ 8 +ทับหลัง 8 +ทาวน์เฮาส์ 8 +ทำฤทธิ์ 8 +ทิพยเนตร 8 +ทิวา 8 +ทิ้งท้าย 8 +ทุกหน 8 +ทุกเมื่อเชื่อวัน 8 +ท่านๆ 8 +ท้องตลาด 8 +ท้องผูก 8 +ธัญพืช 8 +นครสวรรค์ 8 +นนทรี 8 +นมผง 8 +นอนๆ 8 +นักธุรกิจ 8 +นัดแนะ 8 +นับหน้าถือตา 8 +นั่งขัดสมาธิ 8 +นายประกัน 8 +นิสัยใจคอ 8 +นิ่มๆ 8 +น้ำกะทิ 8 +น้ำจัณฑ์ 8 +น้ำดี 8 +น้ำวน 8 +น้ำอัดลม 8 +บอบช้ำ 8 +บังคับใจ 8 +บัญชร 8 +บานเย็น 8 +บำราศ 8 +บิ่น 8 +ปกปักรักษา 8 +ประกบ 8 +ประจำเดือน 8 +ประณต 8 +ประนม 8 +ประเจียด 8 +ประเล้าประโลม 8 +ปรุ 8 +ปฤจฉา 8 +ปลดปลง 8 +ปลอมแปลง 8 +ปลัก 8 +ปลากริม 8 +ปลาสนาการ 8 +ปลาส้ม 8 +ปศุสัตว์ 8 +ปันส่วน 8 +ปัวะ 8 +ปั้นหยา 8 +ปากต่อปาก 8 +ปี้ 8 +ปูพื้น 8 +ป่วน 8 +ผอบ 8 +ผอมเกร็ง 8 +ผักกาด 8 +ผายผัน 8 +ผื่น 8 +ผุดผาด 8 +ผู้อ่าน 8 +พงพี 8 +พนาลี 8 +พรหมทัณฑ์ 8 +พระบรมราชานุญาต 8 +พระราชดำเนิน 8 +พระเชตุพนฯ 8 +พรึ่บ 8 +พร้อย 8 +พฤหัส 8 +พหล 8 +พอแรง 8 +พะวักพะวน 8 +พะเนียง 8 +พาก 8 +พาหา 8 +พาหุ 8 +พิรี้พิไร 8 +พื้นเพ 8 +พ่าง 8 +ฟก 8 +ฟูก 8 +ภคินี 8 +ภัณฑ์ 8 +ภัตกิจ 8 +ภัตตาหาร 8 +ภัสดา 8 +ภาพถ่าย 8 +ภิญโญ 8 +ภูวนาถ 8 +มงกุฏ 8 +มฤคทายวัน 8 +มองๆ 8 +มะเดหวี 8 +มักกะสัน 8 +มักน้อย 8 +มัชฌิมยาม 8 +มั่วสุม 8 +มากมายก่ายกอง 8 +มายา 8 +มาเลเซีย 8 +มีน 8 +มีหน้า 8 +มุมมืด 8 +มูลฐาน 8 +ยมบาล 8 +ยานพาหนะ 8 +ยิ้มแฉ่ง 8 +ยึดครอง 8 +ยุ่งๆ 8 +รถจักรยานยนต์ 8 +รยางค์ 8 +ระคน 8 +ระทึก 8 +ระย่อ 8 +รักษาการณ์ 8 +รัช 8 +รัญจวน 8 +รัสสระ 8 +ราคี 8 +ริ้น 8 +รู้เท่าไม่ถึงการณ์ 8 +ร้า 8 +ลงกลอน 8 +ลมพิษ 8 +ลองดี 8 +ละลาน 8 +ละเมาะ 8 +ลั่นไก 8 +ลิบลับ 8 +ลีซอ 8 +ลี้ลับ 8 +ลึกล้ำ 8 +ลูกบิด 8 +ลูกพี่ลูกน้อง 8 +ลูกหลวง 8 +ลูบตัว 8 +ล่อหลอก 8 +ล่ำลา 8 +วสันตดิลก 8 +วอมแวม 8 +วังหลัง 8 +วาบหวาม 8 +วาล 8 +วิกฤตการณ์ 8 +วิลันดา 8 +วิเชียร 8 +วิ่งราว 8 +วิ่งเต้น 8 +ว่าต่าง 8 +สถาวร 8 +สบง 8 +สปอร์ต 8 +สมาร์ท 8 +สยามรัฐ 8 +สลาด 8 +สะอึก 8 +สัตบุรุษ 8 +สันติภาพ 8 +สันนิบาต 8 +สัปดน 8 +สาราณียกถา 8 +สาส์น 8 +สำมะโนครัว 8 +สำรวล 8 +สิงสถิต 8 +สิ้นท่า 8 +สิ้นบุญ 8 +สิ้นลม 8 +สืบๆ 8 +สุกร 8 +สุกๆ 8 +สุขุมาล 8 +สุคติ 8 +สุดสัปดาห์ 8 +สุ่ม 8 +สโน 8 +ส่วนกลาง 8 +หง่าง 8 +หมองมัว 8 +หมักหมม 8 +หมายกำหนดการ 8 +หม่อมราชวงศ์ 8 +หม่า 8 +หม้อน้ำ 8 +หยักรั้ง 8 +หย่า 8 +หลอกหลอน 8 +หลอดแก้ว 8 +หลับๆ 8 +หลาม 8 +หวั่นๆ 8 +หวาดๆ 8 +หว่านล้อม 8 +หอไตร 8 +หักใจ 8 +หักๆ 8 +หัวปี 8 +หูกวาง 8 +หูหนวก 8 +หูเบา 8 +ห่อหมก 8 +ห้องๆ 8 +ห้ำหั่น 8 +อธิปไตย 8 +อภัยโทษ 8 +อรไท 8 +อสัญแดหวา 8 +อสุจิ 8 +อัครมเหสี 8 +อัยกี 8 +อัสดร 8 +อาธรรม 8 +อาธรรม์ 8 +อาบแดด 8 +อามิส 8 +อายๆ 8 +อิดออด 8 +อินเตอร์เน็ต 8 +อีตา 8 +อืดอาด 8 +อุบาสิกา 8 +อู่น้ำ 8 +อ่อนไหว 8 +อ้อมแขน 8 +อ๊อบ 8 +อ๋อง 8 +ฮึด 8 +เกกมะเหรก 8 +เกริก 8 +เกริ่น 8 +เก็จ 8 +เขม่า 8 +เขว 8 +เคลิบเคลิ้ม 8 +เคา 8 +เคืองๆ 8 +เงาๆ 8 +เงินก้อน 8 +เงินทอน 8 +เจน 8 +เจิ่ง 8 +เจียก 8 +เจี๊ยก 8 +เจี๊ยกๆ 8 +เฉด 8 +เฉื่อยชา 8 +เช็ค 8 +เดรัจฉาน 8 +เดินทัพ 8 +เดิมที 8 +เดือย 8 +เตร็ดเตร่ 8 +เตารีด 8 +เต่านา 8 +เถือ 8 +เทาๆ 8 +เทียบเคียง 8 +เทเวศร์ 8 +เท่ 8 +เท่าตัว 8 +เท้งเต้ง 8 +เนอ 8 +เนี้ย 8 +เน้นหนัก 8 +เบนซิน 8 +เปยยาล 8 +เปลี่ยนหน้า 8 +เปลือยกาย 8 +เปิดฉาก 8 +เผชิญภัย 8 +เผด็จการ 8 +เพียงแค่นี้ 8 +เฟือย 8 +เฟื่อง 8 +เมืองออก 8 +เม็ดเลือด 8 +เยอ 8 +เยิน 8 +เยื่อใย 8 +เริม 8 +เรี่ย 8 +เรือด 8 +เร้ว 8 +เลิกล้ม 8 +เลิ่กลั่ก 8 +เวียดนาม 8 +เสมอต้นเสมอปลาย 8 +เสียตัว 8 +เสียท่า 8 +เส็ง 8 +เหง 8 +เหน็บแนม 8 +เหมืองแร่ 8 +เหยงๆ 8 +เหินห่าง 8 +เหิม 8 +เหี้ยน 8 +เหี้ยม 8 +เห็นแก่หน้า 8 +เห็นๆ 8 +เห็บ 8 +เอกพจน์ 8 +เอออวย 8 +เอะใจ 8 +เอาจริงๆ 8 +เอี้ยว 8 +เฮลิคอปเตอร์ 8 +แจ้ว 8 +แช่งน้ำ 8 +แถบบันทึกเสียง 8 +แนะแนว 8 +แบบพิมพ์ 8 +แปรผัน 8 +แผล็ว 8 +แพร่งพราย 8 +แพลง 8 +แพ้ท้อง 8 +แมงลัก 8 +แม่ย่านาง 8 +แว่บ 8 +แอลกอฮอล์ 8 +แออัด 8 +โกรธขึ้ง 8 +โครมคราม 8 +โจทก์ 8 +โชว์ 8 +โชเฟอร์ 8 +โน้นๆ 8 +โบว์ 8 +โป๊ 8 +โผงผาง 8 +โพธิ์เตี้ย 8 +โพล้เพล้ 8 +โพสิทีฟ 8 +โมทนา 8 +โลกทัศน์ 8 +โอชะ 8 +โอด 8 +โอดโอย 8 +โอ้ก 8 +โอ๊ 8 +ใจง่าย 8 +ใจลอย 8 +ใจเดียวกัน 8 +ใจไม่ดี 8 +ใส่ความ 8 +ไข่เจียว 8 +ไถ่ถาม 8 +ไทยทาน 8 +ไท้ 8 +ไบเบิล 8 +ไม้หน้า 8 +ไว้ยศ 8 +กรวดน้ำ 7 +กรอบแกรบ 7 +กระซิก 7 +กระทา 7 +กราบเรือ 7 +กริยานุเคราะห์ 7 +กรุณาปรานี 7 +กร่อย 7 +กร่าง 7 +กลบท 7 +กลัวๆ 7 +กลั้ว 7 +กลางเก่ากลางใหม่ 7 +กลิ้งเกลือก 7 +กล่ำ 7 +กองหลัง 7 +กอบโกย 7 +กะพ้อ 7 +กะละมัง 7 +กังขา 7 +กัมพูชา 7 +กาญจน์ 7 +กาฝาก 7 +การะเกด 7 +การุณย์ 7 +กาลกิณี 7 +กำลังม้า 7 +กำเดา 7 +กิจจะ 7 +กินความ 7 +กินโต๊ะ 7 +กิ่ว 7 +กิ้งโครง 7 +กิ๊กๆ 7 +กี่มากน้อย 7 +ก่อตั้ง 7 +ก้าวก่าย 7 +ขนด 7 +ขมับ 7 +ขยิบ 7 +ขลุก 7 +ขวย 7 +ขวัญดี 7 +ของกลาง 7 +ของขบเคี้ยว 7 +ขอช้าง 7 +ขัดเขิน 7 +ขันชะเนาะ 7 +ขันธ์ 7 +ขับเคี่ยว 7 +ขาดเหลือ 7 +ขายปลีก 7 +ขายส่ง 7 +ขื่น 7 +ขุก 7 +ขุดค้น 7 +ขุนทอง 7 +ขุมขน 7 +ขุ่นมัว 7 +ข่มขืน 7 +ข่มใจ 7 +ข้อกำหนด 7 +ข้อราชการ 7 +ข้าวมัน 7 +คณบดี 7 +คนนอก 7 +คนใหญ่คนโต 7 +คนไข้ใน 7 +คฤหาสน์ 7 +คลอเคลีย 7 +คลาดแคล้ว 7 +คลื่นวิทยุ 7 +คลุ้ม 7 +ควน 7 +คอนเสิร์ต 7 +คอเสื้อ 7 +คืบหน้า 7 +คุณวิเศษ 7 +คุดคู้ 7 +คู่ใจ 7 +ค่อนขอด 7 +ค่อม 7 +ค่าตัว 7 +ค้อม 7 +ฆ้องชัย 7 +งมงาย 7 +จดๆ 7 +จตุสดมภ์ 7 +จนแล้วจนรอด 7 +จรดพระนังคัล 7 +จอมทอง 7 +จังก้า 7 +จาบัลย์ 7 +จำคุก 7 +จำเนียร 7 +จิงโจ้ 7 +จิตต์ 7 +จี่ 7 +จุ๊ๆ 7 +จ้องๆ 7 +จ๋อ 7 +ฉกาจ 7 +ฉนาก 7 +ฉอเลาะ 7 +ฉันทา 7 +ฉ้อฉล 7 +ชมเปาะ 7 +ชะงัด 7 +ชะมด 7 +ชัยนาท 7 +ชัยศรี 7 +ชาด 7 +ชาลา 7 +ชืด 7 +ชุบชีวิต 7 +ชุลี 7 +ซก 7 +ซากศพ 7 +ซากๆ 7 +ซาง 7 +ซาบซ่าน 7 +ซ้ำร้าย 7 +ฐานันดร 7 +ดงดิบ 7 +ดรรชนี 7 +ดวงสมร 7 +ดวด 7 +ดอกจันทน์ 7 +ดอกไม้เพลิง 7 +ดัชนี 7 +ดั้งจมูก 7 +ดาราศาสตร์ 7 +ดินปืน 7 +ดื่น 7 +ดื้อรั้น 7 +ดุกดิก 7 +ดุลยพินิจ 7 +ดุษฎีบัณฑิต 7 +ดูใจ 7 +ตกอับ 7 +ตด 7 +ตรอมใจ 7 +ตรีกาล 7 +ตฤณ 7 +ตลกโปกฮา 7 +ตลาดสด 7 +ตอนแรกๆ 7 +ตะขิดตะขวง 7 +ตะพด 7 +ตะล่อม 7 +ตะวันออกเฉียงใต้ 7 +ตะโขง 7 +ตำรวจภูธร 7 +ตึ 7 +ตุลาการ 7 +ต่องแต่ง 7 +ต้นบท 7 +ต้นสายปลายเหตุ 7 +ถมึงทึง 7 +ถอดความ 7 +ถอนตัว 7 +ถักร้อย 7 +ถั่วฝักยาว 7 +ถากถาง 7 +ถึงแก่อนิจกรรม 7 +ถึงแก่อสัญกรรม 7 +ถือปูน 7 +ถือโกรธ 7 +ถูกปาก 7 +ทรุดนั่ง 7 +ทองหยิบ 7 +ทอดสมอ 7 +ทะลัก 7 +ทังปวง 7 +ทัณฑกรรม 7 +ทางข้าม 7 +ทางด่วน 7 +ทางม้าลาย 7 +ทำนบ 7 +ทำวัตร 7 +ทำเนียบ 7 +ทินเนอร์ 7 +ทิพ 7 +ทิม 7 +ทิวงคต 7 +ทิ้งจดหมาย 7 +ทุด 7 +ทุย 7 +ทุรกันดาร 7 +ท้องเฟ้อ 7 +ธรรมการ 7 +ธาตุเจดีย์ 7 +นครชัยศรี 7 +นครนายก 7 +นงคราญ 7 +นงเยาว์ 7 +นราธิวาส 7 +นอกใจ 7 +นองหน้า 7 +นักการเมือง 7 +นักวิชาการ 7 +นักโบราณคดี 7 +นาท 7 +น้อมนำ 7 +น้ำครำ 7 +น้ำคำ 7 +น้ำซาวข้าว 7 +น้ำดอกไม้ 7 +น้ำนอง 7 +น้ำมนตร์ 7 +น้ำมันเบนซิน 7 +น้ำมูก 7 +น้ำเหลือง 7 +บมิ 7 +บรรพ์ 7 +บวรนิเวศ 7 +บังคับครุ 7 +บัวบก 7 +บั้ง 7 +บั้นเอว 7 +บากหน้า 7 +บาทบงสุ์ 7 +บำราบ 7 +บุหลัน 7 +บูดบึ้ง 7 +บูดู 7 +ปฏัก 7 +ปฏิพากย์ 7 +ปรอย 7 +ประกายพรึก 7 +ประจันหน้า 7 +ประจำทาง 7 +ประณาม 7 +ประดักประเดิด 7 +ประทุ 7 +ประพาสต้น 7 +ประวัติการ 7 +ประสีประสา 7 +ประเทศราช 7 +ประเมินผล 7 +ปราจีน 7 +ปฤษฎางค์ 7 +ปลาก 7 +ปอนๆ 7 +ปั่นฝ้าย 7 +ปากมาก 7 +ปิดท้าย 7 +ปึง 7 +ปุดๆ 7 +ปูม้า 7 +ป่าดงดิบ 7 +ป้าบ 7 +ผลพลอยได้ 7 +ผลุง 7 +ผลุน 7 +ผอมโซ 7 +ผันผาย 7 +ผูกมิตร 7 +ผู้แพ้ 7 +ผ่าย 7 +ผ่ายผอม 7 +ฝอยทอง 7 +ฝักฝ่าย 7 +ฝึกปรือ 7 +พยักพเยิด 7 +พรรณราย 7 +พรสวรรค์ 7 +พระประวัติ 7 +พรื่อ 7 +พรุ่ง 7 +พหุ 7 +พะทำมะรง 7 +พะว้าพะวัง 7 +พะอง 7 +พักพิง 7 +พักๆ 7 +พาชี 7 +พินิศ 7 +พิมาย 7 +พุ 7 +พุทธภาษิต 7 +พูดๆ 7 +ฟังหูไว้หู 7 +ฟิลิปปินส์ 7 +ฟ้าคะนอง 7 +ภมร 7 +ภยันตราย 7 +มอร์ฟีน 7 +มอๆ 7 +มะขามเปียก 7 +มะพลับ 7 +มะรืน 7 +มังค่า 7 +มังสะ 7 +มัชฌิมวัย 7 +มิน่า 7 +มิน่าล่ะ 7 +มิเช่นนั้น 7 +มิไย 7 +มีอันจะกิน 7 +มืดค่ำ 7 +มุขยประโยค 7 +มุทะลุ 7 +มูน 7 +มูลค่า 7 +มูลนาย 7 +ม้าต้น 7 +ม้าล่อ 7 +ม้าเทศ 7 +ยวง 7 +ยองใย 7 +ยอดดี 7 +ยั่วยวน 7 +ยากนาน 7 +ยากๆ 7 +ยิ้มกริ่ม 7 +ยี่สง 7 +ยโสธร 7 +ย่อหย่อน 7 +ย่างเยื้อง 7 +รกร้าง 7 +รวี 7 +ระนาด 7 +ระหองระแหง 7 +รัชทายาท 7 +รันทด 7 +รับประกัน 7 +รั้งท้าย 7 +รากเหง้า 7 +ราชทัณฑ์ 7 +ราญรอน 7 +รึง 7 +ร่อยหรอ 7 +ลงตัว 7 +ลงสรง 7 +ลงเอย 7 +ลบเลือน 7 +ลอม 7 +ละมาน 7 +ละลาบละล้วง 7 +ลักขณา 7 +ลับแล 7 +ลางสาด 7 +ลาญ 7 +ลาดเลา 7 +ลายไม้ 7 +ลำห้วย 7 +ลำแข้ง 7 +ลำแสง 7 +ลำโพง 7 +ลำไส้ 7 +ลิงลม 7 +ลิต 7 +ลือชา 7 +ลูกชิ้น 7 +ลูกตั้ง 7 +ลูกรัง 7 +ลูกสะใภ้ 7 +ล่ง 7 +ล่าถอย 7 +ล้มลุก 7 +ล้างแค้น 7 +ฦา 7 +วงศาคณาญาติ 7 +วนา 7 +วรรณนา 7 +วัณ 7 +วัดหลวง 7 +วางวาย 7 +วิกฤติ 7 +วิง 7 +วิบูลย์ 7 +วิศวกร 7 +วิศวกรรม 7 +วิฬาร์ 7 +วุ้ง 7 +ว่ายาก 7 +ว้อย 7 +ว้าวุ่น 7 +ศรีสัชนาลัย 7 +ศักดานุภาพ 7 +ศิวะ 7 +ศิวิไลซ์ 7 +สงกา 7 +สถล 7 +สมณศักดิ์ 7 +สมประกอบ 7 +สมปฤดี 7 +สมรรถ 7 +สมัครพรรคพวก 7 +สมุย 7 +สมุหนาม 7 +สร้างเสริม 7 +สลายตัว 7 +สหรัฐ 7 +สองเกลอ 7 +สะบักสะบอม 7 +สะพัด 7 +สังคมสงเคราะห์ 7 +สัญประกาศ 7 +สัประยุทธ์ 7 +สัปหงก 7 +สัมฤทธิศก 7 +สั่นๆ 7 +สารวัตร 7 +สิงหราช 7 +สินธพ 7 +สิ่งก่อสร้าง 7 +สิ่งปฏิกูล 7 +สุขภาพจิต 7 +สุริยะ 7 +สุวรรณภูมิ 7 +หงอน 7 +หงิงๆ 7 +หงิม 7 +หนุนหลัง 7 +หน่วง 7 +หน้าม้า 7 +หมองใจ 7 +หมายเรียก 7 +หยดย้อย 7 +หยัด 7 +หยาบหยาม 7 +หยี 7 +หรอ 7 +หลอดเลือด 7 +หลอม 7 +หลักชัย 7 +หลักๆ 7 +หลุดมือ 7 +หวาม 7 +หอประชุม 7 +หักโหม 7 +หันรีหันขวาง 7 +หัวปลี 7 +หัวหงอก 7 +หัวแหวน 7 +หางว่าว 7 +หินอ่อน 7 +ห้อม 7 +อนธการ 7 +อนิยม 7 +อนุมัติ 7 +อภิชาตบุตร 7 +อมรินทร์ 7 +อยู่จริง 7 +อยู่โยง 7 +อรัญ 7 +อสัตย์ 7 +ออกงาน 7 +ออดๆ 7 +อะไหล่ 7 +อักษรสมัย 7 +อันดามัน 7 +อันตรธาน 7 +อับปาง 7 +อัยการ 7 +อาจาร 7 +อาชญากรรม 7 +อารัมภบท 7 +อิทธิ 7 +อิส 7 +อุณหภูมิ 7 +อุทก 7 +อ่อนล้า 7 +ฮาๆ 7 +ฮินดี 7 +เกด 7 +เกลือกกลิ้ง 7 +เกล้ากระผม 7 +เกินตัว 7 +เกียร์ 7 +เกือบไป 7 +เขนย 7 +เขมา 7 +เขม็ดแขม่ 7 +เขียนๆ 7 +เขี้ยวแก้ว 7 +เข้ารูป 7 +เครื่องทอง 7 +เครื่องผูก 7 +เครื่องสูบน้ำ 7 +เครื่องเรือน 7 +เคส 7 +เคอะ 7 +เคียงๆ 7 +เค้น 7 +เงามืด 7 +เงื่องหงอย 7 +เจริญอาหาร 7 +เจือจาน 7 +เฉก 7 +เฉพาะพระพักตร์ 7 +เฉิดฉาย 7 +เชือกบาศ 7 +เชือนแช 7 +เซอะ 7 +เดียร 7 +เดียรัจฉาน 7 +เดือนๆ 7 +เต็มประดา 7 +เต็มมือ 7 +เต็มเม็ดเต็มหน่วย 7 +เทอะทะ 7 +เทิบทาบ 7 +เทเวศ 7 +เนาวรัตน์ 7 +เนิบ 7 +เนิบนาบ 7 +เนียน 7 +เนื้ออ่อน 7 +เบียร์ 7 +เปรี้ยงๆ 7 +เปลาะ 7 +เปาะแปะ 7 +เปียกๆ 7 +เป็นควัน 7 +เผือ 7 +เพทุบาย 7 +เพียบพร้อม 7 +เมรุมาศ 7 +เมี้ยว 7 +เมื่อม 7 +เมื้อ 7 +เยอะๆ 7 +เยี่ยมเยือน 7 +เย็นฉ่ำ 7 +เย็นตา 7 +เรี่ยว 7 +เรือหลวง 7 +เรื่องสั้นๆ 7 +เรื้อรัง 7 +เลศ 7 +เลียบๆ 7 +เวียนเทียน 7 +เสย 7 +เสริมสวย 7 +เสียกิริยา 7 +เสี้ยน 7 +เสเพล 7 +เส้นเอ็น 7 +เหน 7 +เอมโอช 7 +เออๆ 7 +เอิบ 7 +เอิบอาบ 7 +เอ้ 7 +เอ๊อ 7 +เอ๋ง 7 +เฮโล 7 +เฮ้ 7 +แกรกๆ 7 +แกร๊ก 7 +แกล้ม 7 +แก้บน 7 +แก้วหู 7 +แก๊ก 7 +แข็งกล้า 7 +แชร์ 7 +แซงแซว 7 +แซบ 7 +แซ่ว 7 +แด 7 +แตกระแหง 7 +แนบแน่น 7 +แน่นๆ 7 +แปร๋น 7 +แผก 7 +แพงพวย 7 +แพศยา 7 +แมกไม้ 7 +แมงดา 7 +แมวๆ 7 +แม่งาน 7 +แลง 7 +และเล็ม 7 +แว้ด 7 +แสงเงินแสงทอง 7 +แหม่ม 7 +แหลมๆ 7 +แห่แหน 7 +แห้ว 7 +โฆษก 7 +โง้น 7 +โจงกระเบน 7 +โจรกรรม 7 +โจรสลัด 7 +โทร 7 +โบยบิน 7 +โพน 7 +โภค 7 +โยเย 7 +โย่ง 7 +โลดแล่น 7 +โศกนาฏกรรม 7 +โสร่ง 7 +โอภา 7 +ใจดีๆ 7 +ใจเสาะ 7 +ไขข้อ 7 +ไข่ปลา 7 +ไข้หวัดใหญ่ 7 +ได้ฤกษ์ 7 +ไถง 7 +ไนโตรเจน 7 +ไม้ตรี 7 +ไม้อัด 7 +ไม้ไล่ 7 +ไวโอลิน 7 +ไว้อาลัย 7 +กกุธภัณฑ์ 6 +กรรณิการ์ 6 +กรอบหน้า 6 +กระจับปี่ 6 +กระบอง 6 +กระพือ 6 +กระยาหาร 6 +กระเจี๊ยบ 6 +กระเพื่อมๆ 6 +กระโชกโฮกฮาก 6 +กราล 6 +กรีดกราย 6 +กรี้ด 6 +กลด 6 +กลอนสด 6 +กลอักษร 6 +กลับกลอก 6 +กลางดิน 6 +กลายๆ 6 +กลเม็ด 6 +กล้วยๆ 6 +กวัด 6 +กษัตราธิราช 6 +กอบด้วย 6 +กะปลกกะเปลี้ย 6 +กะปะ 6 +กะเผลก 6 +กาญจนา 6 +กามโรค 6 +กายภาพ 6 +กาลกรรณี 6 +กาเรียน 6 +กำราบ 6 +กินดอก 6 +กินลม 6 +กินๆ 6 +กิ่งอำเภอ 6 +กีดกั้น 6 +กุดั่น 6 +กูๆ 6 +ก่าย 6 +ก้มๆ 6 +ก้านแข็ง 6 +ขนลุก 6 +ขนหนู 6 +ขนัด 6 +ขยันหมั่นเพียร 6 +ของคาว 6 +ของสงฆ์ 6 +ของแห้ง 6 +ขอไปที 6 +ขัดๆ 6 +ขันติ 6 +ขั้นต้น 6 +ขาก๊วย 6 +ขาดปาก 6 +ขานไข 6 +ขี้หน้า 6 +ขื่นขม 6 +ขุย 6 +ข่าวประจำวัน 6 +ข้อต้น 6 +ข้อห้าม 6 +ข้ามหัว 6 +ข้าวกล้อง 6 +ข้าวตอก 6 +คงเส้นคงวา 6 +คณะรัฐมนตรี 6 +คริสต์ศักราช 6 +ครึกโครม 6 +ครืนๆ 6 +คล่องๆ 6 +คล่ำ 6 +ควับ 6 +ควั่น 6 +คห 6 +คอพับ 6 +คำตั้ง 6 +คำนำหน้า 6 +คำพิพากษา 6 +คำร้องขอ 6 +คุกรุ่น 6 +คุณน้าๆ 6 +คุด 6 +คุรุ 6 +คู่ชีวิต 6 +คู่รัก 6 +คู่สร้าง 6 +คู่อาฆาต 6 +ค่อยเป็นค่อยไป 6 +ค่าที่ 6 +ค้นคิด 6 +ฆาต 6 +งอแง 6 +งันงก 6 +จรจัด 6 +จวนเจียน 6 +จอกแหน 6 +จองหอง 6 +จะแนะ 6 +จังงัง 6 +จันทรคติ 6 +จับไข้ 6 +จั๊ว 6 +จาบ 6 +จามจุรี 6 +จินตกวี 6 +จุลินทรีย์ 6 +จุ๋มจิ๋ม 6 +จ้าละหวั่น 6 +จ๊อก 6 +ฉนวน 6 +ฉะฉาน 6 +ชงโค 6 +ชม้าย 6 +ชวด 6 +ชวย 6 +ชะล้าง 6 +ชักเย่อ 6 +ชัฏ 6 +ชิ้นเอก 6 +ชีวะ 6 +ชี้ขาด 6 +ช็อกโกเลต 6 +ซออู้ 6 +ซักส้าว 6 +ซัง 6 +ซิบๆ 6 +ซี้ด 6 +ซู่ๆ 6 +ญาติๆ 6 +ดักคอ 6 +ดินเค็ม 6 +ดีบุก 6 +ดุริยางค์ 6 +ดุษฎี 6 +ดูรึ 6 +ดูเบา 6 +ด้อมๆ 6 +ตระพอง 6 +ตราชู 6 +ตราด 6 +ตรู่ 6 +ตลกคะนอง 6 +ตลาดน้ำ 6 +ตะกรุม 6 +ตะบอย 6 +ตะพาน 6 +ตะลึงพรึงเพริด 6 +ตะเบ็ง 6 +ตะโก้ 6 +ตัดทาง 6 +ตัวเปล่า 6 +ตัวเปล่าๆ 6 +ตั้งเข็ม 6 +ตาขาว 6 +ตาตุ่ม 6 +ตามกวาง 6 +ตายโหง 6 +ติดตลก 6 +ตึงตัง 6 +ตืด 6 +ตุ๊กๆ 6 +ตุ๊บ 6 +ต้มส้ม 6 +ถมเถ 6 +ถอง 6 +ทหารไทย 6 +ทองคำเปลว 6 +ทอดหญ้า 6 +ทะนา 6 +ทัวร์ 6 +ทั้งดุ้น 6 +ทายก 6 +ทิศานุทิศ 6 +ทิ้งขว้าง 6 +ทีป 6 +ทึกทัก 6 +ทู่ 6 +ท่วมท้น 6 +ท่อมๆ 6 +ท่านหญิง 6 +ท้ายๆ 6 +ธรรมบท 6 +ธรรมาสน์ 6 +ธาตรี 6 +นพรัตน์ 6 +นภา 6 +นันทนาการ 6 +นาคราช 6 +นางร้องไห้ 6 +นางห้าม 6 +นามาภิไธย 6 +นายอากร 6 +นาสวน 6 +นิคหิต 6 +นิตย์ 6 +นิรภัย 6 +นิรมิต 6 +นิวัติ 6 +นิโกร 6 +นี่ๆ 6 +น้ำมือ 6 +น้ำอ้อย 6 +บรรณาธิการ 6 +บริดจ์ 6 +บวง 6 +บวชชี 6 +บั้นปลาย 6 +บั้นพระองค์ 6 +บานชื่น 6 +บานเกล็ด 6 +บานเช้า 6 +บีบบังคับ 6 +บุคลาธิษฐาน 6 +บุญธรรม 6 +บุษบง 6 +บุ้ยใบ้ 6 +บูดเบี้ยว 6 +บ้อม 6 +บ๊วย 6 +ปฐพี 6 +ปฐมเทศนา 6 +ปรนปรือ 6 +ปรบไก่ 6 +ประจญ 6 +ประจัญบาน 6 +ประจ๋อประแจ๋ 6 +ประพรม 6 +ประหัตประหาร 6 +ประเดี๋ยวนี้ 6 +ปรับไหม 6 +ปรากฎ 6 +ปลั๊ก 6 +ปลิง 6 +ปลีกย่อย 6 +ปะทุ 6 +ปักหลัก 6 +ปับ 6 +ปั้ด 6 +ปากจัด 6 +ปากบอน 6 +ปากอ่าว 6 +ปากเปียก 6 +ปากโป้ง 6 +ปาฐะ 6 +ปาติโมกข์ 6 +ปี้บ 6 +ปึงปัง 6 +ปื้น 6 +ปุกปุย 6 +ปุยฝ้าย 6 +ปุ้งกี๋ 6 +ปุ๊บ 6 +ปูดๆ 6 +ป่าย 6 +ผงะ 6 +ผจง 6 +ผลีผลาม 6 +ผลุด 6 +ผัวะ 6 +ผาด 6 +ผาดโผน 6 +ผิดพ้องหมองใจ 6 +ผีเสื้อยักษ์ 6 +ผึ้งรวง 6 +ผู้ประกอบการ 6 +ผ่าหมาก 6 +ผ่าเผย 6 +ผ้าแดง 6 +ฝอยๆ 6 +ฝาง 6 +พบพาน 6 +พยุหเสนา 6 +พระกรุณาธิคุณ 6 +พระวรกาย 6 +พระเจ้าน้องยาเธอ 6 +พรั่ง 6 +พรั่งพรู 6 +พวย 6 +พหูสูต 6 +พัทลุง 6 +พิจารณ์ 6 +พิศวาส 6 +พึบๆ 6 +พึม 6 +พ่วง 6 +ฟอสฟอรัส 6 +ฟังขึ้น 6 +ฟังออก 6 +ฟืดๆ 6 +ฟูม 6 +ภวังค์ 6 +มก 6 +มนุษยธรรม 6 +มนุษยสัมพันธ์ 6 +มนุษย์อวกาศ 6 +มนู 6 +มยุรา 6 +มลาย 6 +มหาบัณฑิต 6 +มะกล่ำ 6 +มะเกลือ 6 +มะเขือพวง 6 +มัจฉะ 6 +มัวหมอง 6 +มาฆบูชา 6 +มาดริด 6 +มาตรแม้น 6 +มือปืน 6 +มือไว 6 +มุรธาภิเษก 6 +มุ่น 6 +ม่านตา 6 +ยถากรรม 6 +ยอดน้ำ 6 +ยะเยือก 6 +ยัดเยียด 6 +ยับยั้งชั่งใจ 6 +ยานัตถุ์ 6 +ยาใจ 6 +ยิ้มหัว 6 +ยี่โถ 6 +รกชัฏ 6 +รดน้ำ 6 +รวยรื่น 6 +รองเง็ง 6 +ระกะ 6 +ระทวย 6 +ระบัด 6 +ระเหระหน 6 +ระแวดระวัง 6 +ระโยงระยาง 6 +รักษาการ 6 +รัย 6 +ราชองครักษ์ 6 +รำเท้า 6 +ริบหรี่ 6 +ริมๆ 6 +รีบๆ 6 +ร่อย 6 +ร่อแร่ 6 +ร้อก 6 +ลงพุง 6 +ลงรอยกัน 6 +ลบล้าง 6 +ลอกเลียน 6 +ลองเชิง 6 +ลอยแก้ว 6 +ละมุนละไม 6 +ละหาน 6 +ลักษณาการ 6 +ลับๆ 6 +ลางที 6 +ลางๆ 6 +ลายพาดกลอน 6 +ลำกล้อง 6 +ลำมาบ 6 +ลิฟต์ 6 +ลุกลน 6 +ลุ่ย 6 +ลูกดิ่ง 6 +ลูกทุ่ง 6 +ลูกหนู 6 +ลูกเจี๊ยบ 6 +ล่อกแล่ก 6 +ล่องแก่ง 6 +ล้มละลาย 6 +วงศ์ๆ 6 +วงษ์ 6 +วัลลภ 6 +วากยสัมพันธ์ 6 +วางเฉย 6 +วิชัย 6 +วิทยาธร 6 +วิทวัส 6 +วิสามัญ 6 +วิหารคด 6 +วิโยค 6 +วิ่น 6 +วู้ 6 +ศยะ 6 +ศาลสถิตยุติธรรม 6 +สงค์ 6 +สมรรถนะ 6 +สมิต 6 +สมเกียรติ 6 +สยุมพร 6 +สลา 6 +สวนสนาม 6 +สวบ 6 +สวมกอด 6 +สวิตช์ 6 +สองใจ 6 +สะคราญ 6 +สะดุดหู 6 +สะตือ 6 +สักขี 6 +สักว่า 6 +สังกัด 6 +สัญญาบัตร 6 +สัปปะ 6 +สัมพันธมิตร 6 +สาบๆ 6 +สายการบิน 6 +สายฟ้า 6 +สายสัมพันธ์ 6 +สารทุกข์สุกดิบ 6 +สาระพา 6 +สาระแน 6 +สาสม 6 +สำเริง 6 +สินค้าออก 6 +สินทรัพย์ 6 +สิ่ว 6 +สีกา 6 +สีชัง 6 +สีหราช 6 +สุดยอด 6 +สุต 6 +สุธารส 6 +สุริยุปราคา 6 +สุสาน 6 +สูติกรรม 6 +สูติแพทย์ 6 +สูรย์ 6 +หนังสะติ๊ก 6 +หน้าแข้ง 6 +หมวดๆ 6 +หมอไทย 6 +หมายตา 6 +หยักๆ 6 +หยาดเหงื่อ 6 +หริ่ง 6 +หลอดลม 6 +หลัว 6 +หลาบจำ 6 +หลิ่วตา 6 +หลู่ 6 +หวั่นหวาด 6 +หอมแดง 6 +หัวหมุน 6 +หัวแข็ง 6 +หิด 6 +หุนหัน 6 +หูตึง 6 +อกรรมกริยา 6 +อกุศล 6 +อดนม 6 +อดีตสมัย 6 +อนิจกรรม 6 +อนุกรม 6 +อนุกูล 6 +อบาย 6 +อภิธาน 6 +อภิรมย์ 6 +อรทัย 6 +อสนี 6 +อสุรกาย 6 +ออกทุน 6 +ออกท่า 6 +ออกฤทธิ์ 6 +ออกหน้าออกตา 6 +อะบอร์ชั่น 6 +อัชฌา 6 +อัดแอ 6 +อากัปกิริยา 6 +อางขนาง 6 +อาจจะ 6 +อาชญากร 6 +อาชาไนย 6 +อาดูร 6 +อาถรรพณ์ 6 +อารีอารอบ 6 +อำมหิต 6 +อินัง 6 +อึงคะนึง 6 +อึด 6 +อุดอู้ 6 +อุ้มท้อง 6 +อู๊ด 6 +อ่อ 6 +อ่อนตัว 6 +อ้อแอ้ 6 +ฮึก 6 +เกตุ 6 +เกมส์ 6 +เกรียบ 6 +เกลื้อน 6 +เกษียณ 6 +เกาลัด 6 +เกียด 6 +เกี๊ยว 6 +เกือบๆ 6 +เขมือบ 6 +เขม่น 6 +เขื่องๆ 6 +เคมี 6 +เครื่องครัว 6 +เครื่องวัด 6 +เคลื่อนคลาด 6 +เงยๆ 6 +เจตนารมณ์ 6 +เจ้าหนี้ 6 +เชิดหน้าชูตา 6 +เช่นนั้นๆ 6 +เซียน 6 +เฒ่าแก่ 6 +เดินรถ 6 +เตาอบ 6 +เตือนตา 6 +เต็นท์ 6 +เต็มเหยียด 6 +เต่าดำ 6 +เต้าหู้ 6 +เถาะ 6 +เทพี 6 +เทวโลก 6 +เทอระพิวธิค 6 +เทียนพรรษา 6 +เทโพ 6 +เนือง 6 +เน่าๆ 6 +เบญจรงค์ 6 +เบนซ์ 6 +เบรค 6 +เปรื่อง 6 +เปล้า 6 +เปี๊ยก 6 +เป็นจริงเป็นจัง 6 +เป็นชิ้นเป็นอัน 6 +เป็นอยู่ 6 +เป๊ก 6 +เป๊าะ 6 +เฝ้าแหน 6 +เพ็ง 6 +เภสัชกร 6 +เยง 6 +เยอรมนี 6 +เยี่ยว 6 +เรรวน 6 +เริ้ม 6 +เรือขนาน 6 +เรืองนาม 6 +เรื้อง 6 +เร่า 6 +เลี่ยงๆ 6 +เลี่ยน 6 +เลือดเนื้อเชื้อไข 6 +เลือดเย็น 6 +เลือนๆ 6 +เลื่อม 6 +เล่นตัว 6 +เล่นเพื่อน 6 +เวช 6 +เศวต 6 +เศวตฉัตร 6 +เสนหา 6 +เสน่ง 6 +เสบย 6 +เสียการ 6 +เสียน้ำใจ 6 +เสียเด็ก 6 +เสือกินวัว 6 +เส้นขนาน 6 +เส้นตรง 6 +เหมาะๆ 6 +เหม็นๆ 6 +เหลวๆ 6 +เหลือม 6 +เหล่ากอ 6 +เหวอะ 6 +เหว่ 6 +เหียน 6 +เอกฉันท์ 6 +เอนเอียง 6 +เอาเป็นธุระ 6 +เอี๊ยด 6 +เอื่อยๆ 6 +เอเชียตะวันออกเฉียงใต้ 6 +เอ๊ 6 +แก๊ง 6 +แขม 6 +แครง 6 +แจ๊ด 6 +แจ๋วแหวว 6 +แชะ 6 +แช่อิ่ม 6 +แซ่ด 6 +แตกดับ 6 +แถบสี 6 +แนวป่า 6 +แนวรบ 6 +แปล้ 6 +แผงคอ 6 +แฝก 6 +แพรว 6 +แม่ปะ 6 +แรงม้า 6 +แล่ง 6 +แวน 6 +แสดๆ 6 +แสนงอน 6 +แสยง 6 +แหวะ 6 +แอ้ 6 +โกงกาง 6 +โกญจนาท 6 +โกฏิ 6 +โกล์ 6 +โก้งโค้ง 6 +โขก 6 +โขมด 6 +โครงการหลวง 6 +โงนเงน 6 +โฉมตรู 6 +โซรม 6 +โดดๆ 6 +โดนัท 6 +โดยจริง 6 +โตงเตง 6 +โต๊ก 6 +โพทะเล 6 +โพธาราม 6 +โพธิญาณ 6 +โภชนา 6 +โมรา 6 +โม้ด 6 +โรงเรือน 6 +โร่ 6 +โล้น 6 +โว่ 6 +โหนก 6 +โอนเอน 6 +โอฬาร 6 +โอ๊ะ 6 +โฮะ 6 +ใจจดใจจ่อ 6 +ใจเพชร 6 +ใส่ยา 6 +ไกรสร 6 +ไก่ชน 6 +ไข่ขาว 6 +ไข่เค็ม 6 +ไตรภพ 6 +ไทยน้อย 6 +ไปล่ 6 +ไพรสัณฑ์ 6 +ไพล 6 +ไม้ยาวๆ 6 +ไลย 6 +ไลแลค 6 +ไล้ 6 +ไว้เนื้อเชื่อใจ 6 +ไหปลาร้า 6 +ไอศวรรย์ 6 +กฎแห่งกรรม 5 +กนิษฐา 5 +กรรฐ์ 5 +กรอกแกรก 5 +กระจิบ 5 +กระจุยกระจาย 5 +กระชาย 5 +กระซิกๆ 5 +กระต๊อบ 5 +กระบวย 5 +กระสาย 5 +กระหมวด 5 +กระเจิดกระเจิง 5 +กระเทือนใจ 5 +กระแสรับสั่ง 5 +กรี 5 +กรีธาทัพ 5 +กรุ่ง 5 +กรุ่นๆ 5 +กร้วม 5 +กลศึก 5 +กลาโหม 5 +กล่น 5 +กล้องถ่ายรูป 5 +กสิกรรม 5 +กองๆ 5 +กอบกู้ 5 +กะล่อน 5 +กะโผลกกะเผลก 5 +กังๆ 5 +กัดๆ 5 +กันสาด 5 +กัลบก 5 +กัลปพฤกษ์ 5 +กัลปังหา 5 +กั้ง 5 +กั๊ก 5 +กานท์ 5 +กานพลู 5 +กาฟักไข่ 5 +กามา 5 +กำจาย 5 +กิจจานุกิจ 5 +กินสำรับ 5 +กุณฑล 5 +ก็แล้วไป 5 +ก่อกวน 5 +ก้าม 5 +ขนบ 5 +ขนบประเพณี 5 +ขบวนการ 5 +ขวน 5 +ขวัญอ่อน 5 +ขอก 5 +ของขลัง 5 +ของสด 5 +ขอนแก่น 5 +ขัดแค้น 5 +ขันๆ 5 +ขับพล 5 +ขั้นสูง 5 +ขาดตลาด 5 +ขาดลอย 5 +ขาดอาหาร 5 +ขี้ทูด 5 +ขี้ม้า 5 +ขี้เล่น 5 +ขี้เหล็ก 5 +ขึ้นร้าน 5 +ขุนน้ำ 5 +ข่มขี่ 5 +ข้าวสาลี 5 +ข้าเฝ้า 5 +คณาจารย์ 5 +คนรวย 5 +คนรวยๆ 5 +คนสวน 5 +คนโท 5 +คบเพลิง 5 +คมกล้า 5 +ครามครัน 5 +คราวๆ 5 +ครืดๆ 5 +ครุ่น 5 +คร่ำเคร่ง 5 +คฤนถ์ 5 +คลึงเคล้า 5 +คลื่นเหียน 5 +คลื่นไส้ 5 +คับใจ 5 +คั่ง 5 +คาดไม่ถึง 5 +คาทอลิก 5 +คาบเกี่ยว 5 +คาร์ป 5 +คึ่ก 5 +คุณูปการ 5 +คุดทะราด 5 +คุมกำเนิด 5 +คู่บ้านคู่เมือง 5 +คู่ปรับ 5 +ค่างๆ 5 +ค่าปรับ 5 +ค้อนๆ 5 +ค้ำชู 5 +งกๆ 5 +งงงัน 5 +งอหาย 5 +ง่วงเหงา 5 +ง่วงๆ 5 +ง่อน 5 +จรจรัล 5 +จรรยาบรรณ 5 +จริ๊ง 5 +จรุงใจ 5 +จอมขวัญ 5 +จอมทัพ 5 +จัดวาง 5 +จัดๆ 5 +จัตุ 5 +จันทน์กะพ้อ 5 +จับกัง 5 +จับระบำ 5 +จั้กๆ 5 +จามรี 5 +จาระไน 5 +จินดามณี 5 +จินต์ 5 +จิ้งเหลน 5 +จีรัง 5 +จ่อม 5 +ฉงาย 5 +ฉัตรมงคล 5 +ฉาบฉวย 5 +ฉิบ 5 +ฉ่า 5 +ชนัก 5 +ชบา 5 +ชลาลัย 5 +ชวาลา 5 +ชะเอม 5 +ชักพระ 5 +ชัยพฤกษ์ 5 +ชั่วนาตาปี 5 +ชาคริต 5 +ชาติภูมิ 5 +ชิงช้าสวรรค์ 5 +ชิงดีชิงเด่น 5 +ชีววิทยา 5 +ชี้นำ 5 +ชื่อเล่น 5 +ชู้ 5 +ช้างพัง 5 +ซมซาน 5 +ซวย 5 +ซอส 5 +ซังตาย 5 +ซัดทอด 5 +ซับพระพักตร์ 5 +ซินแส 5 +ซึก 5 +ซึมทราบ 5 +ซ้ำรอย 5 +ดรุณ 5 +ดอกพุด 5 +ดอกหมาก 5 +ดาวพุธ 5 +ดินเนอร์ 5 +ดื่นๆ 5 +ดื้อด้าน 5 +ดุลยภาพ 5 +ดูดซึม 5 +ดูดู๋ 5 +ด้ง 5 +ด้วยๆ 5 +ด้าว 5 +ตกว่า 5 +ตกอกตกใจ 5 +ตรวน 5 +ตรู 5 +ตะกร้อ 5 +ตะเพียนทอง 5 +ตับเต่า 5 +ตัวพระ 5 +ตัวพิมพ์ 5 +ตาทวด 5 +ตามมีตามเกิด 5 +ตาลอย 5 +ตาหนู 5 +ตาเดียว 5 +ตำหนักแพ 5 +ติดต่อสื่อสาร 5 +ติดสอยห้อยตาม 5 +ติว 5 +ติ๊ก 5 +ตีหน้า 5 +ตีแปลง 5 +ตึงๆ 5 +ตึ้กตั้ก 5 +ตุลย์ 5 +ตูบ 5 +ต่อตาม 5 +ต่อปากต่อคำ 5 +ต่าย 5 +ต้นแบบ 5 +ต้มกะทิ 5 +ถกล 5 +ถลุง 5 +ถั่ง 5 +ถึก 5 +ถึงฆาต 5 +ถุงย่าม 5 +ถูกคอ 5 +ถูกชะตา 5 +ถูกตา 5 +ถูกอกถูกใจ 5 +ถ่าง 5 +ถ่านหิน 5 +ทรลักษณ์ 5 +ทรายแก้ว 5 +ทศนิยม 5 +ทอก 5 +ทองดำ 5 +ทอดผ้าป่า 5 +ทอดอาลัย 5 +ทะเล้น 5 +ทันตแพทย์ 5 +ทัศนียภาพ 5 +ทิ่มตำ 5 +ทิ่มแทง 5 +ทิ้งทาน 5 +ท่อไอเสีย 5 +ท้องเดิน 5 +ท้ายทอย 5 +ธนาณัติ 5 +ธรรมยุทธ์ 5 +ธัมมะ 5 +ธานินทร์ 5 +ธารกำนัล 5 +ธารณะ 5 +ธีรราช 5 +นกจาก 5 +นครเชียงใหม่ 5 +นง 5 +นท 5 +นรา 5 +นวลๆ 5 +นอนกิน 5 +นอบ 5 +นักคิด 5 +นักดาราศาสตร์ 5 +นักสนม 5 +นัมเบอร์ 5 +นัยน์ 5 +นานแสนนาน 5 +นาว 5 +นิติธรรม 5 +น้ำดอกไม้เทศ 5 +น้ำสังข์ 5 +น้ำหนึ่ง 5 +น้ำๆ 5 +บงกช 5 +บรมบพิตร 5 +บรรพชิต 5 +บล็อก 5 +บอกปัด 5 +บังหน้า 5 +บัส 5 +บาทมูล 5 +บาหลี 5 +บุณฑริก 5 +บุพการี 5 +บุพเพสันนิวาส 5 +บุ่มบ่าม 5 +บูด 5 +บูร 5 +บูรณาการ 5 +บ่อเกิด 5 +บ้านๆ 5 +ปกรณัม 5 +ปฏิมากร 5 +ปฏิรูป 5 +ปฐมพยาบาล 5 +ปรมาจารย์ 5 +ปรอท 5 +ประคบประหงม 5 +ประจุ 5 +ประชาชาติ 5 +ประทาย 5 +ประมวลกฎหมาย 5 +ประเดี๋ยวๆ 5 +ปรักปรำ 5 +ปราดเปรื่อง 5 +ปริญญาเอก 5 +ปรื๋อ 5 +ปรูด 5 +ปฤจฉาสรรพนาม 5 +ปลายมือ 5 +ปลีก 5 +ปล่อยปละละเลย 5 +ปะติดปะต่อ 5 +ปะรำ 5 +ปักกิ่ง 5 +ปักษา 5 +ปักษิน 5 +ปัญญาอ่อน 5 +ปั๊บ 5 +ปากร้าย 5 +ปาวๆ 5 +ปิงปอง 5 +ปีการศึกษา 5 +ปุด 5 +ปูชนียบุคคล 5 +ปูทะเล 5 +ปูนปั้น 5 +ปูนแดง 5 +ป่าๆ 5 +ป้าบๆ 5 +ป้าๆ 5 +ผก 5 +ผงชูรส 5 +ผลา 5 +ผอมแห้ง 5 +ผาง 5 +ผิดนัก 5 +ผึ่งผาย 5 +ผู้ค้า 5 +ผู้ฝึกสอน 5 +ผู้สอบ 5 +ผ่อนปรน 5 +ผ้าดิบ 5 +ผ้าพันคอ 5 +ผ้าพันแผล 5 +ฝากผี 5 +ฝ่อ 5 +พจนา 5 +พด 5 +พรรคการเมือง 5 +พระนคร 5 +พระบรมราชินี 5 +พระพิมพ์ 5 +พริ้ว 5 +พรึง 5 +พร่ำเพรื่อ 5 +พลตรี 5 +พลั่ก 5 +พลั้งปาก 5 +พลางๆ 5 +พลิกฟื้น 5 +พลีกรรม 5 +พลเอก 5 +พอใช้ได้ 5 +พะนอ 5 +พะเนิน 5 +พังงา 5 +พัชนี 5 +พัสถาน 5 +พาณิช 5 +พาทย์ 5 +พาราลิมปิก 5 +พาเหียร 5 +พิมพ์ดีด 5 +พื้นความรู้ 5 +พุทธศตวรรษ 5 +พู่ระหง 5 +พ่าน 5 +ฟองมัน 5 +ฟันน้ำนม 5 +ฟิสิกส์ 5 +ภาคพื้น 5 +ภาพประกอบ 5 +ภิกขุ 5 +ภูบาล 5 +มณฑก 5 +มลิน 5 +มหากาฬ 5 +มะม่วงหิมพานต์ 5 +มะริด 5 +มะเดื่อ 5 +มะแว้ง 5 +มัชฌิมประเทศ 5 +มัวซัว 5 +มัวๆ 5 +มัสสุ 5 +มารค 5 +มิติ 5 +มึนตึง 5 +มือลิง 5 +มุกดาหาร 5 +มุดหัว 5 +มูนมอง 5 +ยนตร์ 5 +ยวบยาบ 5 +ยักย้าย 5 +ยักเยื้อง 5 +ยาด 5 +ยาวรี 5 +ยำเยง 5 +ยิหวา 5 +ยีนส์ 5 +ยี้ 5 +ยืดยาด 5 +ยุคเข็ญ 5 +ยุบล 5 +ย่องเบา 5 +ย่อมเยา 5 +ย่านลิเภา 5 +รท 5 +รบรา 5 +รมควัน 5 +รวดเดียว 5 +ระหาย 5 +ระเริง 5 +ระเรื่อ 5 +ระโหย 5 +ราชดำเนิน 5 +ราชยาน 5 +ราชสกุล 5 +ริอ่าน 5 +รีบด่วน 5 +รื้อฟื้น 5 +รุกขชาติ 5 +รุด 5 +รุทธ์ 5 +รุ่ม 5 +รูจี 5 +ลงรัก 5 +ลงสนาม 5 +ลดราวาศอก 5 +ลบรอย 5 +ลมร้อน 5 +ลอยนวล 5 +ละลอก 5 +ลัพธ์ 5 +ลำดวน 5 +ลิ้นลม 5 +ลีลาศ 5 +ลืมตน 5 +ลืมๆ 5 +ลูกขวัญ 5 +ล่มสลาย 5 +ล้นหลาม 5 +ล้มคว่ำ 5 +ล้อเลื่อน 5 +วงกต 5 +วงนอก 5 +วอชิงตัน 5 +วาตภัย 5 +วิพากษ์ 5 +วิภัตติ 5 +วิ่งผลัด 5 +วิ่งวิบาก 5 +ว่ากล่าว 5 +ว่านอนสอนง่าย 5 +ว่านเครือ 5 +ว่าๆ 5 +ศรีเมือง 5 +ศาลฎีกา 5 +ศาสนิกชน 5 +ศิลปาชีพ 5 +ศูนย์เยาวชน 5 +สติสัมปชัญญะ 5 +สถาปนิก 5 +สนับเพลา 5 +สนับแข้ง 5 +สนามฟุตบอล 5 +สภากาชาด 5 +สมถะ 5 +สมรู้ 5 +สมาทาน 5 +สมุดไทย 5 +สมุห์ 5 +สมเด็จเจ้าพระยา 5 +สยบ 5 +สยม 5 +สยาย 5 +สฤษดิ์ 5 +สวยหรู 5 +สวะ 5 +สอดใส่ 5 +สะตอ 5 +สะบัดมือ 5 +สังกา 5 +สังคมนิยม 5 +สัตวโลก 5 +สับเปลี่ยน 5 +สัปคับ 5 +สาคู 5 +สางๆ 5 +สาธารณ์ 5 +สามานย์ 5 +สารตรา 5 +สารัตถะ 5 +สำมะเลเทเมา 5 +สำเร็จโทษ 5 +สิ้นเนื้อประดาตัว 5 +สี่เหลี่ยมจัตุรัส 5 +สึกหรอ 5 +สืบราชสมบัติ 5 +สุกงอม 5 +สุดวิสัย 5 +สุดๆ 5 +สุมทุม 5 +สุราบาน 5 +สูจิบัตร 5 +สูสี 5 +ส่งเสริมการลงทุน 5 +ส่งๆ 5 +ส้าง 5 +หนักอก 5 +หนังสือเดินทาง 5 +หน้าด้าน 5 +หน้าม่อย 5 +หน้าเซียว 5 +หน้าเตา 5 +หมดกัน 5 +หมดเปลือก 5 +หมวกแก๊ป 5 +หมอลำ 5 +หมากเก็บ 5 +หมางใจ 5 +หมิ่นเหม่ 5 +หย่อย 5 +หย่าร้าง 5 +หลน 5 +หลอดไฟ 5 +หละหลวม 5 +หลิว 5 +หลิ่ว 5 +หลุดพ้น 5 +หวอด 5 +หวือ 5 +หัวขาด 5 +หัวขโมย 5 +หัวนอนปลายตีน 5 +หัวโจก 5 +หางนกยูง 5 +หางเสียง 5 +หายกัน 5 +หุน 5 +หุ่นไล่กา 5 +หูไวตาไว 5 +ห้องทำงาน 5 +องครักษ์ 5 +อดิศร 5 +อนุวงศ์ 5 +อนุศาสน์ 5 +อภินันทนาการ 5 +อยู่คง 5 +อยู่อาศัย 5 +อวล 5 +อวสัย 5 +อสงไขย 5 +อหิ 5 +ออกหาก 5 +ออกเรือน 5 +ออเซาะ 5 +อัตราส่วน 5 +อันทุ 5 +อับเฉา 5 +อั้ก 5 +อาชีวศึกษา 5 +อาตมภาพ 5 +อานม้า 5 +อินทรียสาร 5 +อินเดียน 5 +อึ่ง 5 +อื่ม 5 +อื๋อ 5 +อุปมาอุปไมย 5 +อุปมาโวหาร 5 +อุษา 5 +อุเบกขา 5 +อุ่นหนาฝาคั่ง 5 +อูม 5 +อ่อม 5 +อ่างทอง 5 +อ่างเก็บน้ำ 5 +อ้อมอก 5 +อ้ำ 5 +อ๋า 5 +ฮี้ 5 +ฮึกเหิม 5 +ฮูหยิน 5 +ฮ่ะ 5 +เกลา 5 +เกียจ 5 +เกียรติภูมิ 5 +เกี่ยวก้อย 5 +เก็บเล็กผสมน้อย 5 +เก้ๆ 5 +เก๋า 5 +เขยื้อน 5 +เขฬะ 5 +เขินๆ 5 +เขี้ยวงู 5 +เข้าถ้ำ 5 +เข้าที่ 5 +เข้าเนื้อ 5 +เครื่องต้น 5 +เครื่องปั้นดินเผา 5 +เครื่องไม้ 5 +เคล้น 5 +เควี้ยว 5 +เงินก้นถุง 5 +เงินปลีก 5 +เงินยวง 5 +เจนจัด 5 +เจริญพร 5 +เจริญรอย 5 +เจื้อย 5 +เจ็ก 5 +เจ็บท้อง 5 +เจ้าขุนมูลนาย 5 +เจ้าจอม 5 +เจ้าทุกข์ 5 +เจ้าพายุ 5 +เฉลา 5 +เฉื่อยๆ 5 +เชตุพน 5 +เช่าซื้อ 5 +เซฟ 5 +เดียดฉันท์ 5 +เดี่ยวๆ 5 +เดือนร้อน 5 +เต็มบ้านเต็มเมือง 5 +เต็มยศ 5 +เถลิง 5 +เทริด 5 +เนรคุณ 5 +เนื้อคู่ 5 +เนื้อๆ 5 +เบรก 5 +เบาความ 5 +เบาหวาน 5 +เบาะแส 5 +เบี้ยว 5 +เปรื่องปราด 5 +เปลี่ยนตัว 5 +เปี๊ยะ 5 +เป็นตัวเป็นตน 5 +เป็นปากเสียง 5 +เป๋า 5 +เผลอไผล 5 +เผียะ 5 +เพจ 5 +เพลงหน้าพาทย์ 5 +เพล้ง 5 +เฟื้อย 5 +เภสัช 5 +เมฆา 5 +เมนู 5 +เมามัว 5 +เมาลี 5 +เยียบ 5 +เย็นชืด 5 +เรี่ยม 5 +เรือนฝากระดาน 5 +เลขคณิต 5 +เลขหมาย 5 +เลียบค่าย 5 +เลเซอร์ 5 +เล่นลิ้น 5 +เล่าๆ 5 +เล้ง 5 +เสกสรร 5 +เสม็ด 5 +เสี่ยงๆ 5 +เสี้ยมสอน 5 +เส้นผ่าศูนย์กลาง 5 +เส้นลวด 5 +เหมือนหนึ่งว่า 5 +เหลน 5 +เหลาะแหละ 5 +เหลือขอ 5 +เหลือแหล่ 5 +เหล่ 5 +เหวี่ยงแห 5 +เหือดหาย 5 +เหือดแห้ง 5 +เออน่ะ 5 +เอื้อง 5 +เอ๋งๆ 5 +แกงร้อน 5 +แกร็น 5 +แกร่ว 5 +แก้หน้า 5 +แก้เผ็ด 5 +แขวนคอ 5 +แค่น 5 +แฉลบ 5 +แฉะๆ 5 +แฉ่ 5 +แตกๆ 5 +แบตเตอรี่ 5 +แผลเป็น 5 +แพร้ว 5 +แพ่ง 5 +แฟล็ต 5 +แม่กอง 5 +แม่ผัว 5 +แม่สื่อ 5 +แม่แรง 5 +แม้ว 5 +แรงดัน 5 +แว่นๆ 5 +แสลงใจ 5 +แหว 5 +แห่ห้อม 5 +แอม 5 +แอโรบิก 5 +โกงโก้ 5 +โกสน 5 +โฉ 5 +โด่ง 5 +โตเกียว 5 +โถส้วม 5 +โทรพิมพ์ 5 +โปน 5 +โปร่งใส 5 +โปสการ์ด 5 +โป๊ก 5 +โมกข์ 5 +โมหันธ์ 5 +โยนก 5 +โลกบาล 5 +โลเล 5 +โสม 5 +โหม่ง 5 +โหราจารย์ 5 +โหวกๆ 5 +โอม 5 +โอรสา 5 +โฮก 5 +ใจเบา 5 +ใจโต 5 +ใบตาล 5 +ใบรับ 5 +ได้ความ 5 +ได้เสีย 5 +ไต่เต้า 5 +ไต๋ 5 +ไทยธรรม 5 +ไปทุ่ง 5 +ไปๆมาๆ 5 +ไผท 5 +ไพจิตร 5 +ไฟกัลป์ 5 +ไม่ก็ 5 +ไม้จัตวา 5 +ไม้โท 5 +ไรฟัน 5 +ไว้ทุกข์ 5 +ไหว้วาน 5 +ไอตัว 5 +ไอติม 5 +ไอยรา 5 +ไอศูรย์ 5 +ไฮ้ 5 +กงสุล 4 +กรณีย์ 4 +กรมตำรวจ 4 +กรอบรูป 4 +กระจับ 4 +กระจิริด 4 +กระดาษทราย 4 +กระด้างกระเดื่อง 4 +กระถด 4 +กระพัง 4 +กระสือ 4 +กระหนก 4 +กระหย่ง 4 +กระออม 4 +กระเตื้อง 4 +กระเพาะปลา 4 +กระเสาะกระแสะ 4 +กระแทกกระทั้น 4 +กระแบะ 4 +กระโจมอก 4 +กรัม 4 +กรากๆ 4 +กริ่งใจ 4 +กริ๊ง 4 +กรีฑาสถาน 4 +กรุ้มกริ่ม 4 +กฤติกา 4 +กลาก 4 +กลาดเกลื่อน 4 +กล่อน 4 +กวนตีน 4 +กษณะ 4 +กสิกร 4 +กอก 4 +กองพัน 4 +กองเรือ 4 +กอและ 4 +กักกัน 4 +กักตัว 4 +กัญญา 4 +กันชน 4 +กันภัย 4 +กัป 4 +กั่น 4 +กายสิทธิ์ 4 +กาฬสินธุ์ 4 +กำเหน็จ 4 +กินแหนง 4 +กิเลน 4 +กึง 4 +กุก 4 +กุมารี 4 +กุลสตรี 4 +กุ้งฝอย 4 +ก่อร่างสร้างตัว 4 +ก้านบัว 4 +ก้ามกราม 4 +ก้าวล่วง 4 +ขมิ้นชัน 4 +ขยอก 4 +ขรึมๆ 4 +ขลุบ 4 +ขวยเขิน 4 +ขวาก 4 +ของกอง 4 +ของเก่าๆ 4 +ของๆ 4 +ขอที 4 +ขอเฝ้า 4 +ขันต่อ 4 +ขั้นต่ำ 4 +ขาดเม็ด 4 +ขาบ 4 +ขีดข่วน 4 +ขีดๆ 4 +ขึ้ง 4 +ขึ้งโกรธ 4 +ขึ้นหา 4 +ขุนพล 4 +ขุ่นหมอง 4 +ขู่เข็ญ 4 +ข้นแค้น 4 +ข้อปลีกย่อย 4 +ข้อแม้ 4 +ข้าวคำ 4 +ข้าวฟ่าง 4 +ข้าๆ 4 +คชลักษณ์ 4 +คตินิยม 4 +คทา 4 +คนจริงๆ 4 +คนธรรพ์ 4 +คนใน 4 +คมสัน 4 +ครรไล 4 +ครั้งๆ 4 +ครำ 4 +ครืด 4 +คร่ำเครียด 4 +คลับคล้าย 4 +คลินิก 4 +ควีนส์ 4 +คว้าไขว่ 4 +คัว 4 +คั่งแค้น 4 +คาราคาซัง 4 +คาร์บอนมอนอกไซด์ 4 +คาร์บอนไดออกไซด์ 4 +คำนำหน้าชื่อ 4 +คำประสม 4 +คิดการใหญ่ 4 +คิดตก 4 +คิว 4 +คืนคำ 4 +คุ้นๆ 4 +คู่คิด 4 +คู่อริ 4 +ค้อนควัก 4 +ค้ำคอ 4 +ฆ้องกระแต 4 +งวยงง 4 +งอนง้อ 4 +งั่ง 4 +งำ 4 +จงเกลียดจงชัง 4 +จดจ้อง 4 +จมปลัก 4 +จล 4 +จอน 4 +จอหนัง 4 +จักรๆ 4 +จัดเลี้ยง 4 +จันทน์ผา 4 +จันทน์แดง 4 +จั๊กๆ 4 +จารีตประเพณี 4 +จิ่ง 4 +จิ้มลิ้ม 4 +จิ๊ก 4 +จีบปากจีบคอ 4 +จี๊ป 4 +จืดจาง 4 +จุดจบ 4 +จุดรวม 4 +จุดๆ 4 +จุบๆ 4 +จุลสาร 4 +จุ้ม 4 +จ้วงจาบ 4 +จ๊าบ 4 +จ๋อง 4 +ฉลับ 4 +ฉิมพลี 4 +ฉี่ 4 +ฉุกใจ 4 +ฉู่ฉี่ 4 +ชฎิล 4 +ชนา 4 +ชมชัว 4 +ชมนาด 4 +ชวนหัว 4 +ชวนเชิญ 4 +ชะอ้อน 4 +ชันๆ 4 +ชั่งใจ 4 +ชาร์ป 4 +ชาววัง 4 +ชิ้นส่วน 4 +ชีพิตักษัย 4 +ชีวาตม์ 4 +ชีวาลัย 4 +ชื่อดัง 4 +ช่วยๆ 4 +ช่องแคบ 4 +ช่ำ 4 +ซอลต์ 4 +ซุปเปอร์ 4 +ซ่อนเงื่อน 4 +ฐานข้อมูล 4 +ดอกเล็กๆ 4 +ดอกไม้จีน 4 +ดักแด้ 4 +ดัดจริต 4 +ดันทุรัง 4 +ดาดาษ 4 +ดารดาษ 4 +ดิก 4 +ดินสำลี 4 +ดีซ่าน 4 +ดึงดื้อ 4 +ดุษฎีสังเวย 4 +ดุษณีภาพ 4 +ด่างพร้อย 4 +ตกกระ 4 +ตง 4 +ตรลบ 4 +ตรึงตรา 4 +ตรุษจีน 4 +ตอนต้นๆ 4 +ตอร์ปิโด 4 +ตะกรวย 4 +ตะขบ 4 +ตะคัน 4 +ตะนอย 4 +ตะนาว 4 +ตะปุ่มตะป่ำ 4 +ตะเข็บ 4 +ตะเฆ่ 4 +ตะแบงมาน 4 +ตะโก 4 +ตะโพน 4 +ตักตวง 4 +ตักๆ 4 +ตัดไฟ 4 +ตากอากาศ 4 +ตาตี่ 4 +ตานี 4 +ตาบ 4 +ติดสินบน 4 +ติดอ่าง 4 +ติลก 4 +ตีชิง 4 +ตีนๆ 4 +ตีลังกา 4 +ตีวง 4 +ตีหน้ายักษ์ 4 +ตุง 4 +ตุนาหงัน 4 +ตุหรัดตุเหร่ 4 +ตุ้บตั้บ 4 +ต่อความยาวสาวความยืด 4 +ต่อแต้ม 4 +ต่างด้าว 4 +ต่ำสุด 4 +ต้นมือ 4 +ต้วมเตี้ยม 4 +ต้อยๆ 4 +ถดถอย 4 +ถอนสมอ 4 +ถอนเงิน 4 +ถึงที่ 4 +ถึงแก่มรณภาพ 4 +ถือน้ำพระพิพัฒน์สัตยา 4 +ถือสา 4 +ถือหาง 4 +ถุงมือ 4 +ถ่างตา 4 +ถ่านไม้ 4 +ถ่ายอุจจาระ 4 +ทนง 4 +ทระนง 4 +ทวาราวดี 4 +ทศพล 4 +ทหารเลว 4 +ทองหยอด 4 +ทอดมัน 4 +ทะมื่น 4 +ทะเลหลวง 4 +ทายา 4 +ทำลายขวัญ 4 +ทำหูทวนลม 4 +ทำเนียม 4 +ทำเวลา 4 +ทิพโสต 4 +ทิศาปาโมกข์ 4 +ทีฆสระ 4 +ที่กิน 4 +ทึบๆ 4 +ทึมๆ 4 +ทุนหมุนเวียน 4 +ทุพพลภาพ 4 +ทูบ 4 +ท่วงท่า 4 +ท่องบ่น 4 +ท้องตรา 4 +ท้าง 4 +ท้าชิง 4 +ท้าวพญา 4 +ท้าวพระยา 4 +ธรณีสูบ 4 +ธรรมกถา 4 +ธัญ 4 +นฤพาน 4 +นวลจันทร์ 4 +นวลละออง 4 +นอกรีต 4 +นอกๆ 4 +นักข่าว 4 +นักปกครอง 4 +นักฟุตบอล 4 +นักษัตร 4 +นัจ 4 +นัยๆ 4 +นัว 4 +นั่งกินนอนกิน 4 +นาซี 4 +นำสมัย 4 +นิครนถ์ 4 +นิติศาสตร์ 4 +นิลุบล 4 +นิวาส 4 +นิสีทนะ 4 +นิเทศ 4 +น่วม 4 +น่าตกใจ 4 +น้ำซึม 4 +น้ำดับไฟ 4 +น้ำประปา 4 +น้ำมันดีเซล 4 +น้ำรัก 4 +น้ำส้ม 4 +บทบัญญัติ 4 +บรรณ 4 +บรรณศาลา 4 +บรรโลม 4 +บริหารงาน 4 +บร็อนซ์ 4 +บอกบท 4 +บอง 4 +บอสตัน 4 +บัตรหมาย 4 +บันโดย 4 +บันไดเลื่อน 4 +บั่นทอน 4 +บั้น 4 +บาทๆ 4 +บิดเบี้ยว 4 +บิลเลียด 4 +บุญญานุภาพ 4 +บุณย์ 4 +บุพกรรม 4 +บุรินทร์ 4 +บุรีรัมย์ 4 +บุหรง 4 +บูรณ์ 4 +บ่นถึง 4 +บ้วนพระโอษฐ์ 4 +บ้าจี้ 4 +บ้าย 4 +ปกรณ์ 4 +ปการ 4 +ปฐมภูมิ 4 +ปฐวี 4 +ปรบ 4 +ปรมาภิไธย 4 +ปรวนแปร 4 +ปรอยๆ 4 +ประจวบฯ 4 +ประจักษ์พยาน 4 +ประชาคม 4 +ประดาน้ำ 4 +ประทับตรา 4 +ประภาษ 4 +ประมาณตน 4 +ประยงค์ 4 +ประหัต 4 +ประเด็นๆ 4 +ปรัด 4 +ปรับอากาศ 4 +ปราบดาภิเษก 4 +ปรำ 4 +ปรินซ์ 4 +ปริพาชก 4 +ปรี๊ด 4 +ปรุโปร่ง 4 +ปรู๊ฟ 4 +ปร๊าด 4 +ปลกๆ 4 +ปลดหนี้ 4 +ปลายข้าว 4 +ปลาสติก 4 +ปล่อยใจ 4 +ปล้นทรัพย์ 4 +ปวกเปียก 4 +ปวดแสบปวดร้อน 4 +ปัวะๆ 4 +ปั้นจั่น 4 +ปากกล้า 4 +ปากหวาน 4 +ปากแข็ง 4 +ปาฏิบท 4 +ปานฉะนี้ 4 +ปานๆ 4 +ปิดกั้น 4 +ปีงบประมาณ 4 +ปีเศษๆ 4 +ปึก 4 +ปุราณ 4 +ปูชนียวัตถุ 4 +ป่าเบญจพรรณ 4 +ป๊าบ 4 +ป๋อม 4 +ผดุงครรภ์ 4 +ผทม 4 +ผล็อย 4 +ผสาน 4 +ผันผวน 4 +ผับๆ 4 +ผัสสะ 4 +ผายปอด 4 +ผาเผือก 4 +ผิดน้ำ 4 +ผู้บำเพ็ญตบะ 4 +ผู้สำเร็จ 4 +ผู้ส่ง 4 +ผู้หนึ่ง 4 +ผ่าเหล่า 4 +ฝนเทียม 4 +ฝรั่งๆ 4 +ฝั่งน้ำ 4 +ฝีปาก 4 +ฝ่อๆ 4 +ฝ่ายใน 4 +พจมาน 4 +พม่าๆ 4 +พยุหโยธา 4 +พรหมา 4 +พระมหากระษัตรเจ้า 4 +พระมหากระสัตราธิราช 4 +พรากผู้เยาว์ 4 +พรายแพรว 4 +พรำๆ 4 +พฤนท์ 4 +พลั่ว 4 +พลั้งเผลอ 4 +พลาสมา 4 +พล่า 4 +พวยน้ำ 4 +พังคา 4 +พัดชา 4 +พันตู 4 +พันธะ 4 +พันพัว 4 +พัสดุไปรษณีย์ 4 +พาดหัวข่าว 4 +พาโล 4 +พิกัด 4 +พิบัติ 4 +พิมุข 4 +พิศาล 4 +พีชคณิต 4 +พึ่งพิง 4 +พื้นเสีย 4 +พุกาม 4 +พุดตาน 4 +พุทธมามกะ 4 +พุทโธ่ๆ 4 +พุ่งแหลน 4 +พ้นวิสัย 4 +ฟอสเฟต 4 +ฟั้น 4 +ฟ่อง 4 +ภควา 4 +ภักษา 4 +ภาณุ 4 +ภาพรวม 4 +ภารธุระ 4 +ภาสกร 4 +ภูมิอากาศ 4 +มกุฎ 4 +มณเฑียร 4 +มฤตยู 4 +มล้าง 4 +มหรรณพ 4 +มหาสาวก 4 +มอซอ 4 +มอญๆ 4 +มะกอกน้ำ 4 +มะพร้าวห้าว 4 +มะรุม 4 +มะหาด 4 +มักใหญ่ 4 +มังคโลกาส 4 +มัชฌันติกสมัย 4 +มัลติ 4 +มาตุ 4 +มารวิชัย 4 +มิจฉาทิฐิ 4 +มืดบอด 4 +มื้อๆ 4 +มุกดา 4 +มุสลิม 4 +มูมมาม 4 +มโหระทึก 4 +ม้าเร็ว 4 +ยกเลิก 4 +ยมนา 4 +ยมราช 4 +ยันต์ 4 +ยานอวกาศ 4 +ยาสีฟัน 4 +ยาแฝด 4 +ยิม 4 +ยี่โป้ 4 +ยุคล 4 +ยุพดี 4 +ยุ่งยิ่ง 4 +ยุ่ย 4 +รดๆ 4 +รวมหัว 4 +รวยๆ 4 +รอยๆ 4 +ระดะ 4 +ระทา 4 +ระบิล 4 +ระรี่ 4 +ระหกระเหิน 4 +ระอิดระอา 4 +ระเนระนาด 4 +ระเรื่อย 4 +ระไว 4 +รักษาอยู่ 4 +รังมด 4 +รังไข่ 4 +รัฏฐปาละ 4 +รับเชิญ 4 +ราชภัฏ 4 +ราชินูปถัมภ์ 4 +ราวกะ 4 +ริก 4 +ริกๆ 4 +ร็อค 4 +ร่วมท้อง 4 +ร่อนเร่ 4 +ร่าน 4 +ร้าวราน 4 +ลงท่า 4 +ลงโบสถ์ 4 +ลดา 4 +ลดาวัลย์ 4 +ลมขึ้น 4 +ลอกแลก 4 +ลองไอร์แอนด์ 4 +ลอยฟ้า 4 +ละมุ 4 +ละหมาด 4 +ละเลียด 4 +ลักลอบ 4 +ลัน 4 +ลาดตระเวน 4 +ลายคราม 4 +ลายตา 4 +ลายน้ำ 4 +ลายน้ำทอง 4 +ลำเลิก 4 +ลิด 4 +ลิฟท์ 4 +ลุกๆ 4 +ลุ่น 4 +ลุ่มหลง 4 +ลูกขุน 4 +ลูกบุญธรรม 4 +ลูกฝาแฝด 4 +ลูกฟัก 4 +ลูกหม้อ 4 +ลูกหิน 4 +ล่น 4 +ล่ายๆ 4 +ล่าสุด 4 +ล้มครืน 4 +ล้าต้า 4 +วชิราวุธ 4 +วังสะ 4 +วัณโรค 4 +วัตรปฏิบัติ 4 +วาก 4 +วางมวย 4 +วางโต 4 +วาณิช 4 +วาดเขียน 4 +วาววับ 4 +วาหะ 4 +วิกฤต 4 +วิปโยค 4 +วิภา 4 +วิเสท 4 +วิโรฒ 4 +วิ่งม้า 4 +วีรสตรี 4 +วุ้น 4 +วูบๆ 4 +ศิลปากร 4 +ศุกลปักษ์ 4 +ศุภมัสดุ 4 +ศูทร 4 +ศูนย์การค้า 4 +สกนธ์ 4 +สดี 4 +สต๊อก 4 +สถลมารค 4 +สนองตอบ 4 +สนามกีฬา 4 +สมคบ 4 +สมมต 4 +สมานฉันท์ 4 +สมาบัติ 4 +สมุทรสาคร 4 +สรรพสินค้า 4 +สรรเพชญ 4 +สรวลเส 4 +สรีระ 4 +สร้อยเศร้า 4 +สฤษฏ์ 4 +สวนะ 4 +สวาด 4 +สวาหะ 4 +สวิชท์ 4 +สว่าน 4 +สหภาพ 4 +สหศึกษา 4 +สอดรู้ 4 +สะท้อนแสง 4 +สะระแหน่ 4 +สะอิดสะเอียน 4 +สะเต๊ะ 4 +สะเทิน 4 +สักที 4 +สังกรณี 4 +สังคโลก 4 +สังสารวัฏ 4 +สัตยาธิษฐาน 4 +สัปทน 4 +สัพพัญญู 4 +สัมพัทธ์ 4 +สาทิสลักษณ์ 4 +สาธารณรัฐ 4 +สานุศิษย์ 4 +สามขา 4 +สามเส้า 4 +สายบัว 4 +สายสะพาย 4 +สายใจ 4 +สายไฟ 4 +สาระพาเฮโล 4 +สาร์ท 4 +สาเก 4 +สำรวย 4 +สำรอก 4 +สิกขา 4 +สิกขาบท 4 +สิทธา 4 +สินจ้าง 4 +สินสอด 4 +สิว 4 +สีดอ 4 +สีลม 4 +สีเสียด 4 +สืบพันธุ์ 4 +สืบสาย 4 +สุขี 4 +สุธา 4 +สุพรรณบัฏ 4 +สุภาพชน 4 +สุมหัว 4 +สุรีย์ 4 +สุเอส 4 +สูท 4 +ส้อง 4 +หนองสาหร่าย 4 +หนำเลี้ยบ 4 +หนุนเนื่อง 4 +หน่วงเหนี่ยว 4 +หน้าฉาน 4 +หน้าตึงๆ 4 +หน้าตื่นๆ 4 +หน้านวล 4 +หน้ามืด 4 +หน้าหนา 4 +หน้าเก้อ 4 +หมากดิบ 4 +หมาง 4 +หยิมๆ 4 +หรอกๆ 4 +หรูๆ 4 +หลงลม 4 +หลบหน้า 4 +หลอกๆ 4 +หลอดไฟฟ้า 4 +หลักประกัน 4 +หลั่น 4 +หลากใจ 4 +หลุบ 4 +หวะ 4 +หวั่นเกรง 4 +หักมุก 4 +หัวแก้วหัวแหวน 4 +หาดใหญ่ 4 +หินย้อย 4 +หิมเวศ 4 +หึ 4 +หึ่ม 4 +หุนหันพลันแล่น 4 +หุยฮา 4 +หูด 4 +หู่ 4 +ห้ามเลือด 4 +องคมนตรี 4 +องคุลี 4 +อดีตชาติ 4 +อปริหานิยธรรม 4 +อภิวาทน์ 4 +อมาตย์ 4 +อมาวสี 4 +อยุทธยา 4 +อยู่มือ 4 +อยู่ไม่สุข 4 +อรรณพ 4 +อรรถคดี 4 +อรินทร์ 4 +อลังการ 4 +อวมงคล 4 +ออกงิ้ว 4 +ออกหัด 4 +ออกโขน 4 +ออดแอดๆ 4 +ออนไลน์ 4 +อะมีบา 4 +อักขรสมัย 4 +อัครชายา 4 +อัจฉริยะ 4 +อัญมณี 4 +อัฒจันทร์ 4 +อัตชีวประวัติ 4 +อัตราเร็ว 4 +อันเตวาสิก 4 +อับๆ 4 +อัป 4 +อั้งยี่ 4 +อาจมน 4 +อานิสงค์ 4 +อารยชน 4 +อารัญ 4 +อาศรมบท 4 +อาศัยที่ 4 +อาสัตย์ 4 +อินซูลิน 4 +อิสราเอล 4 +อี่ 4 +อี๋ 4 +อืม 4 +อุกฤษฏ์ 4 +อุจาด 4 +อุตุ 4 +อุทกธารา 4 +อุปการคุณ 4 +อุปาทาน 4 +อุปเทศ 4 +อุเหม่ 4 +อุแว้ 4 +อุ่ย 4 +อู้อี้ 4 +อเนกอนันต์ 4 +อเวจี 4 +อ่อนหู 4 +อ่อนเปียก 4 +อ้อมๆ 4 +อ๊อดแอ๊ด 4 +ฮิ 4 +ฮึ่ม 4 +ฮ่องกง 4 +เกย์ 4 +เกรียมๆ 4 +เกร็ง 4 +เกษตรและสหกรณ์ 4 +เกษมศานต์ 4 +เกษียณอายุ 4 +เกาหลี 4 +เกิง 4 +เกินงาม 4 +เกียน 4 +เกี้ยมไฉ่ 4 +เก็บตัว 4 +เก็บเล็ม 4 +เขือ 4 +เข่าอ่อน 4 +เข้าตาจน 4 +เข้าทรง 4 +เข้าฝัก 4 +เข้ารอบ 4 +เข้าเครื่อง 4 +เข้าเวร 4 +เข้าไหนเข้าได้ 4 +เครื่องปรับอากาศ 4 +เครื่องราง 4 +เคลื่อนย้าย 4 +เคาวน์ 4 +เคียด 4 +เคี่ยวเข็ญ 4 +เค้ามูล 4 +เงยหน้าอ้าปาก 4 +เงินนอน 4 +เจตจำนง 4 +เจนจบ 4 +เจียด 4 +เจียร 4 +เจ็ดชั่วโคตร 4 +เจ้าถ้อยหมอความ 4 +เจ้าบุญนายคุณ 4 +เจ้าประคู้น 4 +เจ้าอธิการ 4 +เจ้าเบี้ย 4 +เจ้าเรือน 4 +เฉวียงบ่า 4 +เฉาะ 4 +เฉียดๆ 4 +เฉโก 4 +เฉไฉ 4 +เชลียง 4 +เชิงตะกอน 4 +เชิดฉิ่ง 4 +เชียงราก 4 +เซซัง 4 +เซรุ่ม 4 +เซื่องๆ 4 +เซ็นส์ 4 +เดินๆ 4 +เดียรดาษ 4 +เดียรถีย์ 4 +เดียวๆ 4 +เดือนค้างฟ้า 4 +เดือนมืด 4 +เด่นๆ 4 +เตาะแตะ 4 +เต็มอก 4 +เต้าฮวย 4 +เถระ 4 +เถิดเทิง 4 +เทกระเป๋า 4 +เทพยเจ้า 4 +เทวษ 4 +เทอด 4 +เทิ้ม 4 +เทื่อ 4 +เท่าใดๆ 4 +เบญจวรรณ 4 +เบาสมอง 4 +เบาโหวง 4 +เปรอ 4 +เปรี๊ยะๆ 4 +เปลี้ย 4 +เปอร์เซีย 4 +เปิดหูเปิดตา 4 +เปิดโลก 4 +เปิบ 4 +เป็นฟืนเป็นไฟ 4 +เป็นมา 4 +เป็นเรื่องเป็นราว 4 +เผ 4 +เผาขน 4 +เผ็ดๆ 4 +เพชรบูรณ์ 4 +เพริศพราย 4 +เพ้อฝัน 4 +เฟื่องฟู 4 +เมียหลวง 4 +เยิบๆ 4 +เยื้องกราย 4 +เรียกเนื้อ 4 +เรียงๆ 4 +เรือนแพ 4 +เร่งมือ 4 +เลก 4 +เลขยันต์ 4 +เลฑฑุ 4 +เลต 4 +เลยเถิด 4 +เลียบเคียง 4 +เลี่ยนๆ 4 +เลี้ยงโต๊ะ 4 +เลือนราง 4 +เลื่อมๆ 4 +เลื่อยล้า 4 +เล็น 4 +เวชศาสตร์ 4 +เวทางคศาสตร์ 4 +เวฬุวัน 4 +เศิก 4 +เสฐียร 4 +เสนาสนะ 4 +เสมหะ 4 +เสลี่ยง 4 +เสาวนีย์ 4 +เสาวภา 4 +เสียหัว 4 +เสี่ยงชีวิต 4 +เสี้ยนหนาม 4 +เสือไฟ 4 +เสื่อมทราม 4 +เหงาหงอย 4 +เหย่า 4 +เหรัญญิก 4 +เหลวแหลก 4 +เหวอะหวะ 4 +เหี่ยวๆ 4 +เห็นดำเห็นแดง 4 +เอสกิโม 4 +เออแน่ะ 4 +เอาฬาร 4 +เอาเป็นเอาตาย 4 +เอี้ยมจุ๊น 4 +เฮๆ 4 +แกงบวด 4 +แก๊งค์ 4 +แก๊ป 4 +แข็งกร้าว 4 +แข้ 4 +แคนซัส 4 +แครก 4 +แคลอรี่ 4 +แง่งๆ 4 +แจ้วๆ 4 +แฉกๆ 4 +แชมป์ 4 +แช่เย็น 4 +แซนด์วิช 4 +แตกพาน 4 +แตรงอน 4 +แถ 4 +แทงใจ 4 +แทรกซ้อน 4 +แทรกเตอร์ 4 +แท้ง 4 +แนนทัคเค็ท 4 +แนวนอน 4 +แน่งน้อย 4 +แน่นท้อง 4 +แปรขบวน 4 +แปร่งๆ 4 +แปร๋ 4 +แป้นพิมพ์ 4 +แป้ว 4 +แผล็บ 4 +แผ่กระจาย 4 +แผ่นๆ 4 +แผ้วพาน 4 +แพ่น 4 +แฟกซ์ 4 +แฟลต 4 +แมสซาชูเซตส์ 4 +แม่เหย้าแม่เรือน 4 +แยง 4 +แร 4 +แรงดึงดูด 4 +แร่ง 4 +และๆ 4 +แล็บ 4 +แวง 4 +แหก 4 +แหบๆ 4 +แหมะ 4 +แหมะๆ 4 +แหม่มๆ 4 +แห้งเหี่ยว 4 +แอนติบอดี 4 +แอบอิง 4 +แอว 4 +โกสีย์ 4 +โครงร่าง 4 +โครมครามๆ 4 +โจก 4 +โฉมศรี 4 +โฉลก 4 +โดยอรรถ 4 +โดยเสด็จ 4 +โทษา 4 +โทโทษ 4 +โนน 4 +โน้ตเพลง 4 +โน้มนำ 4 +โบ๋ 4 +โปร่งๆ 4 +โปลิโอ 4 +โปสเตอร์ 4 +โปะ 4 +โป๊กเกอร์ 4 +โผเผ 4 +โพธิสมภาร 4 +โพรงจมูก 4 +โมก 4 +โมรี 4 +โม่ง 4 +โยกโย้ 4 +โยงใย 4 +โรคมะเร็ง 4 +โรคา 4 +โรจน์ 4 +โลกิยะ 4 +โลภโมโทสัน 4 +โลมเล้า 4 +โศกาดูร 4 +โศกาลัย 4 +โสกันต์ 4 +โสภณ 4 +โหรงเหรง 4 +โห่งๆ 4 +โอดครวญ 4 +โอโซน 4 +โอ่งมังกร 4 +ใจฝ่อ 4 +ใจหนักแน่น 4 +ใจเดียว 4 +ใจเด็ด 4 +ใจแป้ว 4 +ใช้กรรม 4 +ใช้ภาษา 4 +ใต้ฝ่าละอองพระบาท 4 +ใต้เท้ากรุณา 4 +ใบบอก 4 +ใบบุญ 4 +ใบปลิว 4 +ไขน้ำ 4 +ไข่ตุ๋น 4 +ไข่แดง 4 +ไงๆ 4 +ไชโยๆ 4 +ไซบีเรีย 4 +ได้ๆ 4 +ไตรปิฎก 4 +ไพฑูรย์ 4 +ไฟแดง 4 +ไฟๆ 4 +ไม่เข้าใครออกใคร 4 +ไม้ล้มลุก 4 +ไว้ลาย 4 +ไศล 4 +ไอกรน 4 +กกหู 3 +กฎธรรมชาติ 3 +กฎหมายระหว่างประเทศ 3 +กนิษฐภคินี 3 +กรณีๆ 3 +กรมสามัญศึกษา 3 +กรรณิกา 3 +กรรมวาจาจารย์ 3 +กรรมาชีพ 3 +กระจองอแง 3 +กระจาน 3 +กระจุย 3 +กระฉอก 3 +กระดานชนวน 3 +กระดาษแข็ง 3 +กระทุงเหว 3 +กระบวนความ 3 +กระวาย 3 +กระษัตริย์ 3 +กระหย่อมๆ 3 +กระอ้อมกระแอ้ม 3 +กระเตง 3 +กระเทาะ 3 +กระเบน 3 +กระเบียดกระเสียร 3 +กระแจะ 3 +กระโห้ 3 +กราฟิก 3 +กริน 3 +กริม 3 +กริ่งๆ 3 +กริ่ม 3 +กริ๊ก 3 +กรุบ 3 +กรุ่ม 3 +กรุ๊กกรู 3 +กรุ๊ป 3 +กร้วมๆ 3 +กฤดา 3 +กลฉ้อฉล 3 +กลยุทธ 3 +กลวงๆ 3 +กลอกกลับ 3 +กลอุบาย 3 +กลีบบัว 3 +กลึง 3 +กล้องถ่าย 3 +กล้องแกล้ง 3 +กล้าได้กล้าเสีย 3 +กล้าๆ 3 +กวดวิชา 3 +กวนๆ 3 +กองพล 3 +กองร้อย 3 +กะหลาป๋า 3 +กะๆ 3 +กักขฬะ 3 +กักตุน 3 +กันลอง 3 +กับแกล้ม 3 +กัลกัตตา 3 +กัลยาณี 3 +กานดา 3 +กาบๆ 3 +กามเทพ 3 +การก 3 +กาลามชน 3 +กาลี 3 +กาฮัง 3 +กำจร 3 +กำชับกำชา 3 +กำดัด 3 +กำธร 3 +กินที่ 3 +กิ้งกือ 3 +กิ๊บ 3 +กีรติ 3 +กี๋ 3 +กุบกับๆ 3 +กุมภา 3 +กุศลกรรม 3 +กุหร่า 3 +กุ้งนาง 3 +กุ๋ย 3 +กูบ 3 +ก่อกรรมทำเข็ญ 3 +ก่อกำเนิด 3 +ก้านแย่ง 3 +ก๊ง 3 +ก๊วน 3 +ขจรขจาย 3 +ขจาย 3 +ขณะใด 3 +ขนพอง 3 +ขนมถ้วย 3 +ขนอุย 3 +ขนัน 3 +ขนุนนก 3 +ขนเพชร 3 +ขบฉัน 3 +ขบเขี้ยวเคี้ยวฟัน 3 +ขยุกขยิก 3 +ขยุบ 3 +ขลา 3 +ขวัญใจ 3 +ขวางกั้น 3 +ขว้างจักร 3 +ของเล่นๆ 3 +ของแข็ง 3 +ของ้าว 3 +ขัดลาภ 3 +ขัดหู 3 +ขัดแตะ 3 +ขันอาสา 3 +ขับไม้ 3 +ขั้นต้นๆ 3 +ขาดตัว 3 +ขายเหมา 3 +ขาวดำ 3 +ขีปนาวุธ 3 +ขี้ขลาด 3 +ขี้คุก 3 +ขี้เต่า 3 +ขี้เป็ด 3 +ขี้โล้ 3 +ขี้ไต้ 3 +ขึงพืด 3 +ขุดคุ้ย 3 +ขุนยวม 3 +ขุมนรก 3 +ขุ่นใจ 3 +ข่างๆ 3 +ข้องขัด 3 +ข้อพิพาท 3 +ข้อเรียกร้อง 3 +ข้าน้อย 3 +ข้าพเจ้าๆ 3 +ข้ามสมุทร 3 +ข้าวทิพย์ 3 +ข้าวยำ 3 +ข้าวเก่า 3 +คชา 3 +คณิต 3 +คนเก่าคนแก่ 3 +คริส 3 +ครื้น 3 +คร่ำครึ 3 +คร้าบ 3 +คร๊าบ 3 +คลองส่งน้ำ 3 +คละเคล้า 3 +คลับคล้ายคลับคลา 3 +คลั๊กๆ 3 +คอขาดบาดตาย 3 +คอตั้ง 3 +คอร์น 3 +คอเลสเตอรอล 3 +คอแข็ง 3 +คอแบะ 3 +คะคาน 3 +คันฉ่อง 3 +คั่งค้าง 3 +คาคบ 3 +คาถาอาคม 3 +คาราวาน 3 +คาร์ 3 +คาวี 3 +คำปรารภ 3 +คำฝอย 3 +คิดสั้น 3 +คุณพ่อเลี้ยง 3 +คู่ทุกข์คู่ยาก 3 +คู่บุญ 3 +คู่สมรส 3 +คู่สวด 3 +ค่อ 3 +ค่ะๆ 3 +ค่าป่วยการ 3 +ค้างๆ 3 +ฆาตกรรม 3 +งกเงิ่น 3 +งอก่องอขิง 3 +งอนไถ 3 +งอๆ 3 +งี๊ดๆ 3 +งึมๆ 3 +งุ้ม 3 +งูๆ 3 +ง่อกแง่ก 3 +ง่อย 3 +ง่ำ 3 +จตุ 3 +จตุรพิธพร 3 +จมื่น 3 +จริยวัตร 3 +จะแจ่ม 3 +จักรวรรดิ 3 +จังหวะๆ 3 +จังหัน 3 +จันอับ 3 +จับเวลา 3 +จั่ว 3 +จานเชิง 3 +จำนวนจริง 3 +จำปีแขก 3 +จำยอม 3 +จำรูญ 3 +จิบๆ 3 +จิ๊ดๆ 3 +จิ๊ดๆๆ 3 +จิ๊บๆ 3 +จืดๆ 3 +จุฑา 3 +จุดยุทธศาสตร์ 3 +จุมพล 3 +ฉกาจฉกรรจ์ 3 +ฉลวย 3 +ฉลองพระเนตร 3 +ฉลาม 3 +ฉลู 3 +ฉอก 3 +ฉันๆ 3 +ฉุ 3 +ฉุก 3 +ฉุกละหุก 3 +ฉุนๆ 3 +ชงฆ์ 3 +ชดช้อย 3 +ชม้อย 3 +ชร 3 +ชรอุ่ม 3 +ชราภาพ 3 +ชะๆ 3 +ชาติพันธุ์ 3 +ชาวกรุงเทพ 3 +ชำนิชำนาญ 3 +ชิงไหวชิงพริบ 3 +ชิชะ 3 +ชิ่น 3 +ชีวภาพ 3 +ชีวิน 3 +ชี้ช่อง 3 +ชุดทำงาน 3 +ชุดๆ 3 +ชุบย้อม 3 +ชุ่มๆ 3 +ชูรส 3 +ช่องไฟ 3 +ช้างประสานงา 3 +ซั้น 3 +ซาวร์ 3 +ซิมโฟนี 3 +ซิ่ง 3 +ซี่ๆ 3 +ซูริค 3 +ซ่องสุม 3 +ซ่าส์ 3 +ซ่าหริ่ม 3 +ซ้อนซับ 3 +ฐานานุรูป 3 +ดวงๆ 3 +ดอกจัน 3 +ดาม 3 +ดาวกระจาย 3 +ดาวน์ 3 +ดำหัว 3 +ดื่นดึก 3 +ดื้อดัน 3 +ดูดกลืน 3 +ดูดดึง 3 +ดูไปก่อน 3 +ด้วยๆๆ 3 +ด้านๆ 3 +ตกน้ำมัน 3 +ตกปลอก 3 +ตงิด 3 +ตจ 3 +ตบแต่ง 3 +ตรวจจับ 3 +ตรวจพบ 3 +ตระหนี่ตัว 3 +ตรัง 3 +ตราสิน 3 +ตรีภพ 3 +ตรียัมปวาย 3 +ตรีศก 3 +ตรุ 3 +ตรู่ๆ 3 +ตฤษณา 3 +ตลกๆ 3 +ตลบหลัง 3 +ตองสู 3 +ตะพัง 3 +ตะพุ่น 3 +ตะลุมพุก 3 +ตะลุย 3 +ตะลุ่ม 3 +ตะเพิด 3 +ตะแก 3 +ตะแหมะแขะ 3 +ตะไคร้หอม 3 +ตัดทอน 3 +ตันติ 3 +ตัวตั้ง 3 +ตัวถัง 3 +ตัวประกอบ 3 +ตัวประกัน 3 +ตาขอ 3 +ตางๆ 3 +ตาน้ำ 3 +ตายดาบหน้า 3 +ตายอดตายอยาก 3 +ตาลปัตร 3 +ตาแดงๆ 3 +ติดหลังแห 3 +ติ๋มๆ 3 +ตีจาก 3 +ตีตรา 3 +ตีตั๋ว 3 +ตีเสียง 3 +ตีแผ่ 3 +ตื่นใจ 3 +ตุ้บตั้บๆ 3 +ถนนลาดยาง 3 +ถนอมอาหาร 3 +ถมถืด 3 +ถล่มทลาย 3 +ถวัลย์ 3 +ถอดหัวโขน 3 +ถักๆ 3 +ถัน 3 +ถั่วงอก 3 +ถาวรวัตถุ 3 +ถาโถม 3 +ถีบจักรยาน 3 +ถีบรถ 3 +ถึงชีพิตักษัย 3 +ถึงแก่พิราลัย 3 +ถุน 3 +ถูกขา 3 +ถูกส่วน 3 +ถูกเส้น 3 +ถูลู่ถูกัง 3 +ถ่อมตัว 3 +ถ่ายทำ 3 +ทรราช 3 +ทราบฝ่าพระบาท 3 +ทราบฝ่าละอองธุลีพระบาท 3 +ทราบฝ่าละอองพระบาท 3 +ทราบเกล้าทราบกระหม่อม 3 +ทรามสงวน 3 +ทศทิศ 3 +ทศพร 3 +ทองคำขาว 3 +ทองชมพูนุท 3 +ทองพระกร 3 +ทองหมั้น 3 +ทอดที่ 3 +ทอดยอด 3 +ทะลุปรุโปร่ง 3 +ทางๆ 3 +ทำเสน่ห์ 3 +ทีฆายุ 3 +ที่ราบสูง 3 +ที่อาศัย 3 +ทูลเกล้าทูลกระหม่อมถวาย 3 +ท่อนไม้ 3 +ท่าพระจันทร์ 3 +ท่าว 3 +ท้องพอง 3 +ท้าวนาง 3 +ธนูศิลป์ 3 +ธรรมจักร 3 +ธรรมนิยม 3 +ธรรมวัตร 3 +ธรรมิก 3 +นกกางปีก 3 +นคเรศ 3 +นมแมว 3 +นฤบดี 3 +นฤมิต 3 +นวยนาด 3 +นอกคอก 3 +นอกตำรา 3 +นอนกรน 3 +นั่งๆ 3 +นาคปรก 3 +นามกร 3 +นามบัตร 3 +นายพระทวาร 3 +นารายณ์บรรทมสินธุ์ 3 +นิจศีล 3 +นิพจน์ 3 +นิ้วๆ 3 +นี้ๆ 3 +นุงนัง 3 +นุ่งกระโจมอก 3 +นเรศ 3 +น้ำขาวๆ 3 +น้ำจิ้ม 3 +น้ำชา 3 +น้ำซับ 3 +น้ำท่า 3 +น้ำมันดิบ 3 +น้ำเหลืองๆ 3 +บถ 3 +บรรจถรณ์ 3 +บรรทัดฐาน 3 +บรรเจิด 3 +บรั่นดี 3 +บริขาร 3 +บล็อกๆ 3 +บวน 3 +บอกใบ้ 3 +บอบ 3 +บังมืด 3 +บังโคลน 3 +บัณฑิตย์ 3 +บัณฑูร 3 +บัวตูม 3 +บางตา 3 +บาทยุคล 3 +บำนาญ 3 +บำรุงบำเรอ 3 +บีฟ 3 +บีเวอร์ 3 +บุนนาค 3 +บุรพทิศ 3 +บ่มผิว 3 +บ่วงบาศ 3 +บ้างๆ 3 +บ้านจัดสรร 3 +บ้าบิ่น 3 +ปกติวิสัย 3 +ปกิณกะ 3 +ปฏิคม 3 +ปฏิชีวนะ 3 +ปฏิสัมพันธ์ 3 +ปทานุกรม 3 +ปนๆ 3 +ปบ 3 +ปรอด 3 +ประกันภัย 3 +ประกาศิต 3 +ประจบประแจง 3 +ประจุไฟฟ้า 3 +ประชดประชัน 3 +ประดิดประดอย 3 +ประติชญา 3 +ประพิมพ์ประพาย 3 +ประยุทธ์ 3 +ประลาย 3 +ประหยัดๆ 3 +ประเจิดประเจ้อ 3 +ประเดี๋ยวประด๋าว 3 +ประเทียบ 3 +ประแดง 3 +ประแป้ง 3 +ปริก 3 +ปริตร 3 +ปรินิพพาน 3 +ปริยัติ 3 +ปริศนาอักษรไขว้ 3 +ปรโลก 3 +ปลก 3 +ปลงตก 3 +ปลดปล่อย 3 +ปลดออก 3 +ปลอมปน 3 +ปลาทอง 3 +ปลายๆ 3 +ปลาๆ 3 +ปลิ้นปล้อน 3 +ปลี้ๆ 3 +ปลุกปล้ำ 3 +ปลุกเสก 3 +ปล่อยเกาะ 3 +ปวดหัวๆ 3 +ปอย 3 +ปะวะหล่ำ 3 +ปักๆ 3 +ปัญจวีสติ 3 +ปัฏ 3 +ปัดเป่า 3 +ปับๆ 3 +ปั๊ม 3 +ปากกบ 3 +ปากกาหมึกซึม 3 +ปากนก 3 +ปากห่าง 3 +ปากเสียง 3 +ปากแห้ง 3 +ปาฐก 3 +ปิฎก 3 +ปิดตาย 3 +ปิตุ 3 +ปิตุภูมิ 3 +ปีกกา 3 +ปืนสั้น 3 +ปุตตะ 3 +ปุบ 3 +ปุบปับ 3 +ปุปะ 3 +ปุๆๆ 3 +ปุ่มป่ำ 3 +ปูนขาว 3 +ป้อมๆ 3 +ป้อแป้ 3 +ป้ำเป๋อ 3 +ผด 3 +ผมเปีย 3 +ผรุสวาท 3 +ผลอ 3 +ผลาผล 3 +ผลาหาร 3 +ผสมผเส 3 +ผสมโรง 3 +ผอด 3 +ผักทอดยอด 3 +ผัดเพี้ยน 3 +ผันผยอง 3 +ผั้บๆ 3 +ผาดแผลง 3 +ผาดๆ 3 +ผิดนัด 3 +ผิดเมีย 3 +ผืนๆ 3 +ผุยผง 3 +ผูกหู 3 +ผู้ชายๆ 3 +ผู้ชำนาญการ 3 +ผู้ถาม 3 +ผู้นั้นๆ 3 +ผู้ปฏิบัติงาน 3 +ผู้รับสาร 3 +ผู้ลากมากดี 3 +ผู้วิเศษ 3 +ผู้สั่งซื้อ 3 +ผู้ส่งสาร 3 +ผู้ให่ญ 3 +ผ็อย 3 +ผ่อนชำระ 3 +ผ่างๆ 3 +ผ้าย 3 +ผ้าลูกไม้ 3 +ผ้าอาบ 3 +ผ้าอ้อม 3 +ฝักมะขาม 3 +ฝัด 3 +ฝันเฟื่อง 3 +ฝากไข้ 3 +ฝีจักร 3 +ฝ่ายหน้า 3 +พงษ์ 3 +พนัง 3 +พนาสัณฑ์ 3 +พยับ 3 +พยับฝน 3 +พรหมวิหาร 3 +พระกระแสรับสั่ง 3 +พระประสงค์ 3 +พระปรีชาสามารถ 3 +พระพันปีหลวง 3 +พระราชานุญาต 3 +พระวิจารณ์ 3 +พระองค์ๆ 3 +พระแท่น 3 +พรึบ 3 +พลการ 3 +พลขันธ์ 3 +พลีท 3 +พล่อยๆ 3 +พอทำเนา 3 +พะเยิบพะยาบ 3 +พังพาน 3 +พัทธสีมา 3 +พันจ่า 3 +พันธมิตร 3 +พันเอิญ 3 +พันโท 3 +พับๆ 3 +พั่บๆ 3 +พาณิชยกรรม 3 +พาเหรด 3 +พินทุ 3 +พินัย 3 +พินิต 3 +พิมล 3 +พิศๆ 3 +พีระมิด 3 +พุทธจักร 3 +พุทธันดร 3 +พุทธาวาส 3 +พ่าห์ 3 +ฟรังค์ 3 +ฟองอากาศ 3 +ฟอน 3 +ฟันฝ่า 3 +ฟันหลอ 3 +ฟั่นเฝือ 3 +ฟาย 3 +ฟี้ 3 +ฟุ 3 +ฟุตบอลประเพณี 3 +ฟุ้งกระจาย 3 +ฟูฟ่อง 3 +ฟูๆ 3 +ภาคิไนย 3 +ภาพลวงตา 3 +ภุขัน 3 +ภุช 3 +ภุมริน 3 +ภูบดินทร์ 3 +ภูมิคุ้มกัน 3 +ภูมิธรรม 3 +ภูมิบาล 3 +ภูริ 3 +มนุ 3 +มมังการ 3 +มรรคนายก 3 +มวยปล้ำ 3 +มวยไทย 3 +มหิ 3 +มหิงส์ 3 +มหู 3 +มอเตอร์ 3 +มะขวิด 3 +มะดัน 3 +มะเส็ง 3 +มะแม 3 +มัดๆ 3 +มัธะยม 3 +มัสมั่น 3 +มั่วมูล 3 +มาตราพฤติ 3 +มานุษยวิทยา 3 +มายากล 3 +มารุมมาตุ้ม 3 +มาลย์ 3 +มาลาเรีย 3 +มิจฉา 3 +มิชชันนารี 3 +มิดหมี 3 +มิตรจิตมิตรใจ 3 +มิถิลา 3 +มีชู้ 3 +มึนชา 3 +มืดฟ้ามัวดิน 3 +มือดี 3 +มือบอน 3 +มืออ่อน 3 +มือๆ 3 +มุขเด็จ 3 +มุทิตา 3 +มุมฉาก 3 +มุมๆ 3 +มุ่งมาด 3 +มูๆ 3 +มูๆๆ 3 +ม่วน 3 +ม้วนๆ 3 +ม้าลาย 3 +ยวบ 3 +ยองยอง 3 +ยับย่อย 3 +ยั้ว 3 +ยาตรา 3 +ยาแดง 3 +ยิ่นดี 3 +ยี่หร่า 3 +ยุทธศาสตร์ 3 +ยุทโธปกรณ์ 3 +ยุรยาตร 3 +ยุ่งใจ 3 +ยูเนสโก 3 +ย้ายบ้าน 3 +รกเรี้ยว 3 +รติ 3 +รถเก๋ง 3 +รมยา 3 +รวก 3 +รวยริน 3 +ระคาง 3 +ระดู 3 +ระรวย 3 +ระวังๆ 3 +รักบี้ 3 +รังกา 3 +รังสิ 3 +รัษฎากร 3 +รากศัพท์ 3 +ราชกิจจานุเบกษา 3 +ราชธรรม 3 +ราชาคณะ 3 +ราบๆ 3 +ราพณ์ 3 +รำมะนา 3 +รำเพย 3 +รำโคม 3 +ริบบิ้น 3 +รีบรุด 3 +รุสเซีย 3 +รุ่มร่าม 3 +รุ้งกินน้ำ 3 +รู้คิดรู้อ่าน 3 +รู้ๆ 3 +ร่มเกล้า 3 +ร่วมอุทร 3 +ร่องน้ำ 3 +ร้องห่มร้องไห้ 3 +ลงอาชญา 3 +ลบโลก 3 +ลมจับ 3 +ลมปราณ 3 +ลมพัดชายเขา 3 +ลมเพลมพัด 3 +ลวนลาม 3 +ลอตเตอรี่ 3 +ลอร์ด 3 +ละมั่ง 3 +ละลด 3 +ละวาง 3 +ลักยิ้ม 3 +ลักษมี 3 +ลัดวงจร 3 +ลาวัณย์ 3 +ลิ่น 3 +ลี่ 3 +ลุงๆ 3 +ลูกกลิ้ง 3 +ลูกครึ่ง 3 +ลูกดอก 3 +ลูกท่านหลานเธอ 3 +ลูกบาศก์ 3 +ลูกโยน 3 +ลูบๆ 3 +ล่วงเวลา 3 +ล่องหน 3 +ล่อๆ 3 +ล่ะๆ 3 +ล่างๆ 3 +ล้มทั้งยืน 3 +ล้าย 3 +วกๆ 3 +วรรณพฤติ 3 +วรุณ 3 +วอกแวก 3 +วัค 3 +วัคซีน 3 +วัช 3 +วัชระ 3 +วัชรี 3 +วับแวม 3 +วัวตัวผู้ 3 +วาจก 3 +วาสุกรี 3 +วิจักษ์ 3 +วิจิตรพิสดาร 3 +วิชชา 3 +วิชาธร 3 +วิดีโอ 3 +วิทูร 3 +วินด์ 3 +วิปลาส 3 +วิปัสสนา 3 +วิว 3 +วิวาหะ 3 +วิสัยทัศน์ 3 +วุ้นเส้น 3 +ว้าว 3 +ศรีวิชัย 3 +ศักดา 3 +ศัลยแพทย์ 3 +ศานต์ 3 +ศาสนูปถัมภก 3 +ศิระ 3 +ศุทธิ 3 +ษมา 3 +สงครามกลางเมือง 3 +สดคาว 3 +สดับตรับฟัง 3 +สตร๊าฟ 3 +สตาร์ท 3 +สตีม 3 +สถานที่ๆ 3 +สถุล 3 +สบประมาท 3 +สมนาคุณ 3 +สมบัติผู้ดี 3 +สมุทัย 3 +สมุหนายก 3 +สรวลเสเฮฮา 3 +สรเสริญ 3 +สลักเสลา 3 +สลุต 3 +สวบๆ 3 +สวัสดิภาพ 3 +สวางคบุรี 3 +สอยไร 3 +สะบัดร้อนสะบัดหนาว 3 +สะบ้า 3 +สะใจ 3 +สังกะตัง 3 +สังคมศึกษา 3 +สังฆกรรม 3 +สังฆการี 3 +สังฆปาโมกข์ 3 +สังฆาวาส 3 +สังวาส 3 +สังเวียน 3 +สัททุลวิกกีฬิต 3 +สัทศาสตร์ 3 +สันป่าตอง 3 +สับปลับ 3 +สัมมาชีพ 3 +สัมโพธิ 3 +สาธารณภัย 3 +สาธารณูปโภค 3 +สาปสรร 3 +สามนตราช 3 +สามัญสำนึก 3 +สายระโยง 3 +สายรุ้ง 3 +สายสมร 3 +สายสวาท 3 +สารนิเทศ 3 +สารประกอบ 3 +สารละลาย 3 +สารัตถภาพ 3 +สาสน 3 +สิงสาราสัตว์ 3 +สิทธาจารย์ 3 +สินธุ 3 +สิลา 3 +สิเนรุ 3 +สิ่งละอันพันละน้อย 3 +สิ่งๆ 3 +สีสา 3 +สีสุก 3 +สุกี้ 3 +สุขนาฏกรรม 3 +สุขลักษณะ 3 +สุดเสียงสังข์ 3 +สุมๆ 3 +สุรารักษ์ 3 +สุริยคติ 3 +สุลต่าน 3 +สูบเลือด 3 +สูร 3 +สูเจ้า 3 +สโคป 3 +สโตน 3 +ส่วนสัด 3 +ส่วนหน้า 3 +ส้มมะขาม 3 +ส้มๆ 3 +หงัก 3 +หงายหลัง 3 +หดหาย 3 +หนวก 3 +หนังกำพร้า 3 +หนาด 3 +หนาตา 3 +หนูผี 3 +หน็อยแน่ 3 +หน่ายหนี 3 +หน้างอก 3 +หน้าจ๋อย 3 +หน้าบาง 3 +หน้าเลือด 3 +หมดรูป 3 +หมากพร้าว 3 +หมากอีแปะ 3 +หมายมั่นปั้นมือ 3 +หมิ่นๆ 3 +หมื่นๆ 3 +หมูสี 3 +หมูแฮม 3 +หม่นไหม้ 3 +หยวนๆ 3 +หยองๆ 3 +หยักศก 3 +หยับ 3 +หยั่งทราบ 3 +หยากไย่ 3 +หยาดน้ำค้าง 3 +หยาดฟ้า 3 +หยิบยื่น 3 +หยุมหยิม 3 +หยุ่น 3 +หริ่งๆ 3 +หรี่ๆ 3 +หรือๆ 3 +หฤหรรษ์ 3 +หลวม 3 +หลักแจว 3 +หลับใน 3 +หวอดๆ 3 +หวีๆ 3 +หอกซัด 3 +หอง 3 +หักหลัง 3 +หัตถศึกษา 3 +หันๆ 3 +หัวกะทิ 3 +หัวซุนๆ 3 +หัวต่อ 3 +หัวปักหัวปำ 3 +หัวป่า 3 +หัวหมู 3 +หัวเถิก 3 +หัวเรี่ยวหัวแรง 3 +หัวแม่เท้า 3 +หัวโล้น 3 +หางปลา 3 +หาบๆ 3 +หินงอก 3 +หินโสโครก 3 +หีบห่อ 3 +หืด 3 +หูทวนลม 3 +หูหนู 3 +ห่วย 3 +ห้องเครื่อง 3 +ห้ามทัพ 3 +ห้ามล้อ 3 +ห้าวๆ 3 +อกร่อง 3 +อกหัก 3 +อดตาหลับขับตานอน 3 +อธิการ 3 +อนนต์ 3 +อนาคามี 3 +อนิจ 3 +อนุช 3 +อนุวัต 3 +อบายภูมิ 3 +อภิบาล 3 +อภิรัฐมนตรี 3 +อมก๋อย 3 +อมตะ 3 +อมพะนำ 3 +อยู่ดีกินดี 3 +อย่างๆ 3 +อรหัง 3 +อรัญวาสี 3 +อลูมิเนียม 3 +อลเวง 3 +อสุ 3 +อหิวาตกโรค 3 +ออกญา 3 +ออกฝี 3 +ออกฝีดาษ 3 +ออดอ้อน 3 +ออมทรัพย์ 3 +ออสเตรีย 3 +อะลูมิเนียม 3 +อัคนิโหตร 3 +อังกะลุง 3 +อัญชัน 3 +อัฐบริขาร 3 +อัดสำเนา 3 +อัปราชัย 3 +อัสดง 3 +อาคเนย์ 3 +อาญาสิทธิ์ 3 +อาดๆ 3 +อานนท์ 3 +อาบเหงื่อต่างน้ำ 3 +อารบิค 3 +อารยะ 3 +อาลัยอาวรณ์ 3 +อาๆ 3 +อำเภอใจ 3 +อิก 3 +อิหร่าน 3 +อีก้อ 3 +อีสุกอีใส 3 +อีแร้ง 3 +อื้น 3 +อื้อฉาว 3 +อุจจาระ 3 +อุทกธาร 3 +อุบาสก 3 +อุปกิเลส 3 +อุปโลกน์ 3 +อุษาโยค 3 +อุไร 3 +อุ้ย 3 +อุ๊บ 3 +อเนกประสงค์ 3 +อ่อนข้อ 3 +อ่อนปวกเปียก 3 +อ้ม 3 +อ้อๆ 3 +อ๊าย 3 +ฮวงซุ้ย 3 +ฮอร์โมน 3 +ฮอลล์ 3 +ฮัก 3 +ฮัดๆ 3 +ฮันนีมูน 3 +ฮิปโป 3 +ฮึม 3 +ฮึ้ย 3 +เกรงอกเกรงใจ 3 +เกรียง 3 +เกรี้ยว 3 +เกร่อ 3 +เกลียวกลม 3 +เกลือกกลั้ว 3 +เกส 3 +เกะ 3 +เกะๆ 3 +เกาเหลา 3 +เกี๋ยง 3 +เกือกม้า 3 +เก็บเนื้อเก็บตัว 3 +เก้อๆ 3 +เขม 3 +เขม้นขะมัก 3 +เขวๆ 3 +เขาๆ 3 +เขี้ยวกระแต 3 +เขี้ยวหมา 3 +เข็มหมุด 3 +เข่งๆ 3 +เข่นเขี้ยว 3 +เข้ 3 +เข้ากระดูกดำ 3 +เข้าตำรา 3 +เข้าฝัน 3 +เคมีภัณฑ์ 3 +เครง 3 +เครื่องกรองอากาศ 3 +เครื่องกัณฑ์ 3 +เครื่องกิน 3 +เครื่องคิดเลข 3 +เครื่องอุปกรณ์ 3 +เครื่องเขิน 3 +เคลีย 3 +เคียงบ่าเคียงไหล่ 3 +เคี่ยม 3 +เคเบิล 3 +เงินต้น 3 +เงินเชื่อ 3 +เง้า 3 +เจดียสถาน 3 +เจต 3 +เจตคติ 3 +เจริญเติบโต 3 +เจีย 3 +เจียงๆ 3 +เจ็บแสบ 3 +เจ้าหน้า 3 +เจ้าหลวง 3 +เจ๋ง 3 +เฉิดฉัน 3 +เชลยศักดิ์ 3 +เชิงกราน 3 +เชิดหุ่น 3 +เซรามิก 3 +เซียว 3 +เซ่อๆ 3 +เฌอ 3 +เดชนะ 3 +เดรท 3 +เดินเทียน 3 +เดินเหิน 3 +เดี้ย 3 +เดโช 3 +เด็กชา 3 +เด็จ 3 +เด๋อๆ 3 +เตร็ด 3 +เตอะ 3 +เตียนๆ 3 +เต็มอัตรา 3 +เต่ง 3 +เถลิงถวัลยราชสมบัติ 3 +เทนนิส 3 +เทพนิยาย 3 +เทิน 3 +เท็จๆ 3 +เท้าช้าง 3 +เนิบๆ 3 +เนื้อตาย 3 +เนื้อเยื่อ 3 +เบคอน 3 +เบญจศีล 3 +เบต้า 3 +เบอะ 3 +เบามือ 3 +เบิกอรุณ 3 +เบียดบัง 3 +เบี้ยล่าง 3 +เบี้ยเลี้ยง 3 +เบื้อ 3 +เบ็ดเสร็จ 3 +เบ้า 3 +เปรียว 3 +เปรียะ 3 +เปอร์เซนต์ 3 +เปะ 3 +เปิก 3 +เปิ่นๆ 3 +เปื่อยๆ 3 +เป่ง 3 +เป่าหลอด 3 +เป้ 3 +เป้อเย้อ 3 +เผด็จ 3 +เผอเรอ 3 +เผื่อน 3 +เฝื่อนๆ 3 +เพกา 3 +เพรางาย 3 +เพรียวลม 3 +เพส 3 +เพา 3 +เพาะเลี้ยง 3 +เพื่อนเกลอ 3 +เมทนี 3 +เมนต์ 3 +เมามัน 3 +เมือก 3 +เมืองๆ 3 +เม้าส์ 3 +เยาวเรศ 3 +เยาะๆ 3 +เยียดยัด 3 +เยียน 3 +เยือก 3 +เยื้อน 3 +เย็นเยือก 3 +เย้ 3 +เราะราย 3 +เรียนปฏิบัติ 3 +เรี่ยๆ 3 +เรืองๆ 3 +เรือนจำ 3 +เรือนร่าง 3 +เรื่องเล่า 3 +เรื้อ 3 +เรื้อน 3 +เร่อ 3 +เร่อร่า 3 +เร่าๆ 3 +เลบง 3 +เลอะๆ 3 +เลียม 3 +เลียว 3 +เลี่ยม 3 +เลื่อนที่ 3 +เลื่อนเปื้อน 3 +เล็บครุฑ 3 +เล็บมือนาง 3 +เวลส์ 3 +เวียนนา 3 +เว้าวอน 3 +เสพย์ 3 +เสมอตัว 3 +เสมอนอก 3 +เสมอบ่าเสมอไหล่ 3 +เสร็จๆ 3 +เสลดพังพอน 3 +เสลือกสลน 3 +เสสรวล 3 +เสียกล 3 +เสี่ยงภัย 3 +เสือกสน 3 +เสื่อลำแพน 3 +เสื้อกล้าม 3 +เสื้อแสง 3 +เสโท 3 +เส้นผ่านศูนย์กลาง 3 +เส้นแข็ง 3 +เหตุบังเอิญ 3 +เหนี่ยง 3 +เหนื่อยๆ 3 +เหน็บชา 3 +เหน่อๆ 3 +เหย 3 +เหย่งๆ 3 +เหลือรับ 3 +เหลือร้าย 3 +เหลือๆ 3 +เหิมหาญ 3 +เหียง 3 +เห็จ 3 +เห่อเหิม 3 +เอกเขนก 3 +เอกโทษ 3 +เอาบุญเอาคุณ 3 +เอาใหญ่ 3 +เอิก 3 +เอียด 3 +เอือน 3 +เอเคอร์ 3 +เอเชียน 3 +แกร็นๆ 3 +แกลน 3 +แกแล 3 +แก่นแก้ว 3 +แก้ปัญหา 3 +แขยง 3 +แข็งข้อ 3 +แคนาดา 3 +แคปซูล 3 +แคระๆ 3 +แควก 3 +แคโรทีน 3 +แจ็กเก็ต 3 +แจ้งๆ 3 +แจ้น 3 +แจ๋ 3 +แซ่ดๆ 3 +แด่น 3 +แด่วๆ 3 +แถน 3 +แทรกๆ 3 +แท่ 3 +แนวตั้ง 3 +แน่แน่ว 3 +แบงค์ 3 +แบดมินตัน 3 +แบ๊ง 3 +แบ๊งก์ 3 +แปรงสีฟัน 3 +แป๊ด 3 +แผนงาน 3 +แผ่ขยาย 3 +แผ่นกรอง 3 +แพทยศาสตร์ 3 +แพ้รู้ 3 +แพ้เปรียบ 3 +แฟชั่น 3 +แฟร์ 3 +แมวเซา 3 +แม่ธรณี 3 +แม่พิมพ์ 3 +แม่สะเรียง 3 +แม่เจ้าโว้ย 3 +แม่ๆ 3 +แยกๆ 3 +แยบ 3 +แรกเริ่มเดิมที 3 +แรคคูน 3 +แวด 3 +แสก 3 +แหงๆ 3 +แหนงหน่าย 3 +แหนงใจ 3 +แหนบ 3 +แหยม 3 +แหยะๆ 3 +แหยๆ 3 +แหลกเหลว 3 +แหลน 3 +แหล่งหล้า 3 +แหล่งเสื่อมโทรม 3 +แอดๆ 3 +แอบอ้าง 3 +แอร่ม 3 +แอร์ 3 +แอหนัง 3 +แอ๊ด 3 +แอ๋ 3 +แฮ่กๆ 3 +โกร๋น 3 +โกโรโกโส 3 +โขยกๆ 3 +โขลงๆ 3 +โจ่งแจ้ง 3 +โฉมเฉลา 3 +โซซัดโซเซ 3 +โซเซๆ 3 +โดดร่ม 3 +โด่ 3 +โด่เด่ 3 +โตมร 3 +โถงๆ 3 +โถนม 3 +โถ่ 3 +โท่ 3 +โผย 3 +โผล่ๆ 3 +โพด 3 +โพละ 3 +โพแทสเซียม 3 +โภคทรัพย์ 3 +โยธิน 3 +โยโส 3 +โย้ 3 +โรงเรียนประจำ 3 +โรงไฟฟ้า 3 +โรยรา 3 +โรยหน้า 3 +โรหิต 3 +โลกธาตุ 3 +โลกาภิวัตน์ 3 +โลกุตรธรรม 3 +โลมา 3 +โล่งๆๆ 3 +โศลก 3 +โสดาบัน 3 +โสมม 3 +โหดเหี้ยม 3 +โหมด 3 +โหวงเหวง 3 +โอก 3 +โอฆบุรี 3 +โอนกรรมสิทธิ์ 3 +โอภาปราศรัย 3 +โอฬาริก 3 +โฮกฮาก 3 +ใจจืด 3 +ใจน้อยๆ 3 +ใช่ๆ 3 +ใช้คำ 3 +ใต้เท้ากรุณาเจ้า 3 +ใบสำคัญ 3 +ใบเงิน 3 +ใบเบิก 3 +ใบโพ 3 +ใส่ไคล้ 3 +ให้ท่า 3 +ให้หา 3 +ไก๋ 3 +ไข่จิ้งจก 3 +ไข่เน่า 3 +ไข่เหา 3 +ไข่ๆ 3 +ไข้ใจ 3 +ไค 3 +ไซด์บอร์ด 3 +ได้ท่า 3 +ไตรจีวร 3 +ไตรตรา 3 +ไตรทวาร 3 +ไต่ลวด 3 +ไต้ก๋ง 3 +ไต้ฝุ่น 3 +ไถกลบ 3 +ไถๆ 3 +ไถ้ 3 +ไทยใหญ่ 3 +ไฝ 3 +ไพรสณฑ์ 3 +ไพริน 3 +ไพร์ 3 +ไม่ชอบมาพากล 3 +ไม้ดอก 3 +ไม้ผล 3 +ไม้สอย 3 +ไม้หมอน 3 +ไม้ไผ่ 3 +ไวพจน์ 3 +ไว้ตัว 3 +ไส้ติ่ง 3 +ไหซอง 3 +ไหมทอง 3 +ไหลๆ 3 +ไห่ 3 +ไอศุริยสมบัติ 3 +กฎข้อบังคับ 2 +กตัญญุตา 2 +กรงขัง 2 +กรงทอง 2 +กรมวัง 2 +กรมอุตุนิยมวิทยา 2 +กรรพุม 2 +กรรมฐาน 2 +กรรมพันธุ์ 2 +กรรมสัมปาทิก 2 +กรรมเวร 2 +กรรม์ 2 +กระจัง 2 +กระจัดพลัดพราย 2 +กระจุกๆ 2 +กระชัง 2 +กระชากๆ 2 +กระชุ 2 +กระฎี 2 +กระดากกระเดื่อง 2 +กระดานลื่น 2 +กระดาษสา 2 +กระดำกระด่าง 2 +กระดิกกระเดี้ย 2 +กระทบกระเทือน 2 +กระทรวงๆ 2 +กระวี 2 +กระษาปณ์ 2 +กระสง 2 +กระสวย 2 +กระอัก 2 +กระเง้ากระงอด 2 +กระเซอะกระเซิง 2 +กระเดิด 2 +กระเบนเหน็บ 2 +กระเส่า 2 +กระเหม่น 2 +กระแสพระราชดำริ 2 +กระแห 2 +กระไรๆ 2 +กระไอ 2 +กรีธา 2 +กรุย 2 +กรุยกราย 2 +กรุ้งกริ่ง 2 +กร่อยๆ 2 +กร้าวๆ 2 +กร๊อบ 2 +กฤช 2 +กฤตยา 2 +กลละ 2 +กลอนตลาด 2 +กลับตาลปัตร 2 +กลัวลาน 2 +กลาด 2 +กลิง 2 +กลิ่นอาย 2 +กลิ้ม 2 +กลีบๆ 2 +กลูโคส 2 +กล่อมหอ 2 +กล้องจุลทรรศน์ 2 +กล้องถ่ายภาพ 2 +กวัดไกว 2 +กวางทราย 2 +กวิน 2 +กสิ 2 +กองเกียรติยศ 2 +กองโจร 2 +กอล์ฟ 2 +กะทือ 2 +กะวะ 2 +กะหล่ำปลี 2 +กะเล่อกะล่า 2 +กักบริเวณ 2 +กักๆ 2 +กัณฐชะ 2 +กันยา 2 +กันเกรา 2 +กัปปิยโวหาร 2 +กัลยาณมิตร 2 +กัวลาลัมเปอร์ 2 +กั้กๆ 2 +กากบาท 2 +กาบปูเล 2 +การเวก 2 +กาลามสูตร 2 +กาสาวพัสตร์ 2 +กำหนัด 2 +กำเริบเสิบสาน 2 +กิตติคุณ 2 +กินด่าง 2 +กินมือ 2 +กินเปล่า 2 +กินเมือง 2 +กินเศษกินเลย 2 +กินเส้น 2 +กิ๋วๆ 2 +กี่กระตุก 2 +กี๊ 2 +กึกกัก 2 +กุบกับ 2 +กุมภีล์ 2 +กุลาตีไม้ 2 +กุลาหล 2 +กุศโลบาย 2 +กุเรา 2 +กุ้งไม้ 2 +กูรมะ 2 +ก่ง 2 +ก่น 2 +ก่อหวอด 2 +ก้นหอย 2 +ก้มหลัง 2 +ก้างปลา 2 +ก้านมะพร้าว 2 +ก้ำ 2 +ก๊าก 2 +ก๊าบ 2 +ก๋า 2 +ขนมทราย 2 +ขนมเข่ง 2 +ขนสัตว์ 2 +ขนอง 2 +ขนาก 2 +ขนาย 2 +ขมึงทึง 2 +ขยั้น 2 +ขวง 2 +ขวัญบิน 2 +ขวัญหนี 2 +ขวัญแขวน 2 +ของกำนัล 2 +ของเหลว 2 +ขอบถนน 2 +ขอบเรือ 2 +ขะมุกขะมอม 2 +ขัณฑสกร 2 +ขัดตาทัพ 2 +ขัตติยา 2 +ขันสู้ 2 +ขั้วโลก 2 +ขาง 2 +ขาดตอน 2 +ขาม้า 2 +ขาเข้า 2 +ขิกๆ 2 +ขิม 2 +ขี่ม้าส่งเมือง 2 +ขี้หมา 2 +ขี้เซา 2 +ขึ้นครู 2 +ขุดเจาะ 2 +ขุนศึก 2 +ขุนหมื่น 2 +ขุนหลวง 2 +ขุ่นข้อง 2 +ขู่ขวัญ 2 +ข้อกฎหมาย 2 +ข้องแวะ 2 +ข้อด้อย 2 +ข้อต่อ 2 +ข้อต้นๆ 2 +ข้อผิดพลาด 2 +ข้อย่อยๆ 2 +ข้อสัญญา 2 +ข้ออ้าง 2 +ข้าราชการพลเรือน 2 +ข้าราชสำนัก 2 +ข้าวตาก 2 +ข้าวตู 2 +ข้าวพระ 2 +ข้าวพอง 2 +ข้าวเกรียบปากหม้อ 2 +ฃอ 2 +ฃอง 2 +ฃาด 2 +คงขาด 2 +คงแก่เรียน 2 +คชศาสตร์ 2 +คณะรัฐบาล 2 +คดงอ 2 +คดีอาญา 2 +คนจร 2 +คนทรง 2 +คนธ์ 2 +คมๆ 2 +ครรลอง 2 +ครอกๆ 2 +ครอสสติตช์ 2 +ครั่นเนื้อครั่นตัว 2 +คราใด 2 +ครึ 2 +ครุภัณฑ์ 2 +ครุมเครือ 2 +ครุศาสตร์ 2 +คลอนแคลน 2 +คลอแคล 2 +คละคลุ้ง 2 +คลัก 2 +คลานๆ 2 +คลิก 2 +คลึง 2 +คลุกคลาน 2 +คลุมถุงชน 2 +คลุ้มคลั่ง 2 +คล่าว 2 +คล้ำๆ 2 +ควิ้วๆ 2 +คว้างเคว้ง 2 +คอกระเช้า 2 +คอคอดกระ 2 +คอนโดมิเนียม 2 +คออ่อน 2 +คอเป็นเอ็น 2 +คะแนนนิยม 2 +คัดท้าย 2 +คัดลายมือ 2 +คัท 2 +คันๆ 2 +คาธ 2 +คาบศิลา 2 +คาบสมุทร 2 +คาร์โบไฮเดรต 2 +คำบังคับ 2 +คำฟ้อง 2 +คำแสด 2 +คิดหน้าคิดหลัง 2 +คิมหันต์ 2 +คีย์บอร์ด 2 +คืนชีพ 2 +คุณนาม 2 +คุมแค้น 2 +คูถ 2 +คูปอง 2 +คู่กรณี 2 +คู่แห่ 2 +ค่าเสียหาย 2 +ค้อ 2 +ค้ำประกัน 2 +ค๋ะ 2 +ฆนะ 2 +ฆาตกร 2 +ฆ้องโหม่ง 2 +งวดๆ 2 +งอกเงย 2 +งอด 2 +งอม 2 +งอย 2 +งามหน้า 2 +งุ่นง่าน 2 +งูๆปลาๆ 2 +ง้วน 2 +ง้องอน 2 +จตุจักร 2 +จตุปัจจัย 2 +จนตรอก 2 +จรมูก 2 +จรรจา 2 +จรวจ 2 +จริงเท็จ 2 +จรูญ 2 +จอทีวี 2 +จะเข้ 2 +จักร์ๆ 2 +จัณฑาล 2 +จันทนา 2 +จันท์ 2 +จับหลัก 2 +จัว 2 +จาว 2 +จำงาย 2 +จำอวด 2 +จำเรียง 2 +จิกหัว 2 +จิงโจ้น้ำ 2 +จิตภาพ 2 +จิตรา 2 +จิ้มฟันจระเข้ 2 +จี๊ด 2 +จุกเจ่า 2 +จุดศูนย์กลาง 2 +จุปาก 2 +จุมพิต 2 +จุฬาราชมนตรี 2 +จุ๊บๆ 2 +จู๊ด 2 +จู๋จี๋ 2 +จ่ง 2 +จ่ารง 2 +จ้องหน่อง 2 +จ๊อกกี้ 2 +จ๊ะเอ๋ 2 +ฉม 2 +ฉมัง 2 +ฉลององค์ 2 +ฉลัก 2 +ฉัด 2 +ฉับๆ 2 +ฉู่ 2 +ฉ่อง 2 +ชด 2 +ชนชั้นกลาง 2 +ชนมพรรษา 2 +ชลธาร 2 +ชลี 2 +ชวร 2 +ชวาล 2 +ชอก 2 +ชะคราม 2 +ชะต้า 2 +ชักหน้าไม่ถึงหลัง 2 +ชันโรง 2 +ชัพ 2 +ชั้นนำ 2 +ชาต 2 +ชายแครง 2 +ชาร์ท 2 +ชาวต่างชาติ 2 +ชาวนาหมอน 2 +ชิคาโก 2 +ชิงชัน 2 +ชิงทรัพย์ 2 +ชินบุตร 2 +ชีพจร 2 +ชี้วัด 2 +ชึ่งๆๆ 2 +ชื่นมื่น 2 +ชื้นๆ 2 +ชื้อ 2 +ชุกชี 2 +ชูชีพ 2 +ชู้สาว 2 +ซวดเซ 2 +ซวน 2 +ซวนเซ 2 +ซอกซอน 2 +ซอฟต์แวร์ 2 +ซอมซ่อ 2 +ซังกะตาย 2 +ซัดข้าวสาร 2 +ซัลเฟต 2 +ซาวน์ 2 +ซาอุดิอาระเบีย 2 +ซิก 2 +ซิกๆ 2 +ซิบ 2 +ซิม 2 +ซีเรียส 2 +ซุบ 2 +ซุปเปอร์มาร์เก็ต 2 +ซ่ง 2 +ซ่อนรูป 2 +ซ่อมแปลง 2 +ซ้น 2 +ซ้ำซ้อน 2 +ฐานราก 2 +ฐิติ 2 +ดกดื่น 2 +ดงดาน 2 +ดรีม 2 +ดอกฟ้า 2 +ดอกเล็ก 2 +ดอกแห้ง 2 +ดอกไม้รุ่ง 2 +ดักดาน 2 +ดังจริงๆ 2 +ดัสกร 2 +ดาลโทสะ 2 +ดาวตก 2 +ดาวบส 2 +ดาวเสาร์ 2 +ดำนาน 2 +ดำฤษณา 2 +ดำเนินชีวิต 2 +ดิกๆ 2 +ดิษฐ์ 2 +ดิสก์ 2 +ดีฝ่อ 2 +ดุก 2 +ดุด 2 +ดุ่ย 2 +ดูร้าย 2 +ด่างๆ 2 +ด้นดั้น 2 +ตกประหม่า 2 +ตรงกลางๆ 2 +ตระกอง 2 +ตระบอง 2 +ตระบัด 2 +ตระหน่ำ 2 +ตรับ 2 +ตรัย 2 +ตฤณมัย 2 +ตลิ่งๆ 2 +ตวงพระธาตุ 2 +ตวิ๊ดๆ 2 +ตอนนั้นๆ 2 +ตอม่อ 2 +ตะกราม 2 +ตะกลาม 2 +ตะกอ 2 +ตะปูควง 2 +ตะพึด 2 +ตะละ 2 +ตะลุง 2 +ตะลุ่มโปง 2 +ตะแบก 2 +ตักกะ 2 +ตักษัย 2 +ตังๆ 2 +ตันตระ 2 +ตันหยง 2 +ตัวเก็ง 2 +ตัวแปร 2 +ตัวไม้ 2 +ตั้งนาฬิกาปลุก 2 +ตาง 2 +ตาชั่ง 2 +ตาพร่า 2 +ตายทั้งกลม 2 +ตาลุ 2 +ตาวัน 2 +ตาหยี 2 +ตาเรือ 2 +ตาโศก 2 +ตาไก่ 2 +ตำตา 2 +ตำรวจวัง 2 +ติดเครื่อง 2 +ตีนเป็ด 2 +ตีบ 2 +ตีฝีปาก 2 +ตึกๆๆๆ 2 +ตึ้กๆ 2 +ตุรงค์ 2 +ตุล 2 +ตุ้งติ้ง 2 +ตุ๊ด 2 +ตูมตาม 2 +ตู่ตัว 2 +ตู้อบ 2 +ตู้ๆ 2 +ต่วน 2 +ต่อยหอย 2 +ต้นตระกูล 2 +ต๊อก 2 +ถนัดมือ 2 +ถวัลยราชย์ 2 +ถวายกร 2 +ถอดสี 2 +ถอยหลังเข้าคลอง 2 +ถะถั่น 2 +ถับ 2 +ถัว 2 +ถึงแก่น 2 +ถือสิทธิ์ 2 +ถุงน้ำดี 2 +ถ่อง 2 +ถ้อยทีถ้อยอาศัยกัน 2 +ทธิ 2 +ทบวงการ 2 +ทยา 2 +ทรงกลด 2 +ทรงจำเป็น 2 +ทรงหม้อตาล 2 +ทวา 2 +ทศมาส 2 +ทศวรรษ 2 +ทหารบก 2 +ทองทึบ 2 +ทองนพคุณ 2 +ทองสัมฤทธิ์ 2 +ทะนงศักดิ์ 2 +ทะยานใจ 2 +ทัณฑสถาน 2 +ทัณฑ์บน 2 +ทันต์ 2 +ทับทรวง 2 +ทัศ 2 +ทางเก็บ 2 +ทานกัณฑ์ 2 +ทาว 2 +ทำงานบ้าน 2 +ทิพากร 2 +ทิวากาล 2 +ทิวไม้ 2 +ทุกคน 2 +ทุกวัน 2 +ทุกหย่อมหญ้า 2 +ทุนนิยม 2 +ทุนสำรอง 2 +ทุศีล 2 +ทู้ 2 +ธนสาร 2 +ธรณีวิทยา 2 +ธรณีสงฆ์ 2 +ธรรมขันธ์ 2 +ธรรมคุณ 2 +ธรรมจรรยา 2 +ธรรมราชา 2 +ธรา 2 +ธันยา 2 +ธุม 2 +ธุรการ 2 +นกกระจอกทอง 2 +นกกระจิบ 2 +นกกระทุง 2 +นครพนม 2 +นครินทร์ 2 +นพคุณ 2 +นพศก 2 +นภศูล 2 +นรนาถ 2 +นลาฏ 2 +นวดฟั้น 2 +นวลหง 2 +นวโกวาท 2 +นหุต 2 +นอกครู 2 +นอกลู่นอกทาง 2 +นองเนือง 2 +นอนวัน 2 +นอบนบ 2 +นักการทูต 2 +นักงาน 2 +นักวิจัย 2 +นักเรียนๆ 2 +นัตถุ์ 2 +นัยน์เนตร 2 +นั่งร้าน 2 +นั่นปะไร 2 +นาคา 2 +นานสองนาน 2 +นาภี 2 +นายท่า 2 +นายท้าย 2 +นาศ 2 +นาสา 2 +นำร่อง 2 +นิติกรรม 2 +นิติบัญญัติ 2 +นิบาต 2 +นิรนาม 2 +นิรมล 2 +นิรา 2 +นิวซีแลนด์ 2 +นิวยอร์ค 2 +นิวส์ 2 +นิโคติน 2 +นิโรธ 2 +นีออน 2 +นู้น 2 +น่ารักๆ 2 +น้าๆ 2 +น้ำดอกไม้สด 2 +น้ำตะไคร้ 2 +น้ำพระพิพัฒน์สัตยา 2 +น้ำย่อย 2 +น้ำเชื่อม 2 +น้ำเชื้อ 2 +บดขยี้ 2 +บทบงสุ์ 2 +บทบรรณาธิการ 2 +บทมาลย์ 2 +บพิธ 2 +บรรจวบ 2 +บรรณสาร 2 +บราวน์ 2 +บริกร 2 +บริพันธ์ 2 +บริโภคเจดีย์ 2 +บรีส 2 +บอกเล่า 2 +บังคับการ 2 +บังเงา 2 +บังใบ 2 +บัณเฑาะว์ 2 +บัดดล 2 +บัดนิ่ 2 +บันจวบ 2 +บัล 2 +บัวผุด 2 +บางบัวทอง 2 +บางเบา 2 +บางไทร 2 +บาดตา 2 +บาดทะยัก 2 +บาดใจ 2 +บาต 2 +บานพับ 2 +บาบิโลเนียน 2 +บายศรีปากชาม 2 +บำบวง 2 +บำเทิง 2 +บีบขมับ 2 +บึงบาง 2 +บุคลากร 2 +บุง 2 +บุญหนักศักดิ์ใหญ่ 2 +บุบสลาย 2 +บุปผชาติ 2 +บุรณะ 2 +บุษบัน 2 +บุ๊ค 2 +บูรี 2 +บู๊ 2 +บ่อนทำลาย 2 +บ้าเลือด 2 +ปง 2 +ปฏิกรรมสงคราม 2 +ปฏิกูล 2 +ปฏิญญา 2 +ปฏิพัทธ์ 2 +ปฏิเสธข่าว 2 +ปฐมสมโพธิ 2 +ปติ 2 +ปถพี 2 +ปรน 2 +ปรม 2 +ปรมาณู 2 +ประกวดราคา 2 +ประการๆ 2 +ประคับประคอง 2 +ประคำ 2 +ประจำชาติ 2 +ประจำซอง 2 +ประจำยาม 2 +ประชาสงเคราะห์ 2 +ประตูชัย 2 +ประทักษิณ 2 +ประทิน 2 +ประนัง 2 +ประภัสสร 2 +ประภา 2 +ประภากร 2 +ประยุร 2 +ประสานงา 2 +ประสิว 2 +ประเชิญ 2 +ประเด 2 +ประเวศ 2 +ประแจ 2 +ประโมทย์ 2 +ประโยคๆ 2 +ประโลมโลก 2 +ปรัชญาเมธี 2 +ปรากฤต 2 +ปรางค์ปรา 2 +ปราจีนบุรี 2 +ปราณ 2 +ปราดๆ 2 +ปราน 2 +ปริวิตก 2 +ปริศนาธรรม 2 +ปรู๊บ 2 +ปร่า 2 +ปลงธุระ 2 +ปลงผม 2 +ปลากราย 2 +ปลาต 2 +ปลุกระดม 2 +ปล่อยเนื้อปล่อยตัว 2 +ปล้อน 2 +ปสาน 2 +ปอกลอก 2 +ปะตาระกาหลา 2 +ปักษี 2 +ปัจจุสมัย 2 +ปัจฉิม 2 +ปัจฉิมลิขิต 2 +ปัจเจกโพธิ 2 +ปัญจวัคคีย์ 2 +ปัศจิม 2 +ปั้นปึ่ง 2 +ปั้นเจ๋อ 2 +ปากคีบ 2 +ปาณาติบาต 2 +ปาหนัน 2 +ปิดๆ 2 +ปิตุลา 2 +ปิ่ 2 +ปิ่ม 2 +ปีกค้างคาว 2 +ปูชา 2 +ปูนปลาสเตอร์ 2 +ปูม 2 +ป่นๆ 2 +ป่วง 2 +ป่าเถื่อน 2 +ป้ายสี 2 +ป๊า 2 +ป๋า 2 +ผกผัน 2 +ผกากรอง 2 +ผงาด 2 +ผลก 2 +ผลุบๆ 2 +ผอก 2 +ผักหวาน 2 +ผัวๆ 2 +ผาก 2 +ผิวเรียบ 2 +ผีเรือน 2 +ผึงๆ 2 +ผุๆ 2 +ผูกพัทธสีมา 2 +ผู้จัดทำ 2 +ผู้ตอบ 2 +ผู้ถือหุ้น 2 +ผู้รับรอง 2 +ผู้สำเร็จราชการ 2 +ผู้สื่อข่าว 2 +ผู้เลี้ยงดู 2 +ผู้ใด 2 +ผ้ากฐิน 2 +ผ้าตา 2 +ผ้าป่า 2 +ผ้าแถบ 2 +ฝืด 2 +ฝืนๆ 2 +ฝ่ายซ้าย 2 +พญาลอ 2 +พณิชยการ 2 +พนาย 2 +พรหมินทร์ 2 +พระชนม์ชีพ 2 +พระบัญญัติ 2 +พระพุทธเจ้าอยู่หัว 2 +พระภูมิ 2 +พระมหากระษัตร 2 +พระมหากระษัตราธิราชเจ้า 2 +พระมหากระษัตริย์เจ้า 2 +พระราชอาคันตุกะ 2 +พระราชานุสาวรีย์ 2 +พระเจ้าวรวงศ์เธอ 2 +พระเถระ 2 +พรัด 2 +พรานๆ 2 +พรายๆ 2 +พราวแพรว 2 +พราหมณ์ขายเมีย 2 +พราหมณ์ดีดน้ำเต้า 2 +พริ้นท์ 2 +พริ้มพราย 2 +พรืด 2 +พร่ำเพ้อ 2 +พลวง 2 +พลังจิต 2 +พลาดๆ 2 +พลุ้ย 2 +พลเรือเอก 2 +พวงๆ 2 +พสก 2 +พหลโยธิน 2 +พอกพูน 2 +พอดีๆ 2 +พอมีพอกิน 2 +พอมีอันจะกิน 2 +พะแนง 2 +พักร 2 +พังพาบ 2 +พัช 2 +พัดโบก 2 +พัทธ์ 2 +พันตา 2 +พันล้าน 2 +พัลลภ 2 +พัว 2 +พาง 2 +พาณ 2 +พาราณสีๆ 2 +พารามีเซียม 2 +พาร์ท 2 +พาหุรัด 2 +พาฬ 2 +พาไล 2 +พิทยาธร 2 +พิธาน 2 +พิปริต 2 +พิมพ์ทอง 2 +พิลาป 2 +พิลาส 2 +พิศดาร 2 +พิษสุนัขบ้า 2 +พิสัย 2 +พิสุทธิ์ 2 +พิหาร 2 +พี้ 2 +พุฒ 2 +พุทธปฏิมา 2 +พุทธิ 2 +พุ่งพรวด 2 +พุ่มข้าวบิณฑ์ 2 +พ้องพาน 2 +พ้อม 2 +ฟักฟูม 2 +ฟิล์ม 2 +ฟิวส์ 2 +ฟี่ 2 +ฟื้นองค์ 2 +ภรณี 2 +ภราดรภาพ 2 +ภาคปฏิบัติ 2 +ภาม 2 +ภาสน์ 2 +ภูธเรศ 2 +ภูมิแพ้ 2 +ภูเบนทร์ 2 +มงคลสูตร 2 +มนุษยศาสตร์ 2 +มฤค 2 +มละ 2 +มวยวัด 2 +มหกรรม 2 +มหาพน 2 +มหายาน 2 +มหาสงกรานต์ 2 +มหาสารคาม 2 +มหาอำนาจ 2 +มหิดล 2 +มหิมา 2 +มอเตอร์ไซค์ 2 +มะงุมมะงาหรา 2 +มะตาด 2 +มะปริง 2 +มะละกา 2 +มะโต 2 +มักคุ้น 2 +มักมาก 2 +มัฆวาน 2 +มัจฉาชาติ 2 +มันฝรั่ง 2 +มันส์ 2 +มันแกว 2 +มาดา 2 +มาตร 2 +มาตราส่วน 2 +มานพ 2 +มานิต 2 +มาร์ช 2 +มาลำ 2 +มาแขก 2 +มาๆ 2 +มิชชั่น 2 +มิลลิเมตร 2 +มิสกวัน 2 +มีดโกน 2 +มีเดีย 2 +มีๆ 2 +มุขตลก 2 +มุขมนตรี 2 +มุสา 2 +มุ่งร้ายหมายขวัญ 2 +มุ่นหมก 2 +มูตร 2 +มูลโค 2 +มูเซอ 2 +มู่ลี่ 2 +มเหศวร 2 +มโนรมย์ 2 +ม้อคกิ้งเบิ๊ด 2 +ม้าย่อง 2 +ยกกระบัตร 2 +ยกทรง 2 +ยกยอด 2 +ยวด 2 +ยองๆ 2 +ยะลา 2 +ยักขินี 2 +ยักษิณี 2 +ยัญ 2 +ยาจืด 2 +ยาดา 2 +ยานมาศ 2 +ยามักการ 2 +ยาหยี 2 +ยิมนาสติก 2 +ยิ่นดิ่ 2 +ยีน 2 +ยี่ภู่ 2 +ยึดทรัพย์ 2 +ยึดอำนาจ 2 +ยืนหยัด 2 +ยุกต์ 2 +ยุคุนธร 2 +ยุต 2 +ยุทธภัณฑ์ 2 +ยูนิฟอร์ม 2 +ย่นๆ 2 +ย่อมุม 2 +ย่อมเยาว์ 2 +ย่อย่น 2 +ย่ำแย่ 2 +ย้อนหลัง 2 +รพี 2 +รองนายกรัฐมนตรี 2 +รอมร่อ 2 +รอยร้าว 2 +ระงมไพร 2 +ระดา 2 +ระนอง 2 +ระนาว 2 +ระบบระเบียบ 2 +ระมาด 2 +ระวิง 2 +ระสาย 2 +ระเนน 2 +ระแคะระคาย 2 +รักขิต 2 +รัชฎาภิเษก 2 +รัฐมนตรีว่าการ 2 +รัฐวิสาหกิจ 2 +รัตติกาล 2 +รับกฐิน 2 +รับมือ 2 +รับเหมา 2 +รากฝอย 2 +รากสามสิบ 2 +ราคิน 2 +ราชบุตรๆ 2 +ราชวงศา 2 +ราชวรมหาวิหาร 2 +ราชาๆ 2 +ราชิ 2 +รามคำแหง 2 +รายรับ 2 +ราเชนทร์ 2 +รำไพ 2 +ริดสีดวง 2 +รุ่นๆ 2 +รุ่ยร่าย 2 +ร่องๆ 2 +ร้องฎีกา 2 +ร้องห่ม 2 +ร้านชำ 2 +ร้าวฉาน 2 +ฤๅษีแปลงสาร 2 +ลงขัน 2 +ลงพื้น 2 +ลงอุโบสถ 2 +ลงแรงๆ 2 +ลดๆ 2 +ลนควัน 2 +ลบเหลี่ยม 2 +ลมกรด 2 +ลมแล้ง 2 +ลอกท้องร่อง 2 +ละเมียด 2 +ละเวง 2 +ลักษะ 2 +ลัคนา 2 +ลังถึง 2 +ลัดนิ้วมือ 2 +ลันไต 2 +ลั่นปาก 2 +ลากเส้น 2 +ลานช้าง 2 +ลานนา 2 +ลายสอ 2 +ลายอย่าง 2 +ลายๆ 2 +ลำลอง 2 +ลำเจียก 2 +ลำๆ 2 +ลิกู 2 +ลิกไนต์ 2 +ลิขสิทธิ์ 2 +ลิ้นไก่ 2 +ลื่อ 2 +ลุกฮือ 2 +ลุ่นๆ 2 +ลูกข่าง 2 +ลูกตุ้ม 2 +ลูกบท 2 +ลูกเห็บ 2 +ล็อก 2 +ล็อค 2 +ล้นเกล้าล้นกระหม่อม 2 +ล้านๆ 2 +วงรี 2 +วงเดือน 2 +วชิระ 2 +วนิดา 2 +วรรคๆ 2 +วรรธนะ 2 +วรรษ 2 +วสันต์ 2 +วอด 2 +วังชา 2 +วัฏจักร 2 +วัดผล 2 +วันทยหัตถ์ 2 +วายชีวิต 2 +วาฬ 2 +วาโย 2 +วิชนี 2 +วิทยาทาน 2 +วินาศ 2 +วิภาช 2 +วิภาษ 2 +วิลาวัณย์ 2 +วิลาศ 2 +วิลาส 2 +วิษณุ 2 +วิสุงคามสีมา 2 +วิสุทธิ์ 2 +วิโรจน์ 2 +วิไลวรรณ 2 +วิ่งเปี้ยว 2 +วีรชน 2 +วุด 2 +วุ้ย 2 +ว่าความ 2 +ว่าที่ 2 +ว่าวอน 2 +ศรนารายณ์ 2 +ศรีสะเกษ 2 +ศวา 2 +ศารทูล 2 +ศาลคดีเด็กและเยาวชน 2 +ศาลสูง 2 +ศาสนสถาน 2 +ศุลกากร 2 +สกทาคามี 2 +สกรรจ์ 2 +สกา 2 +สกาว 2 +สกุณ 2 +สกุณี 2 +สติปัฏฐาน 2 +สนธิสัญญา 2 +สนมเอก 2 +สนามบิน 2 +สนามเพลาะ 2 +สนุ่น 2 +สมจร 2 +สมบุญ 2 +สมประดี 2 +สมมุติฐาน 2 +สมสู่ 2 +สมิงทอง 2 +สมุก 2 +สระพรั่ง 2 +สวมรอย 2 +สวามิ 2 +สะดวกสบาย 2 +สะบัดๆ 2 +สะพานแขวน 2 +สะพายแล่ง 2 +สะระตะ 2 +สะสาง 2 +สะอาง 2 +สะเก็ด 2 +สะเดาอินเดีย 2 +สะเด็ด 2 +สะไอ 2 +สังฆทาน 2 +สังฆมณฑล 2 +สังโยค 2 +สัทธา 2 +สันตติ 2 +สันตะปาปาๆ 2 +สันเขา 2 +สัปเหร่อ 2 +สัพ 2 +สั่นคลอน 2 +สากกะเบือ 2 +สาครบุรี 2 +สาตรา 2 +สาธารณสมบัติ 2 +สาบเสือ 2 +สามตา 2 +สามหาว 2 +สามิภักดิ์ 2 +สายดิน 2 +สายตัว 2 +สายยู 2 +สายระยาง 2 +สายระเดียง 2 +สารกัมมันตภาพรังสี 2 +สารถีชักรถ 2 +สารบรรณ 2 +สารพางค์ 2 +สาลินี 2 +สาลี่ 2 +สาวแส้ 2 +สาวใภ้ 2 +สาไถย 2 +สำปั้น 2 +สำริด 2 +สำส่อน 2 +สำออย 2 +สำเภาทอง 2 +สิกข์ 2 +สิงห์บุรี 2 +สิญจน์ 2 +สินน้ำใจ 2 +สินี 2 +สิ่งประดิษฐ์ 2 +สีน้ำมัน 2 +สีหนาท 2 +สีๆ 2 +สี่เหลี่ยมผืนผ้า 2 +สึกกร่อน 2 +สืบสาวราวเรื่อง 2 +สุขภัณฑ์ 2 +สุขวิทยา 2 +สุงสิง 2 +สุณิสา 2 +สุดคน 2 +สุบรรณ 2 +สุภา 2 +สุริยง 2 +สุริยวงศ์ 2 +สุริย์ 2 +สุวภาพ 2 +สูติ 2 +สู่สม 2 +สแกนดิเนเวีย 2 +สโตร์ 2 +ส่งสาร 2 +ส่วนท้องถิ่น 2 +ส่วนโค้ง 2 +ส้มป่อย 2 +หง 2 +หงอ 2 +หงอยๆ 2 +หนองบัวลำภู 2 +หนังกลางวัน 2 +หนาหู 2 +หนำใจ 2 +หน่วยราชการ 2 +หน่อไม้ฝรั่ง 2 +หน้างอ 2 +หน้าจั่ว 2 +หน้าซีดๆ 2 +หน้าตาย 2 +หน้าบัน 2 +หน้าเง้า 2 +หมดอาลัย 2 +หมดไส้หมดพุง 2 +หมองหมาง 2 +หมอตำแย 2 +หมอนทอง 2 +หมอบๆ 2 +หมับ 2 +หมากขาม 2 +หมากสง 2 +หมางเมิน 2 +หม่อ 2 +หม่อง 2 +หม่ำ 2 +หยอยๆ 2 +หยากเยื่อ 2 +หยิกๆ 2 +หยุมๆ 2 +หย่อง 2 +หรดาล 2 +หรดี 2 +หฤโหด 2 +หลบๆ 2 +หลวงจีน 2 +หลังฉาก 2 +หลังเท้า 2 +หลัดๆ 2 +หลิน 2 +หลิ่ง 2 +หลี 2 +หลีฮื้อ 2 +หลุกหลิก 2 +หวย 2 +หวิดๆ 2 +หะหาย 2 +หักร้าง 2 +หัวซุน 2 +หัวปลวก 2 +หัวรุนแรง 2 +หัวลม 2 +หัวอ่อน 2 +หัวเด็ดตีนขาด 2 +หัวเต่า 2 +หัวเม็ด 2 +หัวแรง 2 +หัวแหลม 2 +หัวใหม่ 2 +หั้น 2 +หางหงส์ 2 +หามรุ่งหามค่ำ 2 +หาได้ 2 +หิต 2 +หินทราย 2 +หินปูน 2 +หินยาน 2 +หิรัญ 2 +หื่น 2 +หุบๆ 2 +หุ้น 2 +หุ้มแผลง 2 +หูกระต่าย 2 +หูผึ่ง 2 +ห่อเหี่ยว 2 +ห้วงๆ 2 +ห้างหุ้นส่วน 2 +ห้ามสมุทร 2 +อกตั้ง 2 +อกุศลกรรม 2 +องค์การโทรศัพท์แห่งประเทศไทย 2 +อธิกมาส 2 +อธิราช 2 +อนาจาร 2 +อนุชิต 2 +อนุทิน 2 +อนุภาค 2 +อบเชย 2 +อพาร์ตเมนต์ 2 +อภิลักขิตกาล 2 +อภิลักขิตสมัย 2 +อภิวันทน์ 2 +อมโรค 2 +อยู่เวร 2 +อรชุน 2 +อรัญญิก 2 +อรูป 2 +อลงกรณ์ 2 +อลัชชี 2 +อวชาตบุตร 2 +อวพจน์ 2 +อวิจี 2 +อสูร 2 +ออกดอกออกผล 2 +ออกลูกออกหลาน 2 +ออกโรง 2 +ออกๆ 2 +อักษะ 2 +อัครราชทูต 2 +อังสา 2 +อัจกลับ 2 +อัณฑชะ 2 +อัดลม 2 +อัมพวัน 2 +อัมพุ 2 +อากัป 2 +อาคารชุด 2 +อาชีวะ 2 +อาณัติ 2 +อาภา 2 +อารบิก 2 +อาวาส 2 +อาเกียรณ์ 2 +อำพัน 2 +อำมฤต 2 +อิดหนาระอาใจ 2 +อินังขังขอบ 2 +อินโดจีน 2 +อิสตรี 2 +อิ่มหมีพีมัน 2 +อีจู้ 2 +อีเป้า 2 +อึงอล 2 +อุก 2 +อุกอาจ 2 +อุณา 2 +อุปถัมภก 2 +อุปัฏฐาก 2 +อุปัทวันตราย 2 +อุสุภ 2 +อุสุม 2 +อุ้มน้ำ 2 +อู้ๆ 2 +อเมริกาใต้ 2 +อ่อนเปลี้ย 2 +อ่านๆ 2 +อ่ำ 2 +อ้ายบ้า 2 +อ้าๆ 2 +ฮวบ 2 +ฮั้ว 2 +ฮาร์ท 2 +ฮูก 2 +ฮ้าไฮ้ 2 +เกตุมาลา 2 +เกรด 2 +เกริน 2 +เกลือแกง 2 +เกลื้อ 2 +เกาะแกะ 2 +เกาเหลียง 2 +เกียง 2 +เกียรติ์ 2 +เกี๊ยะ 2 +เก็บตก 2 +เก๊ 2 +เขมรใหญ่ 2 +เขวี้ยง 2 +เขียวเสวย 2 +เขียวไข่กา 2 +เขี่ยน 2 +เข็ง 2 +เข้าชื่อ 2 +เข้าหลัก 2 +เข้าเค้า 2 +เข้าเฝือก 2 +เข้าแบบ 2 +เข้าๆ 2 +เครดิต 2 +เครียดๆ 2 +เครือเขา 2 +เครื่องราชอิสริยาภรณ์ 2 +เครื่องร่อน 2 +เครื่องว่าง 2 +เครื่องหมายการค้า 2 +เครื่องเสียง 2 +เคลียคลอ 2 +เคล้าเคลีย 2 +เคียม 2 +เคี้ยวฟัน 2 +เงอะงะ 2 +เงี่ย 2 +เงี่ยง 2 +เงือดงด 2 +เจว็ด 2 +เจษฎา 2 +เจิด 2 +เจิดจ้า 2 +เจียระบาด 2 +เจี๊ยบๆ 2 +เจื่อน 2 +เจ่อ 2 +เจ้ 2 +เจ้าขรัว 2 +เจ้าจอมมารดา 2 +เจ้าถิ่น 2 +เฉท 2 +เฉนียน 2 +เฉพาะกาล 2 +เฉลียวใจ 2 +เฉอะแฉะ 2 +เฉาก๊วย 2 +เฉิด 2 +เชลยศึก 2 +เชิงกลอน 2 +เชิงชั้น 2 +เชียงของ 2 +เซิร์ฟ 2 +เซ่ง 2 +เดก 2 +เดินโต๊ะ 2 +เดือนเต็ม 2 +เด็ดๆ 2 +เด๋อ 2 +เตี่ยว 2 +เต้นแร้งเต้นกา 2 +เต้าส่วน 2 +เถกิง 2 +เถน 2 +เถร 2 +เถรานุเถระ 2 +เทวา 2 +เทศาภิบาล 2 +เทิร์น 2 +เทิ่ง 2 +เทียร 2 +เที่ยงๆ 2 +เท่อ 2 +เท่าทุน 2 +เธอๆ 2 +เนียง 2 +เนืองนอง 2 +เนื้องอก 2 +เน่ง 2 +เน้อ 2 +เบญจศก 2 +เบาราณ 2 +เบาแรง 2 +เบิกความ 2 +เบียดกรอ 2 +เบี่ยงเบน 2 +เปลญวน 2 +เปลาะๆ 2 +เปล่าดาย 2 +เปาะ 2 +เปิดบัญชี 2 +เปิดใจ 2 +เปิดๆ 2 +เปิบข้าว 2 +เปิ่น 2 +เปียว 2 +เปี๊ยบ 2 +เป็นบ้าเป็นหลัง 2 +เป็นล่ำเป็นสัน 2 +เป็นวรรคเป็นเวร 2 +เป็นใจ 2 +เป็นไทย 2 +เป๋อ 2 +เผลอๆ 2 +เพชรน้ำหนึ่ง 2 +เพทาย 2 +เพนนี 2 +เพราพริ้ง 2 +เพริศ 2 +เพริศพริ้ง 2 +เพริศแพร้ว 2 +เพลาะ 2 +เพลิงกัลป์ 2 +เพลี่ยง 2 +เพล็ด 2 +เพ่งๆ 2 +เฟค 2 +เฟอร์รัส 2 +เฟือง 2 +เฟือน 2 +เฟื้อ 2 +เภตรา 2 +เภรี 2 +เภสัชวิทยา 2 +เมกะเฮิรตซ์ 2 +เมฆี 2 +เมถุน 2 +เมนเฟรม 2 +เมลือง 2 +เมาะตะมะ 2 +เมินๆ 2 +เมียงม่าย 2 +เมียๆ 2 +เยอว 2 +เยาวลักษณ์ 2 +เยิ่น 2 +เยี่ยมยอด 2 +เยี่ยมๆ 2 +เยื้อ 2 +เย็นตาโฟ 2 +เย็บเล่ม 2 +เรขาคณิต 2 +เรณู 2 +เริศร้าง 2 +เรียงพิมพ์ 2 +เรียงหมอน 2 +เรียบง่าย 2 +เรือก 2 +เรืองแสง 2 +เรือนหอ 2 +เรือโยง 2 +เรื่อยเจื้อย 2 +เลกวัด 2 +เลดี 2 +เลท 2 +เลียนเสียง 2 +เลี้ยงส่ง 2 +เลี้ยวๆ 2 +เลือดร้อน 2 +เล่นเบี้ย 2 +เล่ห์กระเท่ห์ 2 +เล้าโลม 2 +เวจ 2 +เวชกรรม 2 +เวชยันต์ 2 +เวรๆ 2 +เวลลิงตัน 2 +เวไนย 2 +เสตร็ทโตรสโคป 2 +เสนีย์ 2 +เสาตะลุง 2 +เสาวคนธ์ 2 +เสาหมอ 2 +เสาเข็ม 2 +เสียบน 2 +เสียหน้า 2 +เสียอกเสียใจ 2 +เสียเชิง 2 +เสือกไส 2 +เสือตกถัง 2 +เสือๆ 2 +เส้นหมี่ 2 +เส้นๆ 2 +เส้า 2 +เหงือกปลาหมอ 2 +เหงื่อกาฬ 2 +เหนอะหนะ 2 +เหนียง 2 +เหน่ง 2 +เหมาหลาหงี 2 +เหมือนกับว่า 2 +เหยง 2 +เหยี่ยวๆ 2 +เหลือบ่ากว่าแรง 2 +เหลือหลอ 2 +เหล็กกล้า 2 +เหิมฮึก 2 +เหือด 2 +เอกศก 2 +เอกอุ 2 +เอนกาย 2 +เอาผิด 2 +เอาละๆ 2 +เอาเถิดเจ้าล่อ 2 +เอาใช้ 2 +เอิ้บๆ 2 +เอี๊ยม 2 +เอื้อมอาจ 2 +เอเดน 2 +เอเย่นต์ 2 +เฮอ 2 +เฮ่อ 2 +เฮ้ว 2 +แกะรอย 2 +แก้ง 2 +แขวะ 2 +แคชเชียร์ 2 +แคฝรั่ง 2 +แครอท 2 +แคล้วคลาด 2 +แงะ 2 +แจ่ง 2 +แฉ่ง 2 +แชงมา 2 +แชท 2 +แซ่ซ้อง 2 +แดดาล 2 +แต๊ดแต๋ 2 +แถก 2 +แถลงข่าว 2 +แทรกซึม 2 +แนม 2 +แบต 2 +แบบพิธี 2 +แบล็ก 2 +แบหลา 2 +แบเบาะ 2 +แปม 2 +แปรญัตติ 2 +แปลกปลอม 2 +แป้งญวน 2 +แป้งมัน 2 +แป้งสารภี 2 +แป๊บ 2 +แผนกๆ 2 +แผ่ซ่าน 2 +แพทย์ศาสตร์ 2 +แพ้พ่าย 2 +แฟ้บ 2 +แมค 2 +แมวมอง 2 +แม็ก 2 +แม่นๆ 2 +แม่ม่าย 2 +แม่ยาย 2 +แย่ๆ 2 +แรงดลใจ 2 +แลคเกอร์ 2 +แลนด์ 2 +และเลียม 2 +แวดวง 2 +แวววาม 2 +แว่นขยาย 2 +แสกๆ 2 +แสดงทรรศนะ 2 +แสดงเหตุผล 2 +แสนกล 2 +แสนยานุภาพ 2 +แสะ 2 +แหนม 2 +แหนหวง 2 +แหนแห่ 2 +แหย 2 +แหยง 2 +แหย่ง 2 +แหลกลาญ 2 +แหะ 2 +แห้งเหือด 2 +แอด 2 +แอบๆ 2 +แอ้ด 2 +แฮ่กึ๊น 2 +โกรธแค้น 2 +โกสุม 2 +โกโก้ 2 +โขลนทวาร 2 +โคบาล 2 +โคมเวียน 2 +โครมๆ 2 +โค่ง 2 +โงก 2 +โจ๋ 2 +โฉงเฉง 2 +โฉ่งฉ่าง 2 +โซเชียลิสต์ 2 +โซเดียมคลอไรด์ 2 +โซเวียต 2 +โดดเด่น 2 +โตรก 2 +โต้คารม 2 +โต๊ะกลม 2 +โทศก 2 +โนรา 2 +โน๊ต 2 +โบกขรพรรษ 2 +โปง 2 +โปดก 2 +โปร 2 +โป้ 2 +โป้งๆ 2 +โป้ปด 2 +โป๊ป 2 +โผอน 2 +โพธิสัตว์ๆ 2 +โพล่งๆ 2 +โภคะ 2 +โภช 2 +โมงครุ่ม 2 +โมลี 2 +โม่งโค่ง 2 +โยนหัวโยนก้อย 2 +โรคประสาท 2 +โรธ 2 +โรมันคาทอลิก 2 +โรล 2 +โลกอุดร 2 +โลกีย์ 2 +โวการ 2 +โว้เว้ 2 +โสดา 2 +โหน่ง 2 +โหยไห้ 2 +โหลด 2 +โอฆสงสาร 2 +โอบเอื้อ 2 +โอ่อวด 2 +โอ๊ต 2 +ใจต่ำ 2 +ในขณะนั้นๆ 2 +ใบทอง 2 +ใบระกา 2 +ใบลา 2 +ใบเสร็จ 2 +ไกล่ 2 +ไก่แก้ว 2 +ไขหู 2 +ไข่จระเข้ 2 +ไข่หวาน 2 +ไข่เหี้ย 2 +ไข้พิษ 2 +ไข้มาลาเรีย 2 +ไข้สันนิบาต 2 +ไข้ๆ 2 +ไคลแมกซ์ 2 +ได้ชื่อ 2 +ไตรรัตน์ 2 +ไตรสรณคมน์ 2 +ไต่ไม้ 2 +ไถดะ 2 +ไถ่บาป 2 +ไทยมุง 2 +ไทรทอง 2 +ไทเป 2 +ไนลอน 2 +ไปรเวต 2 +ไพชยนต์ 2 +ไพรวัน 2 +ไมโครกรัม 2 +ไมโครฟิล์ม 2 +ไมโครเวฟ 2 +ไม้ตาย 2 +ไม้ตีพริก 2 +ไม้โอ 2 +ไรๆ 2 +ไลท์ 2 +ไวไฟ 2 +ไว้ธุระ 2 +ไส้ตัน 2 +ไอพ่น 2 +ไอริช 2 +ไอแดด 2 +ไฮดรา 2 +ไฮโดรเจน 2 +กกกอด 1 +กงกำกงเกวียน 1 +กงสี 1 +กช 1 +กฎหมายอาญา 1 +กฎหมายแพ่ง 1 +กฎๆ 1 +กดราคา 1 +กดหัว 1 +กถามุข 1 +กบาล 1 +กรก 1 +กรกฎ 1 +กรดอะมิโน 1 +กรมการศาสนา 1 +กรมประชาสัมพันธ์ 1 +กรรทบ 1 +กรรบิด 1 +กรรภิรมย์ 1 +กรรมชวาต 1 +กรรมวาจก 1 +กรรแซง 1 +กรรแทรก 1 +กรรแสง 1 +กรวบ 1 +กระจับปิ้ง 1 +กระจิด 1 +กระจุ๋มกระจิ๋ม 1 +กระจูด 1 +กระจู๋กระจี๋ 1 +กระจ่า 1 +กระจ้อย 1 +กระชดกระช้อย 1 +กระชุ่มกระชวย 1 +กระซับ 1 +กระซาบ 1 +กระดาษกาว 1 +กระดาษพิมพ์ 1 +กระดาษแก้ว 1 +กระดิกๆ 1 +กระดิบ 1 +กระดุบกระดิบ 1 +กระดุ้งกระดิ้ง 1 +กระตุ่น 1 +กระตุ้งกระติ้ง 1 +กระทงลอย 1 +กระทงๆ 1 +กระทรวงมหาดไทย 1 +กระทุง 1 +กระทุ้งๆ 1 +กระทู้ถาม 1 +กระนั้นก็ตาม 1 +กระบวร 1 +กระบาย 1 +กระบิด 1 +กระบิล 1 +กระป่อง 1 +กระผลีกระผลาม 1 +กระพัด 1 +กระพี้ 1 +กระพุ้ง 1 +กระพุ้งแก้ม 1 +กระฟัดกระเฟียด 1 +กระมล 1 +กระยา 1 +กระยิ้มกระย่อง 1 +กระยืดกระยาด 1 +กระย่องกระแย่ง 1 +กระวน 1 +กระวาน 1 +กระษัตรี 1 +กระสร้อย 1 +กระสูบ 1 +กระหนกนารี 1 +กระหนุงกระหนิง 1 +กระหรอด 1 +กระอักกระอ่วน 1 +กระอุ 1 +กระเชอ 1 +กระเตาะๆ 1 +กระเย้อกระแหย่ง 1 +กระเส่าๆ 1 +กระเหม่า 1 +กระแชง 1 +กระแด่วๆ 1 +กระแท่น 1 +กระโจมไฟ 1 +กระโชกกระชั้น 1 +กระโชกกระชาก 1 +กรัณฑ์ 1 +กราบๆ 1 +กราวเกรียว 1 +กราวๆ 1 +กรินทร์ 1 +กริวกราว 1 +กริ๊งๆ 1 +กรีดกราด 1 +กรีดนิ้ว 1 +กรุงเทพมหานครฯ 1 +กรุงไทย 1 +กร้อ 1 +กร้าวแกร่ง 1 +กร๊วบๆ 1 +กร๊อดๆ 1 +กฤดาการ 1 +กฤดาภินิหาร 1 +กฤษฎีกา 1 +กลมดิก 1 +กลยุทธ์ 1 +กลศาสตร์ 1 +กลับตัว 1 +กลางค่ำ 1 +กลุ้มอกกลุ้มใจ 1 +กลู่ 1 +กล่องๆ 1 +กล่าวอำลา 1 +กล่าวเกลี้ยง 1 +กล้วยกล้าย 1 +กล้องภาพยนตร์ 1 +กล้องโทรทรรศน์ 1 +กล้อมแกล้ม 1 +กล้าย 1 +กวะ 1 +กวา 1 +กวางตุ้ง 1 +กวาดๆ 1 +กว้า 1 +กว๊าน 1 +กว๋อๆๆ 1 +กษัตรี 1 +กสิกรไทย 1 +กสิณ 1 +กองกำลัง 1 +กองกูณฑ์ 1 +กองข้าว 1 +กองทัพบก 1 +กองบัญชาการ 1 +กอๆ 1 +กะต่า 1 +กะต๊ากๆ 1 +กะทกรก 1 +กะทอ 1 +กะทัง 1 +กะทัน 1 +กะปริบกะปรอย 1 +กะราง 1 +กะหรี่ 1 +กะโต๊กๆ 1 +กังก้า 1 +กังฉิน 1 +กังไส 1 +กัดแทะ 1 +กันตัง 1 +กันต์ 1 +กันย์ 1 +กัปปิยะ 1 +กัมพุช 1 +กัมโพชะ 1 +กัลเม็ด 1 +กั้นหยั่น 1 +กั้บๆ 1 +กามคุณ 1 +กายบริหาร 1 +กายภาพบำบัด 1 +การบูร 1 +การ์เดน 1 +กาลกิริยา 1 +กาสัก 1 +กาหลง 1 +กาเว้าๆ 1 +กาเหว่าๆ 1 +กาไหล่ 1 +กำกับดูแล 1 +กำซาบ 1 +กำถั่ว 1 +กำพืด 1 +กำมะลอ 1 +กำมือๆ 1 +กำแพงเพชร 1 +กำไลมือ 1 +กำๆ 1 +กิตติกรรมประกาศ 1 +กินกำไร 1 +กินดิบๆ 1 +กินตา 1 +กินนรรำ 1 +กินนอกกินใน 1 +กินปลี 1 +กินล้างกินผลาญ 1 +กินอยู่พูวาย 1 +กินเจ 1 +กินเปี้ยว 1 +กินแถว 1 +กิโมโน 1 +กีวี 1 +กึกกือ 1 +กึกๆ 1 +กุญแจมือ 1 +กุฏไต 1 +กุณฑี 1 +กุบ 1 +กุมภวาปี 1 +กุย 1 +กุยช่าย 1 +กุยเฮง 1 +กุระ 1 +กุลาดำ 1 +กุสุมา 1 +กุ๊น 1 +กุ๊ย 1 +กุ๋ยๆ 1 +กูด 1 +ก็ๆ 1 +ก่าน 1 +ก้นขบ 1 +ก้นครัว 1 +ก้อนเส้า 1 +ก้อม 1 +ก้านตอง 1 +ก้าวๆ 1 +ก๊าน 1 +ขณะนั้นๆ 1 +ขนมเส้น 1 +ขนาดนั้น 1 +ขนาดๆ 1 +ขนิษฐ 1 +ขบเผาะ 1 +ขมอง 1 +ขมิ้นอ้อย 1 +ขมึง 1 +ขยัก 1 +ขยักขย่อน 1 +ขยันขันแข็ง 1 +ขยันๆ 1 +ขยับๆ 1 +ขยาดๆ 1 +ขย่ม 1 +ขริบ 1 +ขลาดๆ 1 +ขวนๆ 1 +ขวัญดีๆ 1 +ขวากหนาม 1 +ขวางๆ 1 +ขอคำแนะนำ 1 +ของวัด 1 +ของเค็ม 1 +ของเด็กเล่น 1 +ของแห้งๆ 1 +ของใหม่ 1 +ขอฉาย 1 +ขอดค่อน 1 +ขอนดอก 1 +ขอบคุณๆ 1 +ขอมๆ 1 +ขอสับ 1 +ขอให้ 1 +ขะข่ำ 1 +ขัดดอก 1 +ขัดยอก 1 +ขัดสมาธิ 1 +ขัดแข็ง 1 +ขัตติยมานะ 1 +ขับเคลื่อน 1 +ขั้นตอนนี้ 1 +ขั้นสูงๆ 1 +ขาดดุล 1 +ขาดเสบียงอาหาร 1 +ขานาง 1 +ขาพับ 1 +ขายชาติ 1 +ขาหยั่ง 1 +ขำๆ 1 +ขิก 1 +ขิด 1 +ขิ่ง 1 +ขีณาสพ 1 +ขีดขั้น 1 +ขีดคั่น 1 +ขี้กา 1 +ขี้ก้าง 1 +ขี้ครอก 1 +ขี้ผง 1 +ขี้เข็บ 1 +ขี้เท่อ 1 +ขี้แย 1 +ขึ้งเคียด 1 +ขึ้นคาน 1 +ขึ้นลงบันได 1 +ขืนใจ 1 +ขุนบาล 1 +ขุนพัฒน์ 1 +ขุนศาล 1 +ขุยไผ่ 1 +ขุ่นแค้น 1 +ขู 1 +ขโมยขโจร 1 +ข่มนาม 1 +ข่มเหงคะเนงร้าย 1 +ข้นๆ 1 +ข้องจิต 1 +ข้อน 1 +ข้อย 1 +ข้างตีน 1 +ข้างบนๆ 1 +ข้ามหน้า 1 +ข้ามหน้าข้ามตา 1 +ข้ามๆ 1 +ข้าวกล้า 1 +ข้าวของๆ 1 +ข้าวขาหมู 1 +ข้าวตัง 1 +ข้าวบาตร 1 +ข้าวปุ้น 1 +ข้าวผอก 1 +ข้าวมันไก่ 1 +ข้าวหมก 1 +ข้าวเม่าทอด 1 +ข้าวแช่ 1 +ข้าหลวงเดิม 1 +ฃอบใจ 1 +ฃอให 1 +คงกระพัน 1 +คงกระพันชาตรี 1 +คงๆ 1 +คชสีห์ 1 +คณะทูต 1 +คดีดำ 1 +คดีแพ่ง 1 +คดๆ 1 +คนที 1 +คนหนึ่ง 1 +คนอื่น 1 +คนเร่ร่อน 1 +คนใช้ๆ 1 +คนไทย 1 +คมชัด 1 +ครรชิต 1 +ครรโภทร 1 +ครรโลง 1 +ครอบจักรวาล 1 +ครัดเคร่ง 1 +ครันๆ 1 +ครั้งนั้นๆ 1 +ครึน 1 +ครึม 1 +ครืนครั่น 1 +ครือๆ 1 +ครื้นครั่น 1 +ครื้นครึก 1 +ครุฑพ่าห์ 1 +ครูใหญ่ 1 +ครูๆ 1 +คลอโรฟลูออโรคาร์บอน 1 +คลอโรฟีลล์ 1 +คลอๆ 1 +คลั่งไคล้ 1 +คลื่นแสง 1 +คลุกคลีตีโมง 1 +คลุมโปง 1 +คล่องตัว 1 +ควบๆ 1 +ควักค้อน 1 +ควันหลง 1 +คว้าน 1 +คองคอร์ด 1 +คอตั้งบ่า 1 +คอต่อ 1 +คอนโด 1 +คอนโทรล 1 +คอม้า 1 +คอยๆๆๆ 1 +คอรัปชั่น 1 +คอร์ด 1 +คอร์ดเดอร์ 1 +คอสอง 1 +คอสูง 1 +คัดง้าง 1 +คันชัก 1 +คันชั่ง 1 +คันถรจนาจารย์ 1 +คันธมาทน์ 1 +คันธ์ 1 +คับๆ 1 +คัมภีรภาพ 1 +คั่กๆ 1 +คาถาพัน 1 +คานหาม 1 +คาบชุด 1 +คามวาสี 1 +คาราเต้ 1 +คาร์พ 1 +คาร์เนชั่น 1 +คาวปลา 1 +คาส 1 +คำฉันท์ 1 +คำร้องทุกข์ 1 +คำเทียบ 1 +คำเมือง 1 +คำแถลง 1 +คิดมากๆ 1 +คิดเถิง 1 +คิ่ดเถิง 1 +คีย์ 1 +คีรีบูน 1 +คีโตน 1 +คึ่กๆ 1 +คืนยังรุ่ง 1 +คือๆ 1 +คุกกี้ 1 +คุณครูบาอาจารย์ 1 +คุณศัพท์ 1 +คุณากร 1 +คุต 1 +คุปต์ 1 +คุมขัง 1 +คุมเชิง 1 +คุยๆ 1 +คุ่ม 1 +คู่คี่ 1 +คู่ชีพ 1 +คู่บารมี 1 +คู่สัญญา 1 +ค็อกเทล 1 +ค่อนๆ 1 +ค่าน้ำ 1 +ค่าน้ำร้อนน้ำชา 1 +ค่ายๆ 1 +ค่าหัว 1 +ค้อนติง 1 +ค้อยๆ 1 +ค้ำหัว 1 +ฆาน 1 +ฆ้องวง 1 +งัว 1 +งานประดิษฐ์ 1 +งานเกษตร 1 +งี่เง่า 1 +งืมๆ 1 +งุด 1 +ง่วงเหงาหาวนอน 1 +ง่อนแง่น 1 +ง่อยเปลี้ยเสียขา 1 +ง่านๆ 1 +จงกรม 1 +จงกลนี 1 +จงเจริญ 1 +จตุรคูณ 1 +จตุโลกบาล 1 +จมๆ 1 +จรรม 1 +จรรโลงใจ 1 +จริก 1 +จริงๆๆ 1 +จริยศาสตร์ 1 +จริยศึกษา 1 +จรี 1 +จรึง 1 +จรุก 1 +จรุง 1 +จลา 1 +จวงจันทน์ 1 +จองถนน 1 +จองหองพองขน 1 +จอนหู 1 +จอมใจ 1 +จะละเม็ด 1 +จะลุง 1 +จะไจ้ 1 +จักรกล 1 +จักรยานยนต์ 1 +จักริน 1 +จักรเย็บผ้า 1 +จังหรีด 1 +จังไร 1 +จัณฑ์ 1 +จัดการๆ 1 +จัดกิจกรรม 1 +จัตุรมุข 1 +จัตุโลกบาล 1 +จันทน์ขาว 1 +จันทบูร 1 +จันทรอุปราคา 1 +จันทรเกษม 1 +จับจด 1 +จับจิต 1 +จับตาย 1 +จับปิ้ง 1 +จับเชิง 1 +จั้ง 1 +จั๊กกะจี้ 1 +จั๊กจี้ 1 +จั๊บๆ 1 +จากพราก 1 +จาการ์ตา 1 +จานบิน 1 +จานเสียง 1 +จารกรรม 1 +จำนรรจ์ 1 +จำนวนอตรรกยะ 1 +จำนอง 1 +จำปาดะ 1 +จำปูน 1 +จำโนทย์ 1 +จี๊ดๆ 1 +จึ้ง 1 +จุฑามณี 1 +จุดทศนิยม 1 +จุดบกพร่อง 1 +จุรี 1 +จุลชีวัน 1 +จุลทรรศน์ 1 +จุลวรรค 1 +จุๆ 1 +จุ่ง 1 +จุ้นจู๊ 1 +จูงจมูก 1 +จเร 1 +จ่ากลอง 1 +จ่างๆ 1 +จ่าปี่ 1 +จ้น 1 +จ้อน 1 +จ้อยร่อย 1 +จ๊วบๆ 1 +จ๊อกๆ 1 +จ๊าดๆ 1 +จ๊าบๆ 1 +จ๋อม 1 +จ๋อมๆ 1 +จ๋อย 1 +จ๋อแจ๋ 1 +จ๋ะ 1 +ฉกามาพจร 1 +ฉงนสนเท่ห์ 1 +ฉนำ 1 +ฉบับๆ 1 +ฉมัน 1 +ฉล 1 +ฉลอม 1 +ฉลุลาย 1 +ฉวาก 1 +ฉวาง 1 +ฉศก 1 +ฉันทศาสตร์ 1 +ฉันทานุมัติ 1 +ฉัพพรรณรังสี 1 +ฉากตั้ง 1 +ฉาดๆ 1 +ฉุบ 1 +ฉุยฉาย 1 +ชดเชย 1 +ชนาง 1 +ชนิดๆ 1 +ชนินทร์ 1 +ชมกิจการ 1 +ชรอื้อ 1 +ชรอ่ำ 1 +ชระง่อน 1 +ชลธี 1 +ชลนัยน์ 1 +ชวลิต 1 +ชอบๆ 1 +ชอื้อ 1 +ชอ่ำ 1 +ชะพลู 1 +ชะวาก 1 +ชะอำ 1 +ชะโอน 1 +ชักเงา 1 +ชักเนื้อ 1 +ชันตุ 1 +ชันสูตรพลิกศพ 1 +ชัยบุรี 1 +ชัยปุระ 1 +ชั่วระยะหนึ่ง 1 +ชั่วแต่ว่า 1 +ชั่วโมงๆ 1 +ชั้ว 1 +ชาตะ 1 +ชาติๆ 1 +ชายกระเบน 1 +ชายธง 1 +ชายไหว 1 +ชาวกรุง 1 +ชาวตะวันตก 1 +ชาวน้ำ 1 +ชาวบางนกแขวก 1 +ชาวบางยาง 1 +ชาเยนทร์ 1 +ชำงาย 1 +ชำนน 1 +ชำมะนาด 1 +ชำเรา 1 +ชำเราะ 1 +ชำแรก 1 +ชิงช่วง 1 +ชิมลาง 1 +ชิๆ 1 +ชิ่ง 1 +ชิ้นเอกๆ 1 +ชี่ 1 +ชื่อย่อ 1 +ชื่อๆ 1 +ชุ 1 +ชุมทางรถไฟ 1 +ชเล 1 +ชโลง 1 +ชไม 1 +ช็อก 1 +ช็อกโกแลต 1 +ช็อค 1 +ช็อป 1 +ช่วงชัย 1 +ช่วงโชติ 1 +ช่วงใช้ 1 +ช่องแคบๆ 1 +ช่องๆ 1 +ช่อน 1 +ช่อย 1 +ช่อๆ 1 +ช่างเครื่อง 1 +ช้อนชา 1 +ช้อยชด 1 +ช้างๆ 1 +ซวดทรง 1 +ซองพลู 1 +ซองๆ 1 +ซอด้วง 1 +ซอฟแวร์ 1 +ซอสามสาย 1 +ซักฟอก 1 +ซากุระ 1 +ซาตาน 1 +ซามูไร 1 +ซาร์ดีน 1 +ซาลาเปา 1 +ซาไก 1 +ซำ 1 +ซิกข์ 1 +ซิดนีย์ 1 +ซิตี 1 +ซิลิกอน 1 +ซิลิเกต 1 +ซิๆ 1 +ซีดี 1 +ซีน 1 +ซีอิ๊ว 1 +ซีไรท์ 1 +ซี้ดๆ 1 +ซื่อสัตย์สุจริต 1 +ซุบๆ 1 +ซุ่มซ่าม 1 +ซูบ 1 +ซ่อกๆ 1 +ซ่อง 1 +ซ่อนๆ 1 +ซ่าโบะ 1 +ซ้อมใหญ่ 1 +ซ้ำคำ 1 +ฐานทัพ 1 +ฐานานุศักดิ์ 1 +ฐาปนา 1 +ดนู 1 +ดรัมเมเยอร์ 1 +ดร๊าฟ 1 +ดวงจันทร์ๆ 1 +ดอกบุก 1 +ดอกเห็ด 1 +ดอกไม้ทะเล 1 +ดอกไม้ร่วง 1 +ดอกไม้ไหว 1 +ดอกๆ 1 +ดอท 1 +ดอนๆ 1 +ดังฤๅ 1 +ดาก 1 +ดาวรุ่ง 1 +ดาหลัง 1 +ดำกล 1 +ดำรู 1 +ดำเกิง 1 +ดำเนินคดี 1 +ดำแดง 1 +ดำไร 1 +ดิง 1 +ดิตถ์ 1 +ดินระเบิด 1 +ดินหม้อ 1 +ดินเปรี้ยว 1 +ดิสคัส 1 +ดีฉันๆ 1 +ดีดดิ้น 1 +ดีดฝ้าย 1 +ดีบัว 1 +ดีเนื้อดีใจ 1 +ดีเปรสชัน 1 +ดีแตก 1 +ดีแล้วๆ 1 +ดึงดูดใจ 1 +ดึงๆ 1 +ดึงๆๆ 1 +ดื่นดาษ 1 +ดุบๆ 1 +ดุรงค์ 1 +ดุล 1 +ดุลการค้า 1 +ดุลบัญชี 1 +ดุ้ง 1 +ดูเล่น 1 +ด่อกแด่ก 1 +ด่าว 1 +ด้ายดิบ 1 +ด้ำ 1 +ตกกระทบ 1 +ตกปากตกคำ 1 +ตกฟอง 1 +ตกรางวัล 1 +ตกสะเก็ด 1 +ตกแสก 1 +ตรรกศาสตร์ 1 +ตรวย 1 +ตรอมตรม 1 +ตระดาษ 1 +ตระพัง 1 +ตราตั้ง 1 +ตรายาง 1 +ตราหน้า 1 +ตรีคูณ 1 +ตรีบูร 1 +ตรีปวาย 1 +ตรีศูล 1 +ตรีเนตร 1 +ตรีโลก 1 +ตรุณ 1 +ตลกหัวเราะ 1 +ตลาดยี่สาน 1 +ตองกราย 1 +ตอนหลังๆ 1 +ตอแย 1 +ตะกรัน 1 +ตะกวด 1 +ตะกูด 1 +ตะขาบๆ 1 +ตะครั่นตะครอ 1 +ตะคร้อ 1 +ตะคุ่ม 1 +ตะบม 1 +ตะบอง 1 +ตะบูน 1 +ตะพง 1 +ตะพาก 1 +ตะพานช้าง 1 +ตะพาบ 1 +ตะลิงปลิง 1 +ตะวันขึ้น 1 +ตะวันออกกลาง 1 +ตะหลิว 1 +ตะแบง 1 +ตะโพง 1 +ตะไบ 1 +ตังเก 1 +ตัดประเด็น 1 +ตัดหน้า 1 +ตับอ่อน 1 +ตัวการ 1 +ตัวขาบ 1 +ตัวดีๆ 1 +ตัวตืด 1 +ตัวบรรจง 1 +ตัวยืน 1 +ตัวใครตัวมัน 1 +ตั่บๆ 1 +ตั้งตาคอย 1 +ตั้งประเด็น 1 +ตั้งเป้าหมาย 1 +ตั้งเมือง 1 +ตั้งใจมั่น 1 +ตั้งใจเรียน 1 +ตั๊น 1 +ตานขโมย 1 +ตาบทิศ 1 +ตาบอดตาใส 1 +ตาปลา 1 +ตามพะ 1 +ตายด้าน 1 +ตายน้อย 1 +ตารางเหลี่ยม 1 +ตาลีตาเหลือก 1 +ตาว 1 +ตาหวาน 1 +ตาเต็ง 1 +ตาเหล่ 1 +ตาแมว 1 +ตำรวจหลวง 1 +ตำหนักน้ำ 1 +ติกาหรัง 1 +ติณ 1 +ติดบ่อน 1 +ติดลม 1 +ติดอันดับ 1 +ติปา 1 +ติรัจฉาน 1 +ตีกรอบ 1 +ตีตรวน 1 +ตีทอง 1 +ตีท้ายครัว 1 +ตีนกา 1 +ตีนคู้ 1 +ตีนเหยียด 1 +ตีระฆัง 1 +ตีสองหน้า 1 +ตีหน้าตาย 1 +ตีอวน 1 +ตึกระฟ้า 1 +ตึกๆ 1 +ตึ๊ดตื๋อ 1 +ตุกติก 1 +ตุงๆ 1 +ตุปัดตุป่อง 1 +ตุ่ย 1 +ตุ๊ 1 +ตุ๊กตุ่น 1 +ตุ๋น 1 +ตูด 1 +ต่อกิ่ง 1 +ต่อนัดต่อแนง 1 +ต่อยๆ 1 +ต่อแย้ง 1 +ต่อไปๆ 1 +ต่อไส้ 1 +ต่ำใจ 1 +ต้นคิด 1 +ต้นตอ 1 +ต้นเชือก 1 +ต้นไม้ๆ 1 +ต้มเค็ม 1 +ต้อกระจก 1 +ต้องคดี 1 +ต้องเต 1 +ต้อยตริ่ง 1 +ต้าย 1 +ต๋อม 1 +ถกเขมร 1 +ถด 1 +ถนัดใจ 1 +ถนัดๆ 1 +ถมทอง 1 +ถลน 1 +ถลากถลำ 1 +ถลากไถล 1 +ถลำตัว 1 +ถอก 1 +ถอดถอน 1 +ถอนหญ้า 1 +ถังๆ 1 +ถัมภ์ 1 +ถั่วดำ 1 +ถั่วลิสง 1 +ถั่วเหลือง 1 +ถาบ 1 +ถามนำ 1 +ถี่ยิบ 1 +ถึงพริกถึงขิง 1 +ถึงเงิน 1 +ถึงแก่ความตาย 1 +ถือเขาถือเรา 1 +ถือเราถือเขา 1 +ถุงตะเคียว 1 +ถุงลม 1 +ถุย 1 +ถูกน้อย 1 +ถูกล่า 1 +ถ่ายแบบ 1 +ถ่ายโอน 1 +ถ้วนๆ 1 +ถ้อ 1 +ถ้ำๆ 1 +ทนม 1 +ทนๆ 1 +ทรกรรม 1 +ทรงกระเทียม 1 +ทรงตัก 1 +ทรงธรรม 1 +ทรงบาดาล 1 +ทรงลังกา 1 +ทรงเจ้า 1 +ทรลักษณ์ๆ 1 +ทรวด 1 +ทรามสวาท 1 +ทรามเชย 1 +ทรามๆ 1 +ทฤษฎีบท 1 +ทล 1 +ทวงคืน 1 +ทวารทั้งเก้า 1 +ทวิ 1 +ทศชาติ 1 +ทสา 1 +ทองต้นแขน 1 +ทองบรอนซ์ 1 +ทองเอก 1 +ทอดตา 1 +ทอดน่อง 1 +ทอดสะพาน 1 +ทอย 1 +ทอร์ปิโด 1 +ทอล์กโชว์ 1 +ทอหูก 1 +ทะนุ 1 +ทะยานอยาก 1 +ทักขิณา 1 +ทักข์ 1 +ทักษิณาทาน 1 +ทันกิน 1 +ทับที่ 1 +ทับสิทธิ์ 1 +ทัศนูปกรณ์ 1 +ทัศไนย 1 +ทั้งสอง 1 +ทั้งเนื้อทั้งตัว 1 +ทางช้างเผือก 1 +ทาบทับ 1 +ทาบทาม 1 +ทายาด 1 +ทารุณโหดร้าย 1 +ทาวเฮาส์ 1 +ทาษ 1 +ทำกรรม 1 +ทำนุ 1 +ทำนูล 1 +ทำปลา 1 +ทำฟัน 1 +ทำวัตรเช้า 1 +ทำเนา 1 +ทำเวร 1 +ทำแท้ง 1 +ทำใจ 1 +ทำไร่ 1 +ทำๆ 1 +ทิงเจอร์ 1 +ทิต 1 +ทิพยอาสน์ 1 +ทิพา 1 +ทิมดาบ 1 +ทิ้งๆ 1 +ทีฆนิกาย 1 +ที่ชุมนุม 1 +ที่ทำมาหากิน 1 +ที่ประทับ 1 +ที่พำนักพักพิง 1 +ที่เล่น 1 +ทุกหัวระแหง 1 +ทุนนอน 1 +ทุรชน 1 +ทุรพล 1 +ทุเรศ 1 +ทูน่า 1 +ทแกล้ว 1 +ทแยง 1 +ทโมน 1 +ท่ง 1 +ท่าอากาศยาน 1 +ท้องคุ้ง 1 +ท้องพระคลัง 1 +ท้องแขวน 1 +ท้องแบน 1 +ธงฉาน 1 +ธนบดี 1 +ธรณิน 1 +ธรณินทร์ 1 +ธรณิศ 1 +ธรรมจักษุ 1 +ธรรมนูญ 1 +ธรรมราช 1 +ธรรมเนียมประเพณี 1 +ธวัช 1 +ธัญญบุรี 1 +ธารน้ำ 1 +ธารพระกร 1 +ธุรกรรม 1 +นกกระปูด 1 +นกกระยาง 1 +นกกาบบัว 1 +นกตะกรุม 1 +นกหก 1 +นครลำพูน 1 +นงพาล 1 +นมสวรรค์ 1 +นฤนาท 1 +นฤบาล 1 +นฤมิตร 1 +นวรัตน์ 1 +นวลลออ 1 +นอกกฎหมาย 1 +นอกรีตนอกรอย 1 +นอต 1 +นอนก้น 1 +นอนหลับทับสิทธิ์ 1 +นอนแบ็บ 1 +นอร์เวย์ 1 +นะแน่ง 1 +นะๆๆๆๆ 1 +นักธรณีวิทยา 1 +นักธรรม 1 +นักบริหาร 1 +นักพัฒนา 1 +นักภาษาศาสตร์ 1 +นักวิ่ง 1 +นักสิทธิ์ 1 +นักอ่าน 1 +นักเดินเรือ 1 +นักเทศน์ 1 +นัข 1 +นัค 1 +นังคัล 1 +นันทน์ 1 +นั่งยอง 1 +นั่งเมือง 1 +นั่นแน่ๆ 1 +นั่นๆ 1 +นั่นๆๆๆ 1 +นาคร 1 +นาคี 1 +นาคๆ 1 +นางบำเรอ 1 +นางพระกำนัล 1 +นางรอง 1 +นางสนองพระโอษฐ์ 1 +นางเล็ด 1 +นางแย้ม 1 +นานนม 1 +นามสมญา 1 +นายกอง 1 +นายธง 1 +นายพลโท 1 +นายอำเภอๆ 1 +นายโรง 1 +นารีผล 1 +นาหมอน 1 +นาฬิกาทราย 1 +นาเมือง 1 +นาเวศ 1 +นาๆ 1 +นำจับ 1 +นำสืบ 1 +นำเสนอ 1 +นำใจ 1 +นิคมอุตสาหกรรม 1 +นิคาลัย 1 +นิติกร 1 +นิติบุคคล 1 +นิธิ 1 +นิมมาน 1 +นิมมานรดี 1 +นิรทุกข์ 1 +นิรัติศัย 1 +นิรโทษ 1 +นิวตัน 1 +นิวยอร์ก 1 +นิวเดลี 1 +นิ่วๆ 1 +นีล 1 +นี้ๆๆ 1 +นุง 1 +นุด 1 +นู่น 1 +น่าๆ 1 +น้อมเกล้าน้อมกระหม่อมถวาย 1 +น้อยเนื้อต่ำใจ 1 +น้ำขาว 1 +น้ำขึ้นๆ 1 +น้ำทรง 1 +น้ำพริกเผา 1 +น้ำมันจันทน์ 1 +น้ำมันเครื่อง 1 +น้ำย่อยๆ 1 +น้ำละว้า 1 +น้ำสุก 1 +น้ำส้มสายชู 1 +น้ำอดน้ำทน 1 +น้ำเคย 1 +น้ำใจเดียว 1 +บดินทร์ 1 +บทคัดย่อ 1 +บทๆ 1 +บรรดาก 1 +บรรทมสินธุ์ 1 +บรรทับ 1 +บรรพสตรี 1 +บรรยง 1 +บรรยงก์ 1 +บรรลัยกัลป์ 1 +บรรษัท 1 +บรรสบ 1 +บรรสม 1 +บรรสาน 1 +บรรสาร 1 +บรรเทือง 1 +บรัสเซลส์ 1 +บราลี 1 +บริจาริกา 1 +บริบาล 1 +บริเฉท 1 +บรูไน 1 +บอกให้ทราบ 1 +บอยสเกาต์ 1 +บอเนียว 1 +บังคัล 1 +บังสาด 1 +บังสุกุล 1 +บังสูรย์ 1 +บังเหตุ 1 +บังแทรก 1 +บังๆ 1 +บัญญัติไตรยางศ์ 1 +บัณฑุ 1 +บันกวด 1 +บันดล 1 +บันทึง 1 +บันเดิน 1 +บันเหิน 1 +บันไดแก้ว 1 +บัลลูน 1 +บัวโรย 1 +บั้งๆ 1 +บั้นท้าย 1 +บางขุนนนท์ 1 +บางครั้ง 1 +บางเขน 1 +บางแสน 1 +บาดหู 1 +บาดเจ็บๆ 1 +บาทบงกช 1 +บาทบริจาริกา 1 +บาร์เลย์ 1 +บาศ 1 +บาศก์ 1 +บาสเกตบอล 1 +บาเรียน 1 +บาเล่ย์ 1 +บำรุงขวัญ 1 +บำเพ็ญกุศล 1 +บิดๆ 1 +บิตุลา 1 +บิล 1 +บีฑา 1 +บีบน้ำตา 1 +บี้แบน 1 +บึก 1 +บึ้กๆ 1 +บื๋อ 1 +บุกบัน 1 +บุกเบิก 1 +บุคลิก 1 +บุญญาภินิหาร 1 +บุญเขต 1 +บุตรา 1 +บุทคล 1 +บุฟเฟต์ 1 +บุรุษโทษ 1 +บุษกร 1 +บุษยะ 1 +บุ่ง 1 +บุ๋ม 1 +บูชากัณฑ์เทศน์ 1 +บูชิต 1 +บูรณมี 1 +บูลวาร์ด 1 +บู้บี้ 1 +บู๊ต 1 +บโทน 1 +บ่มิได้ 1 +บ่อง 1 +บ่อนแตก 1 +บ้องตัน 1 +บ้องไฟ 1 +บ้านกลาง 1 +บ้านนาหมอน 1 +บ้านริมคลอง 1 +บ๊อง 1 +ปกกระพอง 1 +ปกเกศ 1 +ปฏิบัติราชการ 1 +ปฏิปัน 1 +ปฐมฤกษ์ 1 +ปฐมเหตุ 1 +ปทีป 1 +ปมเขื่อง 1 +ปรด 1 +ปรนัย 1 +ประคด 1 +ประจันตคาม 1 +ประจำปี 1 +ประชาภิบาล 1 +ประชามติ 1 +ประชุมชน 1 +ประดอย 1 +ประดาตาย 1 +ประดาษ 1 +ประดิทิน 1 +ประตยาค 1 +ประตูป่า 1 +ประตูฟุตบอล 1 +ประทาศี 1 +ประทิ่น 1 +ประมาณตัว 1 +ประมาทหน้า 1 +ประวัติกาล 1 +ประวิตร 1 +ประศาสน์ 1 +ประสงค์ร้าย 1 +ประสมโรง 1 +ประสา 1 +ประหยัดคำ 1 +ประหล่ำ 1 +ประเจิด 1 +ประเดียง 1 +ประเพณีนิยม 1 +ประเมินๆ 1 +ประเล่ห์ 1 +ประเวณี 1 +ประเสบันอากง 1 +ประแดะ 1 +ประโคน 1 +ประโคมดนตรี 1 +ประโยคประธาน 1 +ประไพ 1 +ปรัก 1 +ปรัตยุบัน 1 +ปรับแต่ง 1 +ปราณบุรี 1 +ปริณายก 1 +ปรินส์ 1 +ปริภาษ 1 +ปริมณฑล 1 +ปริมาตร 1 +ปริวัตร 1 +ปริวาร 1 +ปรึก 1 +ปรึง 1 +ปรุงอาหาร 1 +ปรู๊ด 1 +ปรเมนทร์ 1 +ปรเมศวร์ 1 +ปลงอนิจจัง 1 +ปลงอาบัติ 1 +ปลดทุกข์ 1 +ปลดระวาง 1 +ปลั๊กไฟ 1 +ปลาป่น 1 +ปลายน้ำ 1 +ปลิม 1 +ปลิ้นปลอก 1 +ปลีกตัว 1 +ปลีกเวลา 1 +ปลูกสร้าง 1 +ปล่อยปละ 1 +ปล้องๆ 1 +ปล้ำปลุก 1 +ปอดแปด 1 +ปะทะปะทัง 1 +ปะเตะ 1 +ปะเหลาะ 1 +ปะๆ 1 +ปัจฉา 1 +ปัจฉิมยาม 1 +ปัจฉิมวัย 1 +ปัจเจก 1 +ปัดแข้งปัดขา 1 +ปัดไถม 1 +ปัตติ 1 +ปัตถะ 1 +ปัถพี 1 +ปันน้ำ 1 +ปันใจ 1 +ปัยกา 1 +ปัศตัน 1 +ปั่ว 1 +ปั้นลม 1 +ปั้นสีหน้า 1 +ปั้นเหน่ง 1 +ปั๊มน้ำ 1 +ปากกาลูกลื่น 1 +ปากคลองตลาด 1 +ปากคัน 1 +ปากจิ้งจก 1 +ปากฉลาม 1 +ปากช้าง 1 +ปากตะไกร 1 +ปากหอยปากปู 1 +ปากเบาๆ 1 +ปากเปราะ 1 +ปาจิตตีย์ 1 +ปาตี 1 +ปาป 1 +ปาม 1 +ปารมี 1 +ปาร์ตี้ 1 +ปาร์เกต์ 1 +ปาล 1 +ปาสาณ 1 +ปาเต๊ะ 1 +ปาโมกข์ 1 +ปิดประตูค้า 1 +ปิตา 1 +ปิตุฆาต 1 +ปิตุจฉา 1 +ปิโตรเลียม 1 +ปีกกล้าขาแข็ง 1 +ปีกนก 1 +ปีระมิด 1 +ปีแสง 1 +ปุยนุ่น 1 +ปุเลงๆ 1 +ปุ่มๆ 1 +ปูชนียบพิตร 1 +ปูนซีเมนต์ 1 +ปูนๆ 1 +ปูๆ 1 +ปู่ครู 1 +ปู่ทวด 1 +ปู่เจ้า 1 +ปู๊ดๆ 1 +ป่วนปั่น 1 +ป่าผลัดใบ 1 +ป่าแดง 1 +ป้องกันอุบัติเหตุ 1 +ป้าง 1 +ป๊าว 1 +ป๋อ 1 +ผกาย 1 +ผงขาว 1 +ผนิด 1 +ผมทรงมหาดไทย 1 +ผมม้า 1 +ผมไฟ 1 +ผมๆ 1 +ผลรวม 1 +ผลัดแผ่นดิน 1 +ผลัดๆ 1 +ผลัวะ 1 +ผลั้วะ 1 +ผลั๊กๆ 1 +ผลานิสงส์ 1 +ผลิก 1 +ผลุ 1 +ผลุบผลับ 1 +ผล็อยๆ 1 +ผสมเทียม 1 +ผอูน 1 +ผักรู้นอน 1 +ผักๆ 1 +ผับ 1 +ผาม 1 +ผิดตา 1 +ผิว่า 1 +ผีถึงป่าช้า 1 +ผุดลุกผุดนั่ง 1 +ผูกขวัญ 1 +ผูกคำ 1 +ผูกภาษี 1 +ผู้ชายพายเรือ 1 +ผู้ประสานงาน 1 +ผู้พิทักษ์สันติราษฎร์ 1 +ผู้รับโทรเลข 1 +ผู้รู้ 1 +ผู้สัมภาษณ์ 1 +ผู้ส่งออก 1 +ผู้ส่งโทรเลข 1 +ผู้หญิงยิงเรือ 1 +ผู้อพยพ 1 +ผู้อภิปราย 1 +ผู้อื่น 1 +ผู้เดียว 1 +ผู้แทนราษฎร 1 +ผ่อนหนักเป็นเบา 1 +ผ้ง 1 +ผ้ากราบ 1 +ฝนทอง 1 +ฝนห่าแก้ว 1 +ฝั่งฝา 1 +ฝากกาย 1 +ฝากผีฝากไข้ 1 +ฝากโรงเรียน 1 +ฝาดๆ 1 +ฝีไม้ลายมือ 1 +ฝึด 1 +ฝืดๆ 1 +ฝ่ายขวา 1 +พกลม 1 +พจนารถ 1 +พจี 1 +พญาไฟ 1 +พธู 1 +พนสณฑ์ 1 +พนาราม 1 +พนาลัย 1 +พนาวัน 1 +พนาสณฑ์ 1 +พนาเวศ 1 +พบเห็น 1 +พม่ารำขวาน 1 +พยัคฆิน 1 +พยางค์ๆ 1 +พยาม 1 +พรรดึก 1 +พรรเอิญ 1 +พรหมจารี 1 +พรหมสี่หน้า 1 +พรหมาสตร์ 1 +พระจันทร์ครึ่งซีก 1 +พระธาตุ 1 +พระนางเธอ 1 +พระนางๆ 1 +พระนาย 1 +พระมหากรุณา 1 +พระมเหสี 1 +พระราชกฤษฎีกา 1 +พระราชวังหลวง 1 +พระราชสำนัก 1 +พระราชหฤไทย 1 +พระสถูป 1 +พระหา 1 +พระอัธยาศัย 1 +พระอุปัชฌาย์ 1 +พระเคราะห์ๆ 1 +พระเปนเจ้า 1 +พระๆ 1 +พรากเด็ก 1 +พราด 1 +พราดๆ 1 +พรานป่า 1 +พราหมณ์เก็บหัวแหวน 1 +พริกกะเกลือ 1 +พริกเหลือง 1 +พริบไหว 1 +พริ้งพราย 1 +พริ้มเพรา 1 +พรึน 1 +พรึบๆ 1 +พรูๆ 1 +พร้อยๆ 1 +พร้ำ 1 +พฤกษทล 1 +พฤฒ 1 +พฤฒิ 1 +พลอดรัก 1 +พลอยฟ้าพลอยฝน 1 +พลั่กๆ 1 +พลาญ 1 +พลานามัย 1 +พลาสเตอร์ 1 +พลำ 1 +พลุ่ย 1 +พลเทพ 1 +พลโลก 1 +พวงคราม 1 +พวงชมพู 1 +พวงดอกไม้ 1 +พวงหรีด 1 +พหู 1 +พอดีพอร้าย 1 +พอทำพอกิน 1 +พะพาน 1 +พะยูง 1 +พะรังพะรุง 1 +พะอากพะอำ 1 +พะเยา 1 +พะเยิบ 1 +พะโล้ 1 +พักฟื้น 1 +พักสมอง 1 +พัตร 1 +พัทธ 1 +พัทยา 1 +พันตัน 1 +พันลำ 1 +พันแสง 1 +พัสดุภัณฑ์ 1 +พาซื่อ 1 +พาดๆ 1 +พานร 1 +พานรินทร์ 1 +พานๆ 1 +พาม 1 +พายม้า 1 +พาราฟิน 1 +พาลๆ 1 +พาส 1 +พิซซ่า 1 +พิดทูล 1 +พิธีมณฑล 1 +พิบูลย์ 1 +พิพักพิพ่วน 1 +พิพัฒ 1 +พิพากษ์ 1 +พิราลัย 1 +พิษฐาน 1 +พิไล 1 +พืชคาม 1 +พุดซ้อน 1 +พุดดิ้ง 1 +พุทธมณฑล 1 +พุทธศาสนสุภาษิต 1 +พุทธเจดีย์ 1 +พุ่มพวง 1 +พูนๆ 1 +พู้น 1 +พ่วงพี 1 +พ่อสื่อ 1 +พ่อเรือน 1 +พ่อๆ 1 +พ้นๆ 1 +ฟกช้ำดำเขียว 1 +ฟรานซ์ 1 +ฟลายเวท 1 +ฟลุก 1 +ฟลุ๊ค 1 +ฟลูออรีน 1 +ฟลูออไรด์ 1 +ฟอกขาว 1 +ฟอกซัก 1 +ฟอกผ้า 1 +ฟักข้าว 1 +ฟันปลา 1 +ฟาดเคราะห์ 1 +ฟายน้ำตา 1 +ฟายมือ 1 +ฟาเรนไฮต์ 1 +ฟิดๆ 1 +ฟีนอล 1 +ฟื้นฝอย 1 +ฟุลสแก๊ป 1 +ฟ่องฟู 1 +ฟ่อนๆ 1 +ฟ่าง 1 +ฟ้อ 1 +ฟ้อแฟ้ 1 +ภพภูมิ 1 +ภรรดา 1 +ภัต 1 +ภัทรกัป 1 +ภากร 1 +ภาคทฤษฎี 1 +ภาคทัณฑ์ 1 +ภาคย์ 1 +ภาควิชา 1 +ภาคี 1 +ภาณ 1 +ภาพนิ่ง 1 +ภาพพิมพ์ 1 +ภาพย์ 1 +ภาพลักษณ์ 1 +ภุชงค์ 1 +ภุมเทวดา 1 +ภูบดี 1 +ภูม 1 +ภูมินทร์ 1 +ภูวดล 1 +ภูเบศวร์ 1 +มงกุฎๆ 1 +มณเฑียรบาล 1 +มดเท็จ 1 +มนิลา 1 +มรณกรรม 1 +มรณบัตร 1 +มรณา 1 +มฤดก 1 +มฤต 1 +มลน 1 +มลภาวะ 1 +มลังเมลือง 1 +มหันตโทษ 1 +มหาชัย 1 +มหานิกาย 1 +มหาพรหม 1 +มหาวรรค 1 +มหาอุจ 1 +มหาไถ่ 1 +มหิศร 1 +มหิษ 1 +มอนิเตอร์ 1 +มอบฉันทะ 1 +มอส 1 +มะกะโรนี 1 +มะกา 1 +มะงั่ว 1 +มะดูก 1 +มะตี 1 +มะอึก 1 +มะเขือยาว 1 +มะเมีย 1 +มะไฟเดือนห้า 1 +มักๆ 1 +มังคลาวาส 1 +มัชฌิมนิกาย 1 +มัดจำ 1 +มัตตัญญู 1 +มัตสยา 1 +มันตา 1 +มันย่อง 1 +มัศยา 1 +มัสยิด 1 +มัสรู่ 1 +มั่กขั้ก 1 +มั่งคั่งร่ำรวย 1 +มั่นๆ 1 +มากหน้าหลายตา 1 +มาณวิกา 1 +มาดากัสการ์ 1 +มาตุจฉา 1 +มาตุภูมิ 1 +มาตุรงค์ 1 +มาตุลา 1 +มาริ 1 +มาลาการ 1 +มาศๆ 1 +มาเลย์ 1 +มิดีมิร้าย 1 +มิตรจิต 1 +มินตรา 1 +มินท์ 1 +มิส 1 +มิสซิส 1 +มิ่งมิตร 1 +มิ้ม 1 +มีดหมอ 1 +มีดีๆ 1 +มีมารยาท 1 +มีเทน 1 +มีแต่ 1 +มี่ฉาว 1 +มึนงง 1 +มืดแปดด้าน 1 +มือกาว 1 +มือหนัก 1 +มือเบา 1 +มือเย็น 1 +มือแข็ง 1 +มุกๆ 1 +มุนิ 1 +มุมกลับ 1 +มุสาวาท 1 +มุ่ย 1 +มูก 1 +มูกมัน 1 +มูกเลือด 1 +มู่ทู่ 1 +มเหาฬาร 1 +มโนธรรม 1 +มโนมัย 1 +มโนรถ 1 +มไหศวรรย์ 1 +ม้อคกิ้งเบิ๊ต 1 +ม้าม 1 +ม้าเร็วๆ 1 +ม้าใช้ๆ 1 +ม้าๆ 1 +ยกมือไหว้ 1 +ยชุรเวท 1 +ยติภังค์ 1 +ยวนยี 1 +ยวนๆ 1 +ยวรยาตร 1 +ยอดด้วน 1 +ยอบแยบ 1 +ยอแสง 1 +ยอๆ 1 +ยังชั่ว 1 +ยังแล้ว 1 +ยันตร์ 1 +ยั่น 1 +ยั้งๆ 1 +ยาคู 1 +ยาตร 1 +ยาธาตุ 1 +ยาฝอย 1 +ยามๆ 1 +ยาวเหยียด 1 +ยำเยีย 1 +ยิกๆ 1 +ยิ้มแหย 1 +ยิ้มแห้ง 1 +ยี่สก 1 +ยืดหยุ่น 1 +ยุทธภูมิ 1 +ยุพ 1 +ยุพา 1 +ยุพาพาล 1 +ยุวราช 1 +ยุ่บๆ 1 +ยุ่มย่าม 1 +ยูนิเซฟ 1 +ยูโด 1 +ย่องเบาๆ 1 +ย่างสามขุม 1 +ย่าทวด 1 +รบพุ่ง 1 +รวิ 1 +รองบ่อน 1 +รองรัง 1 +รอนราญ 1 +รอนสิทธิ์ 1 +รอยต่อ 1 +ระยัด 1 +ระลอกๆ 1 +ระวังไพร 1 +ระวาย 1 +ระเนียด 1 +ระเบิดปรมาณู 1 +ระเบ็ง 1 +ระเหิด 1 +ระแรง 1 +ระโยง 1 +รักษาพยาบาล 1 +รักๆ 1 +รังดุม 1 +รังวัด 1 +รังแค 1 +รัชชูปการ 1 +รัชดาภิเษก 1 +รัชนี 1 +รัฐบุรุษ 1 +รัฐประศาสน์ 1 +รัตติ 1 +รัตนากร 1 +รัถยา 1 +รับสาร 1 +รับหน้า 1 +รัมภา 1 +รัสเบอรี่ 1 +รั่วๆ 1 +รากแก้ว 1 +ราคาตลาด 1 +ราชครู 1 +ราชบัณฑิตยสภา 1 +ราชพฤกษ์ 1 +ราชสมบัติ 1 +ราชสาส์น 1 +ราชสีห์ๆ 1 +ราชัน 1 +ราชันย์ 1 +ราชาวดี 1 +ราชินีนาถ 1 +ราชี 1 +ราชูปโภค 1 +ราชเทวี 1 +รานรุก 1 +รายๆ 1 +ราหุ 1 +ราแรม 1 +ราโชบาย 1 +ราไชศวรรย์ 1 +รำคาญๆ 1 +รำบาญ 1 +รำมะร่อ 1 +ริบหรี่ๆ 1 +รีดนาทาเร้น 1 +รีโมต 1 +รีไซเคิล 1 +รื้น 1 +รุกล้ำ 1 +รุ่มรวย 1 +รูปี 1 +รู้จักมักจี่ 1 +รู้ตื้นลึกหนาบาง 1 +รู้สึกตัว 1 +รู้เห็นเป็นใจ 1 +ร่มธง 1 +ร่มโพธิ์ร่มไทร 1 +ร่มๆ 1 +ร่วงรุ้ง 1 +ร่วนๆ 1 +ร่างแห 1 +ร่ำรี้ร่ำไร 1 +ร้น 1 +ร้องส่ง 1 +ร้านๆ 1 +ฤคเวท 1 +ฤชา 1 +ฤชุ 1 +ฤทธิรอน 1 +ฤทธิ์เดช 1 +ลงท้อง 1 +ลงพระบังคน 1 +ลงยา 1 +ลงสมัคร 1 +ลมบ้าหมู 1 +ลมว่าว 1 +ลมๆ 1 +ลองกอง 1 +ลองจิจูด 1 +ลองภูมิ 1 +ลองใน 1 +ลองไน 1 +ลอมพอก 1 +ลอยชาย 1 +ลอยหน้าลอยตา 1 +ลอยแพ 1 +ละติจูด 1 +ละลุง 1 +ละลุม 1 +ละหุ่ง 1 +ละเมิน 1 +ละเมียดละไม 1 +ละเลง 1 +ละเล้า 1 +ละๆ 1 +ลักปิดลักเปิด 1 +ลักลั่น 1 +ลักสร้อย 1 +ลักสี 1 +ลัญจกร 1 +ลันเตา 1 +ลับลี้ 1 +ลับล่อ 1 +ลากข้าง 1 +ลาดบัวหลวง 1 +ลาดเขา 1 +ลาติน 1 +ลามปาม 1 +ลามลวน 1 +ลายขัด 1 +ลายสอง 1 +ลายแทง 1 +ลาวา 1 +ลำบากยากเข็ญ 1 +ลำพองใจ 1 +ลำภุขัน 1 +ลำยอง 1 +ลำเพา 1 +ลำเพ็ญ 1 +ลำไพ่ 1 +ลิงค์ 1 +ลิลลี่ 1 +ลิ้นหมา 1 +ลีบๆ 1 +ลี้พล 1 +ลึงค์ 1 +ลืมหูลืมตา 1 +ลุกวาว 1 +ลุมพี 1 +ลุแก่อำนาจ 1 +ลุ่มๆ 1 +ลูกกระเดือก 1 +ลูกกลอน 1 +ลูกคอก 1 +ลูกคำ 1 +ลูกชิด 1 +ลูกนา 1 +ลูกปัด 1 +ลูกผสม 1 +ลูกลมๆ 1 +ลูกสวรรค์ 1 +ลูกสูบ 1 +ลูกแหง่ 1 +ล่อน 1 +ล้มหมอนนอนเสื่อ 1 +ล้มๆ 1 +ล้อหลอก 1 +ล้างปาก 1 +ล้างโลก 1 +ล้ำหน้า 1 +ฦๅชา 1 +วงกบ 1 +วงกลมๆ 1 +วงรอบ 1 +วงแหวน 1 +วงใน 1 +วงๆ 1 +วจนะ 1 +วจีกรรม 1 +วณิพก 1 +วตะ 1 +วธู 1 +วนอุทยาน 1 +วรมหาวิหาร 1 +วลาหก 1 +วสะ 1 +วสา 1 +วังวน 1 +วัฏฏสงสาร 1 +วัณณะ 1 +วัดแดด 1 +วัตถุนิยม 1 +วันต์ 1 +วันทยาวุธ 1 +วันท์ 1 +วันสุกดิบ 1 +วันอุโบสถ 1 +วับๆ 1 +วางก้าม 1 +วางมาด 1 +วางเงิน 1 +วางเพลิง 1 +วางๆ 1 +วาทศาสตร์ 1 +วายวอด 1 +วารสารศาสตร์ 1 +วาววาม 1 +วาวแวว 1 +วาวๆ 1 +วาสี 1 +วิกฤตกาล 1 +วิกล 1 +วิจาร 1 +วิชิต 1 +วิญญู 1 +วิดีโอเทป 1 +วิทยฐานะ 1 +วิทยาคม 1 +วิทยาศาสตร์ประยุกต์ 1 +วิทยาศาสตร์เทคโนโลยีและสิ่งแวดล้อม 1 +วิทยาเขต 1 +วิธีๆ 1 +วินัยธร 1 +วิบุล 1 +วิบูล 1 +วิพิธทัศนา 1 +วิภังค์ 1 +วิมุตติ 1 +วิริยภาพ 1 +วิรุฬห์ 1 +วิรูปักษ์ 1 +วิวัฒน์ 1 +วิศาล 1 +วิสัญญี 1 +วิสาขะ 1 +วิสาขา 1 +วิสาหกิจ 1 +วิหิงสา 1 +วิฬาร 1 +วิ่งวัว 1 +วิ่งๆ 1 +วี้ด 1 +วุฒิสภา 1 +วุ่นๆ 1 +วู้ดๆ 1 +วโรดม 1 +ว่าการ 1 +ศตพรรษ 1 +ศรีราชา 1 +ศฤงค์ 1 +ศศะ 1 +ศศิ 1 +ศศิธร 1 +ศอกกลับ 1 +ศาลชั้นต้น 1 +ศาลยุติธรรม 1 +ศาลหลวง 1 +ศาลอุทธรณ์ 1 +ศาลๆ 1 +ศิขริน 1 +ศิขา 1 +ศิลปหัตถกรรม 1 +ศิลาฤกษ์ 1 +ศิวลึงค์ 1 +ศิวิลัยซ์ 1 +ศีลมหาสนิท 1 +ศีลอด 1 +ศึกษานิเทศก์ 1 +ศุลี 1 +ศูนย์ชุมชน 1 +สกลนคร 1 +สกี 1 +สกีน้ำ 1 +สก๊อต 1 +สคูล 1 +สดมภ์ 1 +สตรอว์เบอร์รี 1 +สตะ 1 +สถาปัตยกรรมศาสตร์ 1 +สนตะพาย 1 +สนทนาปราศรัย 1 +สนัด 1 +สนับ 1 +สนามแม่เหล็ก 1 +สภาพธรรม 1 +สมการ 1 +สมถวิปัสสนา 1 +สมบูรณาญาสิทธิราชย์ 1 +สมปัก 1 +สมพรปาก 1 +สมพัตสร 1 +สมัชชา 1 +สมัยก่อนๆ 1 +สมุฏฐาน 1 +สมเด็จพระผู้มีพระภาค 1 +สมเสร็จ 1 +สยด 1 +สรนุก 1 +สรวม 1 +สรวมชีพ 1 +สระคราญ 1 +สระว่ายน้ำ 1 +สระแก้ว 1 +สรีรวิทยา 1 +สร้อยทอง 1 +สร้อยนกเขา 1 +สร้างมิตรภาพ 1 +สฤต 1 +สฤษฎี 1 +สลวน 1 +สลักสำคัญ 1 +สลักหลัง 1 +สลับสลอน 1 +สลัม 1 +สลากกินแบ่ง 1 +สลิป 1 +สวา 1 +สวาง 1 +สวาดิ 1 +สวิงสวาย 1 +สวีเดน 1 +สสาร 1 +สหชาติ 1 +สหัสเนตร 1 +สองร้อย 1 +สอยดาว 1 +สอๆ 1 +สะดม 1 +สะตาหมัน 1 +สะท้อนใจ 1 +สะท้อนๆ 1 +สะบัดสะบิ้ง 1 +สะพรึบ 1 +สะพัก 1 +สะพัง 1 +สะพานหัน 1 +สะพานเดินเรือ 1 +สะอาดๆ 1 +สะอิ้ง 1 +สะเออะ 1 +สักกะหลาด 1 +สักครั้งหนึ่ง 1 +สังขละบุรี 1 +สังคายนา 1 +สังคีต 1 +สังฆาฏิ 1 +สังปะลิเหงะ 1 +สังเกตๆ 1 +สัจกิริยา 1 +สัจจา 1 +สัณฑ์ 1 +สัตภัณฑ์ 1 +สัตยา 1 +สัตย์ซื่อตรง 1 +สัตววิทยา 1 +สัตสดก 1 +สัตหีบ 1 +สันถวไมตรี 1 +สับๆ 1 +สัปดาห์ๆ 1 +สัปตศก 1 +สัมฤทธิผล 1 +สัสดี 1 +สากรรจ์ 1 +สากๆ 1 +สาทร 1 +สาธารณสถาน 1 +สาธุๆ 1 +สานุ 1 +สามกษัตริย์ 1 +สามขุม 1 +สามง่าม 1 +สามัคยาจารยสมาคม 1 +สามัคยาจารย์ 1 +สามเศียร 1 +สามแก้ว 1 +สายดือ 1 +สายอากาศ 1 +สายเอก 1 +สารกรมธรรม์ 1 +สารบาญ 1 +สารบาญชี 1 +สารหนู 1 +สารอินทรีย์ 1 +สาวน้อยร้อยชั่ง 1 +สาวิตรี 1 +สาวแก่ 1 +สาวไส้ 1 +สาสนา 1 +สาสน์ 1 +สาโท 1 +สาโรช 1 +สำนาน 1 +สำบัดสำนวน 1 +สำปะหลัง 1 +สำปันนี 1 +สำมะลอ 1 +สำมะโนประชากร 1 +สำรองๆ 1 +สำลาน 1 +สำแลง 1 +สิขา 1 +สิขเรศ 1 +สิงหนคร 1 +สิงหาสน์ 1 +สินเดิม 1 +สิบห้า 1 +สิมิลัน 1 +สิเน่หา 1 +สิ่งทอ 1 +สิ้นภพ 1 +สิ้นแต้ม 1 +สิ้นไร้ไม้ตอก 1 +สีคิ้ว 1 +สีทันดร 1 +สีผึ้ง 1 +สีฝัด 1 +สีฝุ่น 1 +สีเสียดเหนือ 1 +สีไฟ 1 +สี่สิบ 1 +สี่เหลี่ยมขนมเปียกปูน 1 +สืบต่อไป 1 +สืบพยาน 1 +สืบมา 1 +สุกดิบ 1 +สุขาภิบาล 1 +สุขารมณ์ 1 +สุขาวดี 1 +สุขุมวิท 1 +สุคนธรส 1 +สุดหล้าฟ้าเขียว 1 +สุทธาวาส 1 +สุทัศนเทพวราราม 1 +สุทไธศวรรย์ 1 +สุพรรณราช 1 +สุพรรณศรี 1 +สุมขอน 1 +สุมนา 1 +สุมาตรา 1 +สุมาลี 1 +สุราษฏร์ธานี 1 +สุริโย 1 +สุเอซ 1 +สูญสลาย 1 +สูญเสียชีวิต 1 +สูติบัตร 1 +สู้รบตบมือ 1 +สเตชั่น 1 +สเตแท่น 1 +สแกนเนอร์ 1 +สแควร์ 1 +สโนดรอป 1 +สโลวะเกีย 1 +สไมลส์ 1 +สไลด์ 1 +ส่งภาษา 1 +ส่วนภูมิภาค 1 +ส่วนลด 1 +ส่อน 1 +ส่าน 1 +ส่ายหน้า 1 +ส่าหรี 1 +หงอนไก่ 1 +หงับๆ 1 +หงุงหงิง 1 +หงุบ 1 +หงุบหงับ 1 +หง่อม 1 +หง่างๆ 1 +หญ้าบัว 1 +หญ้าฝรั่น 1 +หนองจอก 1 +หนองใน 1 +หนักมือ 1 +หนังไก่ 1 +หนับ 1 +หนั่น 1 +หนาวๆ 1 +หนึบ 1 +หน่วยกิต 1 +หน่วยก้าน 1 +หน่ายแหนง 1 +หน้ากล้อง 1 +หน้าขา 1 +หน้าค่าตา 1 +หน้าตั้ง 1 +หน้าบูด 1 +หน้าพาทย์ 1 +หน้าแว่น 1 +หน้าๆ 1 +หมดบุญ 1 +หมดหวัง 1 +หมดอายุ 1 +หมดอาลัยตายอยาก 1 +หมดเขต 1 +หมวย 1 +หมอเฒ่า 1 +หมากม่วง 1 +หมากฮอส 1 +หมากเขียว 1 +หมากแข้ง 1 +หมากแดง 1 +หมาร่า 1 +หมูยอ 1 +หมูหัน 1 +หมูแดง 1 +หม้อตาล 1 +หม้า 1 +หยอกเอิน 1 +หยอกๆ 1 +หยอดหลุม 1 +หยักเหยา 1 +หยักไย่ 1 +หยิบผิด 1 +หยีๆ 1 +หยุดๆ 1 +หย็อง 1 +หย็องแหย็งๆ 1 +หย็อยๆ 1 +หย่ง 1 +หย่อนๆ 1 +หย่ากัน 1 +หย่านม 1 +หรรษ 1 +หรีด 1 +หรุ่ม 1 +หลงลืมตัว 1 +หลงๆ 1 +หลด 1 +หลบมุม 1 +หลบหน้าหลบตา 1 +หลอ 1 +หลอดฟลูออเรสเซนต์ 1 +หลอมเหลว 1 +หลักลอย 1 +หลากคำ 1 +หลายแหล่ 1 +หลีกภัย 1 +หลีกๆ 1 +หลุดลุ่ย 1 +หลุมพราง 1 +หล่อเย็น 1 +หวนคำนึง 1 +หวังๆ 1 +หวามๆ 1 +หวิด 1 +หวิวๆ 1 +หอนาฬิกา 1 +หอมขาว 1 +หอมจันทร์ 1 +หักราคา 1 +หักอกหักใจ 1 +หักเห 1 +หัตถกิจ 1 +หันเห 1 +หัวซุกหัวซุน 1 +หัวที 1 +หัวน้ำลง 1 +หัวปั่น 1 +หัวราน้ำ 1 +หัวสูง 1 +หัวหด 1 +หัวหน้าๆ 1 +หัวเข้า 1 +หัวเลี้ยวหัวต่อ 1 +หัสดี 1 +หั่นๆ 1 +หาควร 1 +หาค่ามิได้ 1 +หางกระรอก 1 +หางนาค 1 +หางเปีย 1 +หางแพน 1 +หางแมงป่อง 1 +หางไก่ 1 +หาดทราย 1 +หายขาด 1 +หายหัว 1 +หำ 1 +หิตานุหิตประโยชน์ 1 +หินชาติ 1 +หิมวันต์ 1 +หิมวา 1 +หิริ 1 +หิริโอตตัปปะ 1 +หิ่งหาย 1 +หิ้วท้อง 1 +หี 1 +หืน 1 +หุบผา 1 +หูก 1 +หูช้าง 1 +หูเบาๆ 1 +หูเสือ 1 +ห่างเห 1 +ห้วยละหาน 1 +ห้องชุด 1 +ห้องปฏิบัติการ 1 +ห้องประชุม 1 +ห้องรับแขก 1 +ห้องส้วม 1 +ห้องอาบน้ำ 1 +ห้อแห้ 1 +ห้าสิบ 1 +ห้ำ 1 +อกเมือง 1 +อกไก่ 1 +อควาเรียม 1 +องค์การสหประชาชาติ 1 +อณู 1 +อติเรก 1 +อธิกรณ์ 1 +อนัตตา 1 +อนันตริยกรรม 1 +อนารยธรรม 1 +อนิจจาๆ 1 +อนุศาสนาจารย์ 1 +อนุสติ 1 +อนุสนธิ 1 +อบรมสั่งสอน 1 +อปยศ 1 +อปลักษณ์ 1 +อภัพ 1 +อภัยทาน 1 +อภิญญาณ 1 +อภิลักขิต 1 +อภิสิทธิ์ 1 +อมฤตรส 1 +อมๆ 1 +อยู่ท้อง 1 +อยู่ยงคงกระพัน 1 +อยู่ไฟ 1 +อย่างใด 1 +อย่าๆ 1 +อรรถกถา 1 +อรรถาธิบาย 1 +อรรธสระ 1 +อรหัน 1 +อรัญประเทศ 1 +อริยผล 1 +อริยมรรค 1 +อริยสัจ 1 +อรุ 1 +อลงกต 1 +อลักเอลื่อ 1 +อวบๆ 1 +อสนีบาต 1 +อสัญ 1 +อสิ 1 +ออกซฟอร์ด 1 +ออกรบ 1 +ออกไข้หัว 1 +ออกไซด์ 1 +ออทิสติก 1 +ออนส์ 1 +ออมชอม 1 +ออมอด 1 +ออเจ้า 1 +อะคร้าว 1 +อะตอม 1 +อะเคื้อ 1 +อักษรศาสตร 1 +อักโขภิณี 1 +อักๆ 1 +อัคคะ 1 +อัครมหาเสนาบดี 1 +อังคาส 1 +อังสะ 1 +อัญประกาศเดี่ยว 1 +อัฏ 1 +อัฐศก 1 +อัณฑะ 1 +อัดฉีด 1 +อัดแน่น 1 +อัตถ์ 1 +อัตนัย 1 +อัตวินิบาตกรรม 1 +อัตวิสัย 1 +อันๆ 1 +อัปปะ 1 +อัปภาคย์ 1 +อัประมาณ 1 +อัพภาส 1 +อัฟกานิสถาน 1 +อัยการศึก 1 +อัยยิกา 1 +อัลบั้ม 1 +อัลเซเชียน 1 +อัศวเมธ 1 +อัสนี 1 +อัสสาสะ 1 +อัสสุชล 1 +อั้งโล่ 1 +อาการนาม 1 +อาคารๆ 1 +อาฆาตมาดร้าย 1 +อาจาด 1 +อาจเอื้อม 1 +อานันท์ 1 +อาม 1 +อายเหนียม 1 +อารยชาติ 1 +อาราธนาศีล 1 +อาลปนะ 1 +อาเศียรวาท 1 +อาโป 1 +อำนาจเจริญ 1 +อำนาถ 1 +อำพะนำ 1 +อำยวน 1 +อำแดง 1 +อิดๆ 1 +อิตาเลียน 1 +อิทธิปาฏิหาริย์ 1 +อินน์ 1 +อิริยา 1 +อิ่มๆ 1 +อีกด้วย 1 +อีลุ่ยฉุยแฉก 1 +อีหลี 1 +อีเมล 1 +อีแปะ 1 +อีโหน่อีเหน่ 1 +อี๊ดๆ 1 +อึกๆ 1 +อุกกาบาต 1 +อุณาโลม 1 +อุตพิด 1 +อุตุนิยมวิทยา 1 +อุบัติภัย 1 +อุปัชฌายวัตร 1 +อุปัทวเหตุ 1 +อุปเท่ห์ 1 +อุลตราไวโอเลต 1 +อุวะ 1 +อุว๊ะ 1 +อุสวะ 1 +อุสา 1 +อุเทศ 1 +อุ้มสม 1 +อู๊ดๆ 1 +อโณทัย 1 +อ่วม 1 +อ่อนหัด 1 +อ่านหนังสือ 1 +อ่านออกเสียง 1 +อ่าองค์ 1 +อ้าวๆ 1 +อ๊าก 1 +อ๋อย 1 +ฮกเกี้ยน 1 +ฮวงโห 1 +ฮอด 1 +ฮอร์ 1 +ฮอล 1 +ฮักๆ 1 +ฮาวาย 1 +ฮิต 1 +ฮิปปี้ 1 +ฮิๆ 1 +ฮึกหาญ 1 +ฮือฮา 1 +ฮื้อๆๆๆ 1 +เกจิอาจารย์ 1 +เกต์ 1 +เกรงกลัว 1 +เกรย์ 1 +เกรส์ 1 +เกรอะ 1 +เกรอะกรัง 1 +เกรียก 1 +เกลศ 1 +เกลียวๆ 1 +เกลื่อนกล่น 1 +เกล็ดๆ 1 +เกศากันต์ 1 +เกษตรอำเภอ 1 +เกาหลีใต้ 1 +เกาๆ 1 +เกินๆ 1 +เกียรตินิยม 1 +เกี่ยวเบ็ด 1 +เก็ง 1 +เก็งกำไร 1 +เก็บไร 1 +เก็บๆ 1 +เก๊ก 1 +เก๊กฮวย 1 +เก๊า 1 +เก๋ๆ 1 +เขยกๆ 1 +เขรอะ 1 +เขลง 1 +เขลาๆ 1 +เขียนประกาศ 1 +เข็มซ่อนปลาย 1 +เข้มขาบ 1 +เข้าฌาน 1 +เข้าปิ้ง 1 +เข้ายา 1 +เข้ารอย 1 +เข้าสุหนัต 1 +เข้าเกณฑ์ 1 +เข้าใจผิด 1 +เข้าไป 1 +เข้าไม้ 1 +เคยปาก 1 +เครงครื้น 1 +เคราะห์หามยามร้าย 1 +เครื่องกำเนิดไฟฟ้า 1 +เครื่องบน 1 +เครื่องมุก 1 +เครื่องสูง 1 +เครื่องหนัง 1 +เครื่องหลัง 1 +เครื่องห้า 1 +เครื่องเคลือบ 1 +เครื่องใหญ่ 1 +เครื่องๆ 1 +เคลิ้มๆ 1 +เคลือบฟัน 1 +เคลือบแฝง 1 +เคล้าคลึง 1 +เคารพผู้ใหญ่ 1 +เคี้ยวเอื้อง 1 +เคี้ยวๆ 1 +เค้าเรื่อง 1 +เค้าๆๆ 1 +เงินเฟ้อ 1 +เงี่ยฟัง 1 +เจตสิก 1 +เจนใจ 1 +เจริญตาเจริญใจ 1 +เจือจาง 1 +เจ็บช้ำน้ำใจ 1 +เจ่ง 1 +เจ่าจุก 1 +เจ้ากี้เจ้าการ 1 +เจ้าของๆ 1 +เจ้าข้าๆ 1 +เจ้าคณะ 1 +เจ้าจำนำ 1 +เจ้าท่า 1 +เจ้าประคุณ 1 +เจ้ายศ 1 +เจ้าหัว 1 +เจ้าไทย 1 +เจ้าๆ 1 +เจ๊ 1 +เจ๊ง 1 +เฉพาะกิจ 1 +เฉลิมฉลอง 1 +เฉลี่ยง 1 +เฉลี่ยๆ 1 +เฉวียน 1 +เฉาะๆ 1 +เฉียว 1 +เฉียวฉุน 1 +เชลง 1 +เชวง 1 +เชอญ 1 +เชิงชาย 1 +เชิญๆ 1 +เชียร 1 +เชี่ยน 1 +เชื่อวัน 1 +เชื้อรา 1 +เช็ดหม้อ 1 +เช่นเดียวกัน 1 +เช่นใด 1 +เซต 1 +เซท 1 +เซราะ 1 +เซ็ง 1 +เซ็งๆ 1 +เซ็ต 1 +เซ็นต์ 1 +เซ่อซ่า 1 +เฌอเอม 1 +เณรๆ 1 +เดชน์ 1 +เดชๆ 1 +เดซิเมตร 1 +เดนมาร์ก 1 +เดินสะพัด 1 +เดินอากาศ 1 +เดินเรื่อง 1 +เดิมๆ 1 +เดือนขาด 1 +เดื่อ 1 +เด่ 1 +เด่า 1 +เตภูมิกถา 1 +เตรียมตรม 1 +เตรียมใจ 1 +เตะจมูก 1 +เตาแก๊ส 1 +เต็มบาท 1 +เต่าทอง 1 +เต่าหวาย 1 +เต้านม 1 +เต้าหู้ยี้ 1 +เต้าเจี้ยว 1 +เต๋า 1 +เถลือกถลน 1 +เทพนม 1 +เทพศิรินทราวาส 1 +เทมส์ 1 +เทรนท์ 1 +เทล 1 +เทวทูต 1 +เทวศ 1 +เทหวัตถุ 1 +เทียง 1 +เทือกเถาเหล่ากอ 1 +เทือน 1 +เทเบิลเทนนิส 1 +เทเวศวร์ 1 +เท่ๆ 1 +เท้าความ 1 +เธียร 1 +เนติ 1 +เนติบัณฑิต 1 +เนปาล 1 +เนิ่นๆ 1 +เนียร 1 +เนือย 1 +เนื้อถ้อยกระทงความ 1 +เนื้อร้าย 1 +เนื้ออ่อนๆ 1 +เนื้อเปื่อย 1 +เนื้อแท้ 1 +เนเธอร์แลนด์ 1 +เบซิก 1 +เบญจบรรพต 1 +เบญจมาศ 1 +เบญจา 1 +เบญจเพส 1 +เบญจ์ 1 +เบลเยียม 1 +เบอร์ลิน 1 +เบะ 1 +เบาะๆ 1 +เบิกโรง 1 +เบี้ยบน 1 +เบี้ยวๆ 1 +เบือ 1 +เปรมปรีดิ์ 1 +เปรี้ยวปาก 1 +เปรี๊ยะ 1 +เปลา 1 +เปลี่ยนมือ 1 +เปลี่ยม 1 +เปาะเปี๊ยะ 1 +เปิง 1 +เปิ๊บ 1 +เปี้ยว 1 +เป็นคุ้งเป็นแคว 1 +เป็นต้นๆ 1 +เป็นปี่เป็นขลุ่ย 1 +เป็นสุข 1 +เป็นอันๆ 1 +เป็นเจ้าของ 1 +เป็นโล้เป็นพาย 1 +เป็นใหญ่ 1 +เป้ง 1 +เผดิม 1 +เผดียง 1 +เผาไหม้ 1 +เผิน 1 +เผื่อเหลือเผื่อขาด 1 +เผ่าๆ 1 +เพชรกลับ 1 +เพชรปาณี 1 +เพชรหึง 1 +เพนกวิน 1 +เพริด 1 +เพรียกพร้อง 1 +เพลงกล่อมเด็ก 1 +เพลงสาธุการ 1 +เพลาๆ 1 +เพิก 1 +เพิ่มจำนวน 1 +เพียงดัง 1 +เพียน 1 +เพื่อนพ้อง 1 +เพ้อๆ 1 +เฟรช 1 +เฟรนช์ฟราย 1 +เฟลมิง 1 +เฟลิคซ์ 1 +เฟอะ 1 +เฟิร์น 1 +เฟี้ยมเฝ้า 1 +เภสัชกรรม 1 +เภสัชเพลา 1 +เมตตากรุณา 1 +เมตตาอาทร 1 +เมตริก 1 +เมธา 1 +เมธี 1 +เมนทอล 1 +เมนท์ 1 +เมษา 1 +เมาส์ 1 +เมืองมัณฑเล 1 +เมื่อหน้า 1 +เมื่อไรๆ 1 +เมื่อไหร่ๆ 1 +เม็กซิโก 1 +เม็ดๆ 1 +เยรูซาเลม 1 +เยลลี่ 1 +เยาวราช 1 +เยาะเย้ย 1 +เยียรบับ 1 +เยื่อเคย 1 +เย็บๆ 1 +เย่อ 1 +เย้ยๆ 1 +เรท 1 +เรอะ 1 +เราๆๆๆ 1 +เริงร่า 1 +เริด 1 +เรียงรัน 1 +เรียวหนาม 1 +เรือกลไฟ 1 +เรือดำน้ำ 1 +เรือนแก้ว 1 +เรือนแฝด 1 +เรือพ่วง 1 +เรือเดินสมุทร 1 +เรือแหวด 1 +เร่งๆ 1 +เลหลัง 1 +เลิกร้าง 1 +เลี่ย 1 +เลือกๆ 1 +เลือง 1 +เลือดอุ่น 1 +เล็มล่า 1 +เล่นกล 1 +เล่นพวก 1 +เล่นเพลง 1 +เล่นเสียง 1 +เล่มๆ 1 +เวชภัณฑ์ 1 +เวหาส 1 +เวิลด์ 1 +เวียงจันทน์ 1 +เว้าๆ 1 +เศวตร 1 +เศษส่วน 1 +เสนากุฎ 1 +เสนาธิการ 1 +เสบียงกรัง 1 +เสลด 1 +เสลภูมิ 1 +เสาดั้ง 1 +เสาวรส 1 +เสาวลักษณ์ 1 +เสาเอก 1 +เสาๆ 1 +เสียกำลังใจ 1 +เสียงสะท้อน 1 +เสียงเขียว 1 +เสียงๆ 1 +เสียจริต 1 +เสียรูป 1 +เสียวๆ 1 +เสียเวลา 1 +เสียแต้ม 1 +เสี่ย 1 +เส้นรอบวง 1 +เส้นสาย 1 +เส้อร์ 1 +เหงาๆ 1 +เหตุๆ 1 +เหนาะ 1 +เหนาะๆ 1 +เหนียม 1 +เหนียมๆ 1 +เหนียวหนืด 1 +เหนี่ยวนำ 1 +เหนือๆ 1 +เหมียวๆ 1 +เหมืองฝาย 1 +เหมือนกัน 1 +เหม็ง 1 +เหย็งๆ 1 +เหย่าๆ 1 +เหล็กๆ 1 +เหว่า 1 +เหอ 1 +เหอะ 1 +เหียนราก 1 +เหี้ย 1 +เหี้ยมหาญ 1 +เห็ดโคน 1 +เห็นดีๆ 1 +เห็นแก่ตัว 1 +เอกซเรย์ 1 +เอกบุรุษ 1 +เอกมัย 1 +เอกอัครราชทูต 1 +เอกเทศ 1 +เอทิล 1 +เอนก 1 +เอลฟ์ 1 +เอารส 1 +เอาฤกษ์ 1 +เอาอยู่ 1 +เอิ้น 1 +เอิ๊บๆ 1 +เอียงอาย 1 +เอี่ยมอ่อง 1 +เอี้ยงๆ 1 +เอี้ยด 1 +เอี๊ยดๆ 1 +เอี๋ยนๆ 1 +เอื้อนๆ 1 +เอื้อเฟื้อเผื่อแผ่ 1 +เอเธนส์ 1 +เอๆ 1 +เอ็ก 1 +เอ็กซ์ 1 +เอ็นไซม์ 1 +เอ้อเฮอ 1 +เอ๋อ 1 +เฮกเตอร์ 1 +เฮาส 1 +เฮิสต์ 1 +เฮี้ยว 1 +เฮือกๆ 1 +เฮือน 1 +แกงขม 1 +แกนๆ 1 +แกมมา 1 +แกระ 1 +แกร็กๆ 1 +แกๆ 1 +แก่นๆ 1 +แก่แรด 1 +แก้บาป 1 +แก้วสารพัดนึก 1 +แก้เกี้ยว 1 +แขนเสื้อ 1 +แขวนนวม 1 +แข็งแรงๆ 1 +แคมป์ 1 +แง่งขิง 1 +แง้มๆ 1 +แจงสี่เบี้ย 1 +แจ้งความ 1 +แจ๋วๆ 1 +แชมเปี้ยน 1 +แชเชือน 1 +แช่งชักหักกระดูก 1 +แซ 1 +แซด 1 +แซดๆ 1 +แซนด์ 1 +แซยิด 1 +แซลมอน 1 +แตกฝูง 1 +แตกมัน 1 +แตกเนื้อสาว 1 +แตกเนื้อหนุ่ม 1 +แตรฝรั่ง 1 +แตรรถยนต์ 1 +แตะๆ 1 +แต่นี้ 1 +แต่เดิมๆ 1 +แต่เพียง 1 +แต่แล้ว 1 +แต่โบราณ 1 +แต้ว 1 +แต้วแล้ว 1 +แต๊กๆๆๆ 1 +แทงทวย 1 +แทงหยวก 1 +แทะๆ 1 +แท็กซี่มิเตอร์ 1 +แท่งๆ 1 +แนวเส้นตรง 1 +แนะนำตัว 1 +แนะนำบุคคล 1 +แน่นหน้าอก 1 +แน่ะๆ 1 +แบคทีเรีย 1 +แบบจำลอง 1 +แบลค 1 +แบล็ค 1 +แบ๊ค 1 +แบ๊คเกรานด์ 1 +แปดปน 1 +แปดเปื้อน 1 +แปบ 1 +แปรธาตุ 1 +แปลน 1 +แปลบปลาบ 1 +แปล๊บ 1 +แป้งร่ำ 1 +แป๊ะซะ 1 +แป๋ว 1 +แผลว 1 +แผล็บๆ 1 +แผ่นเสียง 1 +แผ่อำนาจ 1 +แผ่เผื่อ 1 +แฝงๆ 1 +แพนงเชิง 1 +แพรวพราย 1 +แพร่กระจาย 1 +แพว 1 +แพ้ภัยตัว 1 +แพ้ว 1 +แพ้แรง 1 +แฟนซี 1 +แฟบ 1 +แฟ็กซ์ 1 +แฟ่บ 1 +แมงกะพรุน 1 +แมนเชสเตอร์ 1 +แม่งๆ 1 +แม่น้ำๆ 1 +แม่สาย 1 +แม่เรือน 1 +แม่โจ้ 1 +แยะๆ 1 +แรงผลักดัน 1 +แรมรอน 1 +แวบๆ 1 +แสนๆ 1 +แหล่งๆ 1 +แอกน้อย 1 +แอร์โรว์ 1 +แอลบูมิน 1 +แอลป์ 1 +แอสไพริน 1 +แฮนด์ 1 +โกมล 1 +โกรกกราก 1 +โกรธเคือง 1 +โกร่ง 1 +โกร่งๆ 1 +โกลาหลอลหม่าน 1 +โกวิท 1 +โกสินทร์ 1 +โก้ๆ 1 +โก๊ะ 1 +โก๋ 1 +โขย่ง 1 +โข่ง 1 +โคมลอย 1 +โครก 1 +โครกครอก 1 +โคร่งคร่าง 1 +โคลัมเบีย 1 +โคไซน์ 1 +โค้งๆ 1 +โค้ด 1 +โฆษณาการ 1 +โงกเงก 1 +โง่เขลา 1 +โจท 1 +โจทเจ้า 1 +โจรผู้ร้าย 1 +โซก 1 +โซดาไฟ 1 +โซล่า 1 +โซโล 1 +โดมิโน 1 +โดยนัยนี้ 1 +โต๊ะหมู่ 1 +โต๊ะหมู่บูชา 1 +โทษกรณ์ 1 +โทษานุโทษ 1 +โนรี 1 +โน่นๆ 1 +โบนัส 1 +โบรกเกอร์ 1 +โปก 1 +โปงลาง 1 +โปรง 1 +โปรเตสแตนต์ 1 +โปล์ 1 +โป้ก 1 +โป๊กๆ 1 +โผงเผง 1 +โพนทะนา 1 +โพนเพน 1 +โพรก 1 +โพระดก 1 +โพสต์ 1 +โภชนาหาร 1 +โภชน์ 1 +โมกขศักดิ์ 1 +โมเม 1 +โยต 1 +โยทะกา 1 +โยธี 1 +โยนห่วง 1 +โยนิโสมนสิการ 1 +โรคกระเพาะ 1 +โรคประจำตัว 1 +โรคภัยไข้เจ็บ 1 +โรงคัล 1 +โรงธาร 1 +โรงเรียนๆ 1 +โรจ 1 +โรตีสายไหม 1 +โรส 1 +โลกธรรม 1 +โลกันตร์ 1 +โลกัย 1 +โลกามิส 1 +โลนๆ 1 +โล่ติ๊น 1 +โล้งโต้ง 1 +โวล 1 +โศภา 1 +โหก 1 +โหง 1 +โหยกเหยก 1 +โหยงๆ 1 +โหย่ง 1 +โหล่ 1 +โอคลาโฮมา 1 +โอฐ 1 +โอสาน 1 +โอฬารึก 1 +โฮสต์ 1 +โฮเต็ลๆ 1 +โฮ้งๆ 1 +โฮ้สฺเต้ส์ 1 +ใจขุ่น 1 +ใจป้ำ 1 +ใจมือ 1 +ใจเบาๆ 1 +ใจเหี่ยวแห้ง 1 +ใจใหญ่ใจโต 1 +ใจไม้ไส้ระกำ 1 +ในทันที 1 +ในๆ 1 +ใบฎีกา 1 +ใบสุทธิ 1 +ใบอนุญาตขับขี่ 1 +ใบเลี้ยง 1 +ใบแข็ง 1 +ให้ท้าย 1 +ให้ร้ายป้ายสี 1 +ไกด์ 1 +ไกรศรี 1 +ไขสันหลัง 1 +ไขสือ 1 +ไข่ข้าว 1 +ไข้เลือดออก 1 +ไฉไล 1 +ไซน์ 1 +ไซเรน 1 +ไซโคลน 1 +ไซโล 1 +ไดออกไซด์ 1 +ได้กัน 1 +ได้ดี 1 +ได้ท้าย 1 +ได้หน้าลืมหลัง 1 +ได้ใจ 1 +ไตปลา 1 +ไตรกลีเซอไรด์ 1 +ไตรจักร 1 +ไตรตรึงษ์ 1 +ไตรโลก 1 +ไต่คู้ 1 +ไต้หวัน 1 +ไถแปร 1 +ไทยแลนด์ 1 +ไนเตรท 1 +ไนโรบี 1 +ไปรษณียภัณฑ์ 1 +ไผ 1 +ไพพ์ 1 +ไพรสาณฑ์ 1 +ไพร่หลวง 1 +ไพหาร 1 +ไฟธาตุ 1 +ไฟเบอร์ 1 +ไฟโต 1 +ไมครอน 1 +ไมโครคอมพิวเตอร์ 1 +ไม่สบาย 1 +ไม่ๆ 1 +ไม้จำปา 1 +ไม้ดัด 1 +ไม้ดำ 1 +ไม้นวม 1 +ไม้สั้นๆ 1 +ไม้หึ่ง 1 +ไม้เบื่อไม้เมา 1 +ไยไพ 1 +ไย่ 1 +ไรต์ 1 +ไรท์ 1 +ไร่ๆ 1 +ไลซ์ 1 +ไล่ช้าง 1 +ไล่เบี้ย 1 +ไล่ๆ 1 +ไวกิ้ง 1 +ไวด์ 1 +ไวต์ 1 +ไวยาวัจกร 1 +ไหม้ๆ 1 +ไหวตัว 1 +ไหๆ 1 +ไอพิษ 1 +ไอราวัณ 1 diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index b87cf13e5..94e952fac 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -122,24 +122,25 @@ def sent_tokenize(text: str, engine: str = "whitespace+newline") -> List[str]: def subword_tokenize(text: str, engine: str = "tcc") -> List[str]: """ :param str text: text to be tokenized - :param str engine: subword tokenizer + :param str engine: subword tokenizer :Parameters for engine: * tcc (default) - Thai Character Cluster (Theeramunkong et al. 2000) - * etcc - Enhanced Thai Character Cluster (Inrut et al. 2001) [In development] + * etcc - Enhanced Thai Character Cluster (Inrut et al. 2001) [In development] :return: a list of tokenized strings. """ if not text: return "" - from .tcc import tcc - from .etcc import etcc + if engine == "etcc": + from .etcc import segment + + return segment(text) + + # default is "tcc" + from .tcc import segment + + return segment(text) - if engine == "tcc": - return tcc(text) - elif engine == "etcc": - return etcc(text).split("/") - #default - return tcc(text) def syllable_tokenize(text: str) -> List[str]: """ diff --git a/pythainlp/tokenize/etcc.py b/pythainlp/tokenize/etcc.py index 1df6eaaec..727e903ec 100644 --- a/pythainlp/tokenize/etcc.py +++ b/pythainlp/tokenize/etcc.py @@ -1,14 +1,12 @@ # -*- coding: utf-8 -*- """ -โปรแกรม ETCC ใน Python -พัฒนาโดย นาย วรรณพงษ์ ภัททิยไพบูลย์ -19 มิ.ย. 2560 -Reference: Inrut, Jeeragone, Patiroop Yuanghirun, Sarayut Paludkong, Supot Nitsuwat, and Para Limmaneepraserth. "Thai word segmentation using combination of forward and backward longest matching techniques." In International Symposium on Communications and Information Technology (ISCIT), pp. 37-40. 2001. +Enhanced Thai Character Cluster (ETCC) +Python implementation by Wannaphong Phatthiyaphaibun (19 June 2017) - -วิธีใช้งาน -etcc(คำ) -คืนค่า โดยมี / แบ่งกลุ่มคำ +Reference: +Inrut, Jeeragone, Patiroop Yuanghirun, Sarayut Paludkong, Supot Nitsuwat, and Para Limmaneepraserth. +"Thai word segmentation using combination of forward and backward longest matching techniques." +In International Symposium on Communications and Information Technology (ISCIT), pp. 37-40. 2001. """ import re @@ -22,7 +20,7 @@ _UV2 = "[" + "".join(["ั", "ื"]) + "]" -def etcc(text: str) -> str: +def segment(text: str) -> str: """ Enhanced Thai Character Cluster (ETCC) @@ -75,4 +73,6 @@ def etcc(text: str) -> str: ii = re.sub("/", "", i) text = re.sub(i, ii + "/", text) - return re.sub("//", "/", text) + text = re.sub("//", "/", text) + + return text.split("/") diff --git a/pythainlp/tokenize/tcc.py b/pythainlp/tokenize/tcc.py index ee945e929..47547ad4e 100644 --- a/pythainlp/tokenize/tcc.py +++ b/pythainlp/tokenize/tcc.py @@ -3,7 +3,7 @@ Separate Thai text into Thai Character Cluster (TCC). Based on "Character cluster based Thai information retrieval" (Theeramunkong et al. 2000) https://dl.acm.org/citation.cfm?id=355225 -http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.2548 +http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.2548 Credits: - TCC: Jakkrit TeCho @@ -49,7 +49,7 @@ PAT_TCC = re.compile("|".join(RE_TCC)) -def tcc_gen(w: str) -> str: +def tcc(w: str) -> str: if not w: return "" @@ -70,12 +70,12 @@ def tcc_pos(text: str) -> Set[int]: p_set = set() p = 0 - for w in tcc_gen(text): + for w in tcc(text): p += len(w) p_set.add(p) return p_set -def tcc(text: str) -> List[str]: - return list(tcc_gen(text)) +def segment(text: str) -> List[str]: + return list(tcc(text)) diff --git a/pythainlp/util/date.py b/pythainlp/util/date.py index 903e42fd4..0cf8d5bc2 100644 --- a/pythainlp/util/date.py +++ b/pythainlp/util/date.py @@ -4,6 +4,7 @@ Note: Does not take into account the change of new year's day in Thailand """ + # BE คือ พ.ศ. # AD คือ ค.ศ. # AH ปีฮิจเราะห์ศักราชเป็นปีพุทธศักราช จะต้องบวกด้วย 1122 @@ -59,48 +60,109 @@ "ธันวาคม", ] -_HA_TH_DIGITS = str.maketrans("0123456789", "๐๑๒๓๔๕๖๗๘๙") - - -# Conversion support for thai_strftime() -def _thai_strftime(datetime, fmt_c: str) -> str: - text = "" - if fmt_c == "a": # abbreviated weekday - text = thai_abbr_weekdays[datetime.weekday()] - elif fmt_c == "A": # full weekday - text = thai_full_weekdays[datetime.weekday()] - elif fmt_c == "b": # abbreviated month - text = thai_abbr_months[datetime.month - 1] - elif fmt_c == "B": # full month - text = thai_full_months[datetime.month - 1] - elif fmt_c == "y": # year without century - text = str(datetime.year + 543)[2:4] - elif fmt_c == "Y": # year with century - text = str(datetime.year + 543) - elif fmt_c == "c": +_HA_DIGITS = "0123456789" +_TH_DIGITS = "๐๑๒๓๔๕๖๗๘๙" +_HA_TH_DIGITS = str.maketrans(_HA_DIGITS, _TH_DIGITS) + + +_NEED_L10N = "AaBbCcDFGgvXxYy+" # flags that need localization +_EXTENSIONS = "EO-_0#" # extension flags + + +def _padding(n: int, length: int = 2, pad_char: str = "0") -> str: + str_ = str(n) + + pad_len = length - len(str_) + if pad_len < 0: + pad_len = 0 + + return (pad_char * pad_len) + str_ + + +def _thai_strftime(datetime: datetime.datetime, fmt_char: str) -> str: + """ + Conversion support for thai_strftime() + """ + str_ = "" + if fmt_char == "A": + # National representation of the full weekday name + str_ = thai_full_weekdays[datetime.weekday()] + elif fmt_char == "a": + # National representation of the abbreviated weekday + str_ = thai_abbr_weekdays[datetime.weekday()] + elif fmt_char == "B": + # National representation of the full month name + str_ = thai_full_months[datetime.month - 1] + elif fmt_char == "b": + # National representation of the abbreviated month name + str_ = thai_abbr_months[datetime.month - 1] + elif fmt_char == "C": + # Thai Buddhist century (AD+543)/100 + 1 as decimal number; + str_ = str(int((datetime.year + 543) / 100) + 1) + elif fmt_char == "c": + # Locale’s appropriate date and time representation # Wed 6 Oct 01:40:00 1976 # พ 6 ต.ค. 01:40:00 2519 <-- left-aligned weekday, right-aligned day - text = "{:<2} {:>2} {} {} {}".format( + str_ = "{:<2} {:>2} {} {} {}".format( thai_abbr_weekdays[datetime.weekday()], datetime.day, thai_abbr_months[datetime.month - 1], datetime.strftime("%H:%M:%S"), datetime.year + 543, ) - elif fmt_c == "v": # undocumented format: ' 6-Oct-1976' - text = "{:>2}-{}-{}".format( + elif fmt_char == "D": + # Equivalent to ``%m/%d/%y'' + str_ = "{}/{}".format(datetime.strftime("%m/%d"), str(datetime.year + 543)[-2:]) + elif fmt_char == "F": + # Equivalent to ``%Y-%m-%d'' + str_ = "{}-{}".format(str(datetime.year + 543), datetime.strftime("%m-%d")) + elif fmt_char == "G": + # ISO 8601 year with century representing the year that contains the greater part of the ISO week (%V). Monday as the first day of the week. + str_ = str(int(datetime.strftime("%G")) + 543) + elif fmt_char == "g": + # Same year as in ``%G'', but as a decimal number without century (00-99). + str_ = str(int(datetime.strftime("%G")) + 543)[-2:] + elif fmt_char == "v": + # BSD extension, ' 6-Oct-1976' + str_ = "{:>2}-{}-{}".format( datetime.day, thai_abbr_months[datetime.month - 1], datetime.year + 543 ) - else: # matched with nothing - text = datetime.strftime("%{}".format(fmt_c)) + elif fmt_char == "X": + # Locale’s appropriate time representation. + str_ = datetime.strftime("%H:%M:%S") + elif fmt_char == "x": + # Locale’s appropriate date representation. + str_ = "{}/{}/{}".format( + _padding(datetime.day), _padding(datetime.month), datetime.year + 543 + ) + elif fmt_char == "Y": + # Year with century + str_ = str(datetime.year + 543) + elif fmt_char == "y": + # Year without century + str_ = str(datetime.year + 543)[2:4] + elif fmt_char == "+": + # National representation of the date and time (the format is similar to that produced by date(1)) + # Wed 6 Oct 1976 01:40:00 + str_ = "{:<2} {:>2} {} {} {}".format( + thai_abbr_weekdays[datetime.weekday()], + datetime.day, + thai_abbr_months[datetime.month - 1], + datetime.year + 543, + datetime.strftime("%H:%M:%S"), + ) + else: + # No known localization available, use Python's default + str_ = datetime.strftime(f"%{fmt_char}") - return text + return str_ -def thai_strftime(datetime, fmt: str, thaidigit=False) -> str: +def thai_strftime( + datetime: datetime.datetime, fmt: str, thaidigit: bool = False +) -> str: """ Thai date and time string formatter - Formatting directives similar to datetime.strftime() Will use Thai names and Thai Buddhist Era for these directives: @@ -126,41 +188,78 @@ def thai_strftime(datetime, fmt: str, thaidigit=False) -> str: If supported, we can just locale.setlocale(locale.LC_TIME, "th_TH") and then use native datetime.strftime(). - :return: Date and time spelled out, with day and month names in Thai and year in Thai Buddhist Era (BE). + Note 3: + We trying to make this platform-independent and support extentions as many as possible, + See these links for strftime() extensions in POSIX, BSD, and GNU libc: + - Python https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior + - C http://www.cplusplus.com/reference/ctime/strftime/ + - GNU https://metacpan.org/pod/POSIX::strftime::GNU + - Linux https://linux.die.net/man/3/strftime + - OpenBSD https://man.openbsd.org/strftime.3 + - FreeBSD https://www.unix.com/man-page/FreeBSD/3/strftime/ + - macOS https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/strftime.3.html + - PHP https://secure.php.net/manual/en/function.strftime.php + - JavaScript's implementation https://github.com/samsonjs/strftime + - strftime() quick reference http://www.strftime.net/ + + :return: Date and time spelled out in text, with month in Thai name and year in Thai Buddhist era. The year is simply converted from AD by adding 543 (will not accurate for years before 1941 AD, due to change in Thai New Year's Day). """ thaidate_parts = [] i = 0 fmt_len = len(fmt) while i < fmt_len: - text = "" + str_ = "" if fmt[i] == "%": j = i + 1 if j < fmt_len: - fmt_c = fmt[j] - if fmt_c in "aAbByYcv": # weekday/month names, years: to be localized - text = _thai_strftime(datetime, fmt_c) - elif fmt_c == "-": # no padding day or month - k = j + 1 - if k < fmt_len: - fmt_c_nopad = fmt[k] - if fmt_c_nopad in "aAbByYcv": # check if requires localization - text = _thai_strftime(datetime, fmt_c_nopad) + fmt_char = fmt[j] + if fmt_char in _NEED_L10N: # requires localization? + str_ = _thai_strftime(datetime, fmt_char) + elif fmt_char in _EXTENSIONS: + + if fmt_char == "-": + # GNU libc extension, no padding + k = j + 1 + if k < fmt_len: + fmt_char_nopad = fmt[k] + if ( + fmt_char_nopad in _NEED_L10N + ): # check if requires localization + str_ = _thai_strftime(datetime, fmt_char_nopad) + else: + str_ = datetime.strftime(f"%-{fmt_char_nopad}") + i = i + 1 # consume char after "-" else: - text = datetime.strftime("%-{}".format(fmt_c_nopad)) - i = i + 1 # consume char after "-" - else: - text = "-" - elif fmt_c: - text = datetime.strftime("%{}".format(fmt_c)) + str_ = "-" # "-" at the end of string has no meaning + elif fmt_char == "_": + # GNU libc extension, explicitly specify space (" ") for padding + # Not implemented yet + pass + elif fmt_char == "0": + # GNU libc extension, explicitly specify zero ("0") for padding + # Not implemented yet + pass + elif fmt_char == "E": + # POSIX extension, uses the locale's alternative representation + # Not implemented yet + pass + elif fmt_char == "O": + # POSIX extension, uses the locale's alternative numeric symbols + # Not implemented yet + pass + + elif fmt_char: + # the rest of directives, just pass to Python's standard strftime() + str_ = datetime.strftime(f"%{fmt_char}") i = i + 1 # consume char after "%" else: - text = "%" + str_ = "%" else: - text = fmt[i] + str_ = fmt[i] - thaidate_parts.append(text) + thaidate_parts.append(str_) i = i + 1 thaidate_text = "".join(thaidate_parts) @@ -173,13 +272,16 @@ def thai_strftime(datetime, fmt: str, thaidigit=False) -> str: def now_reign_year(): """ - :return: now year reign for King. + :return: reign year for Rama X of Chakri dynasty """ now_ = datetime.datetime.now() return now_.year - 2015 -def reign_year_to_ad(reign_year, reign): +def reign_year_to_ad(reign_year: int, reign: int) -> int: + """ + Reign year of Chakri dynasty, Thailand + """ if int(reign) == 10: ad = int(reign_year) + 2015 elif int(reign) == 9: diff --git a/setup.cfg b/setup.cfg index 809721c80..785b90fc3 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.0.2 +current_version = 2.0.3 commit = True tag = True diff --git a/setup.py b/setup.py index 879e9b93f..a6678cb86 100644 --- a/setup.py +++ b/setup.py @@ -34,7 +34,7 @@ setup( name="pythainlp", - version="2.0.2", + version="2.0.3", description="Thai Natural Language Processing library", long_description=readme, long_description_content_type="text/markdown", @@ -56,6 +56,7 @@ "tha-wn.db", "thailand_provinces_th.txt", "tnc_freq.txt", + "ttc_freq.txt", "ud_thai_pud_pt_tagger.dill", "ud_thai_pud_unigram_tagger.dill", "words_th_frozen_201810.txt", diff --git a/tests/__init__.py b/tests/__init__.py index e569951cd..b2f7c711f 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -30,22 +30,20 @@ from pythainlp.tag.named_entity import ThaiNameTagger from pythainlp.tokenize import ( FROZEN_DICT_TRIE, + Tokenizer, + dict_trie, dict_word_tokenize, etcc, longest, multi_cut, newmm, - dict_trie, - Tokenizer, -) -from pythainlp.tokenize import pyicu as tokenize_pyicu -from pythainlp.tokenize import ( sent_tokenize, subword_tokenize, syllable_tokenize, tcc, word_tokenize, ) +from pythainlp.tokenize import pyicu as tokenize_pyicu from pythainlp.transliterate import romanize, transliterate from pythainlp.transliterate.ipa import trans_list, xsampa_list from pythainlp.transliterate.royin import romanize as romanize_royin @@ -321,10 +319,10 @@ def test_dict_word_tokenize(self): ) def test_etcc(self): - self.assertEqual(etcc.etcc(""), "") - self.assertEqual(etcc.etcc("คืนความสุข"), "/คืน/ความสุข") + self.assertEqual(etcc.segment(""), "") + self.assertIsInstance(etcc.segment("คืนความสุข"), list) self.assertIsNotNone( - etcc.etcc( + etcc.segment( "หมูแมวเหล่านี้ด้วยเหตุผลเชื่อมโยงทางกรรมพันธุ์" + "สัตว์มีแขนขาหน้าหัวเราะเพราะแข็งขืน" ) @@ -419,11 +417,11 @@ def test_syllable_tokenize(self): ) def test_tcc(self): - self.assertEqual(tcc.tcc(None), []) - self.assertEqual(tcc.tcc(""), []) - self.assertEqual(tcc.tcc("ประเทศไทย"), ["ป", "ระ", "เท", "ศ", "ไท", "ย"]) + self.assertEqual(tcc.segment(None), []) + self.assertEqual(tcc.segment(""), []) + self.assertEqual(tcc.segment("ประเทศไทย"), ["ป", "ระ", "เท", "ศ", "ไท", "ย"]) - self.assertEqual(list(tcc.tcc_gen("")), []) + self.assertEqual(list(tcc.tcc("")), []) self.assertEqual(tcc.tcc_pos(""), set()) # ### pythainlp.transliterate From af3e59f100e8d8444fabac6d2555711071f03a4b Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Fri, 12 Apr 2019 18:40:39 +0200 Subject: [PATCH 02/30] TTC will now use local copy of tcc_freq.txt --- notebooks/pythainlp-get-started.ipynb | 18 +++++++++--------- pythainlp/corpus/tnc.py | 12 ++++++------ pythainlp/corpus/ttc.py | 17 +++++------------ 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/notebooks/pythainlp-get-started.ipynb b/notebooks/pythainlp-get-started.ipynb index 371417326..00b804c45 100644 --- a/notebooks/pythainlp-get-started.ipynb +++ b/notebooks/pythainlp-get-started.ipynb @@ -736,15 +736,15 @@ { "data": { "text/plain": [ - "[('จะ', 51681),\n", - " ('เป็น', 51273),\n", - " ('ไป', 46567),\n", - " ('ก็', 46409),\n", - " ('ไม่', 45895),\n", - " ('มี', 44899),\n", - " ('ได้', 44513),\n", - " ('ว่า', 40290),\n", - " ('ให้', 38715)]" + "[('งวงช้าง', 12),\n", + " ('เทิบทาบ', 7),\n", + " ('กริน', 3),\n", + " ('นาภี', 2),\n", + " ('แด่วๆ', 3),\n", + " ('คู่ใจ', 7),\n", + " ('คุณพ่อ', 732),\n", + " ('สิ้น', 755),\n", + " ('เยาะ', 150)]" ] }, "execution_count": 28, diff --git a/pythainlp/corpus/tnc.py b/pythainlp/corpus/tnc.py index 46dd7a1cf..0b1cca724 100644 --- a/pythainlp/corpus/tnc.py +++ b/pythainlp/corpus/tnc.py @@ -5,15 +5,15 @@ Credit: Korakot Chaovavanich‎ https://www.facebook.com/photo.php?fbid=363640477387469&set=gm.434330506948445&type=3&permPage=1 """ -import os import re -from pythainlp.corpus import download as download_data -from pythainlp.corpus import get_corpus -from pythainlp.tools import get_full_data_path import requests +from pythainlp.corpus import get_corpus + __all__ = ["word_freq", "word_freqs"] +_FILENAME = "tnc_freq.txt" + def word_freq(word, domain="all"): """ @@ -56,10 +56,10 @@ def word_freqs(): """ Get word frequency from Thai National Corpus (TNC) """ - lines = list(get_corpus("tnc_freq.txt")) + lines = list(get_corpus(_FILENAME)) listword = [] for line in lines: - listindata = line.split(" ") + listindata = line.split("\t") listword.append((listindata[0], int(listindata[1]))) return listword diff --git a/pythainlp/corpus/ttc.py b/pythainlp/corpus/ttc.py index 93ba14640..9369d2a6a 100644 --- a/pythainlp/corpus/ttc.py +++ b/pythainlp/corpus/ttc.py @@ -5,29 +5,22 @@ Credit: Korakot Chaovavanich‎ https://www.facebook.com/photo.php?fbid=363640477387469&set=gm.434330506948445&type=3&permPage=1 """ -import os -from pythainlp.corpus import download as download_data -from pythainlp.tools import get_full_data_path +from pythainlp.corpus import get_corpus __all__ = ["word_freqs"] +_FILENAME = "ttc_freq.txt" + def word_freqs(): """ Get word frequency from Thai Textbook Corpus (TTC) """ - path = get_full_data_path("ttc_freq.txt") # try local copy first - if not os.path.exists(path): # if fail, download from internet - download_data("ttc") - - with open(path, "r", encoding="utf8") as f: - lines = f.read().splitlines() - f.close() - + lines = list(get_corpus(_FILENAME)) listword = [] for line in lines: - listindata = line.split(" ") + listindata = line.split("\t") listword.append((listindata[0], int(listindata[1]))) return listword From 34ee765a0a363c4a9acf8b75992350628eb9de14 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Mon, 15 Apr 2019 01:07:59 +0200 Subject: [PATCH 03/30] update README --- README-pypi.md | 23 ++++++++--------------- README.md | 17 ++++++++++------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/README-pypi.md b/README-pypi.md index c7282ec7b..2a441baa4 100644 --- a/README-pypi.md +++ b/README-pypi.md @@ -2,21 +2,11 @@ # PyThaiNLP 2.0.3 -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/cb946260c87a4cc5905ca608704406f7)](https://www.codacy.com/app/pythainlp/pythainlp_2?utm_source=github.com&utm_medium=referral&utm_content=PyThaiNLP/pythainlp&utm_campaign=Badge_Grade)[![pypi](https://img.shields.io/pypi/v/pythainlp.svg)](https://pypi.python.org/pypi/pythainlp) -[![Build Status](https://travis-ci.org/PyThaiNLP/pythainlp.svg?branch=develop)](https://travis-ci.org/PyThaiNLP/pythainlp) -[![Build status](https://ci.appveyor.com/api/projects/status/9g3mfcwchi8em40x?svg=true)](https://ci.appveyor.com/project/wannaphongcom/pythainlp-9y1ch) -[![Coverage Status](https://coveralls.io/repos/github/PyThaiNLP/pythainlp/badge.svg?branch=dev)](https://coveralls.io/github/PyThaiNLP/pythainlp?branch=dev) -[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) - PyThaiNLP is a Python library for natural language processing (NLP) of Thai language. PyThaiNLP includes Thai word tokenizers, transliterators, soundex converters, part-of-speech taggers, and spell checkers. -📖 [Upgrading from PyThaiNLP 1.7 to 2.0](https://thainlp.org/pythainlp/docs/2.0/notes/pythainlp-1_7-2_0.html) - -📖 [Upgrade ThaiNER from PyThaiNLP 1.7 to 2.0](https://github.com/PyThaiNLP/pythainlp/wiki/Upgrade-ThaiNER-from-PyThaiNLP-1.7-to-PyThaiNLP-2.0) - -📫 follow us on Facebook [Pythainlp](https://www.facebook.com/pythainlp/) +📫 follow us on Facebook [PyThaiNLP](https://www.facebook.com/pythainlp/) ## What's new in version 2.0 ? @@ -28,8 +18,11 @@ PyThaiNLP includes Thai word tokenizers, transliterators, soundex converters, pa - Remove sentiment analysis - Improved word_tokenize (newmm, mm) and dict_word_tokenize - Improved POS-tagging -- More and improved examples -- see [PyThaiNLP 2.0 change log](https://github.com/PyThaiNLP/pythainlp/issues/118) +- See examples in [Get Started notebook](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb) +- [Full change log](https://github.com/PyThaiNLP/pythainlp/issues/118) +- [Upgrading from 1.7](https://thainlp.org/pythainlp/docs/2.0/notes/pythainlp-1_7-2_0.html) +- [Upgrade ThaiNER from 1.7](https://github.com/PyThaiNLP/pythainlp/wiki/Upgrade-ThaiNER-from-PyThaiNLP-1.7-to-PyThaiNLP-2.0) + ## Install @@ -62,8 +55,8 @@ Install it with pip, for example: `pip install marisa_trie‑0.7.5‑cp36‑cp36 ## Links -- User guide : [English](https://colab.research.google.com/drive/1MQ10D1mJC5r1vQAHcj4ShoRS14vz8ZF-) , [ภาษาไทย](https://colab.research.google.com/drive/1rEkB2Dcr1UAKPqz4bCghZV7pXx2qxf89) +- User guide: [English](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb), [ภาษาไทย](https://colab.research.google.com/drive/1rEkB2Dcr1UAKPqz4bCghZV7pXx2qxf89) - Docs: https://thainlp.org/pythainlp/docs/2.0/ - GitHub: https://github.com/PyThaiNLP/pythainlp - Issues: https://github.com/PyThaiNLP/pythainlp/issues -- Facebook : [Pythainlp](https://www.facebook.com/pythainlp/) +- Facebook: [PyThaiNLP](https://www.facebook.com/pythainlp/) diff --git a/README.md b/README.md index e25c27d97..9ff268b21 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,13 @@ Thai Natural Language Processing in Python. PyThaiNLP is a Python package for text processing and linguistic analysis, similar to `nltk` but with focus on Thai language. -- [Current PyThaiNLP stable release is 2.0](https://github.com/PyThaiNLP/pythainlp/tree/master) -- PyThaiNLP 2.0 supports Python 3.6+. Some functions may work with older version of Python 3, but it is not well-tested and will not be supported. See [PyThaiNLP 2.0 change log](https://github.com/PyThaiNLP/pythainlp/issues/118). -- Python 2.7+ users can use PyThaiNLP 1.6. +**This is a document for development branch (post 2.0). Things will break.** -**This is a document for development branch (post 2.0). Things will break. For a stable branch document, see [master](https://github.com/PyThaiNLP/pythainlp/tree/master).** +- The latest stable release is [2.0.3](https://github.com/PyThaiNLP/pythainlp/tree/master) +- PyThaiNLP 2 supports Python 3.6+. Some functions may work with older version of Python 3, but it is not well-tested and will not be supported. See [change log](https://github.com/PyThaiNLP/pythainlp/issues/118). + - [Upgrading from 1.7](https://thainlp.org/pythainlp/docs/2.0/notes/pythainlp-1_7-2_0.html) + - [Upgrade ThaiNER from 1.7](https://github.com/PyThaiNLP/pythainlp/wiki/Upgrade-ThaiNER-from-PyThaiNLP-1.7-to-PyThaiNLP-2.0) +- Python 2.7+ users can use PyThaiNLP 1.6. 📫 follow us on Facebook [PyThaiNLP](https://www.facebook.com/pythainlp/) @@ -102,10 +104,11 @@ PyThaiNLP เป็นไลบารีภาษาไพทอนเพื่ > เพราะโลกขับเคลื่อนต่อไปด้วยการแบ่งปัน -- PyThaiNLP 2.0 รองรับ Python 3.6 ขึ้นไป -- ผู้ใช้ Python 2.7+ ยังสามารถใช้ PyThaiNLP 1.6 ได้ +**เอกสารนี้สำหรับรุ่นพัฒนา อาจมีการเปลี่ยนแปลงได้ตลอด** -**เอกสารนี้สำหรับรุ่นพัฒนา (หลัง 2.0) อาจมีการเปลี่ยนแปลงได้ตลอด สำหรับเอกสารรุ่นเสถียร ดูที่ [master](https://github.com/PyThaiNLP/pythainlp/tree/master).** +- รุ่นเสถียรล่าสุดคือรุ่น [2.0.3](https://github.com/PyThaiNLP/pythainlp/tree/master) +- PyThaiNLP 2 รองรับ Python 3.6 ขึ้นไป +- ผู้ใช้ Python 2.7+ ยังสามารถใช้ PyThaiNLP 1.6 ได้ 📫 ติดตามข่าวสารได้ที่ Facebook [Pythainlp](https://www.facebook.com/pythainlp/) From bb4b33451bf2d1540e08301f0f0eb1ca5aff8a57 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Mon, 15 Apr 2019 02:08:48 +0200 Subject: [PATCH 04/30] update README-pypi.md --- README-pypi.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/README-pypi.md b/README-pypi.md index 2a441baa4..87642ae1b 100644 --- a/README-pypi.md +++ b/README-pypi.md @@ -10,19 +10,18 @@ PyThaiNLP includes Thai word tokenizers, transliterators, soundex converters, pa ## What's new in version 2.0 ? -- New NorvigSpellChecker spell checker class, which can be initialized with custom dictionary. - Terminate Python 2 support. Remove all Python 2 compatibility code. -- Remove old, obsolated, deprecated, and experimental code. -- Thai2fit (Upgrade ULMFiT-related codes to fastai 1.0) -- ThaiNER 1.0 -- Remove sentiment analysis -- Improved word_tokenize (newmm, mm) and dict_word_tokenize -- Improved POS-tagging -- See examples in [Get Started notebook](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb) +- Improved `word_tokenize` ("newmm" and "mm" engine) and `dict_word_tokenize` +- Improved Part-Of-Speech tagging +- New `NorvigSpellChecker` spell checker class, which can be initialized with custom dictionary. +- New `thai2fit` (replacing `thai2vec`, upgrade ULMFiT-related code to fastai 1.0) +- Updated ThaiNER to 1.0 + - You may need to [update your existing ThaiNER models from PyThaiNLP 1.7](https://github.com/PyThaiNLP/pythainlp/wiki/Upgrade-ThaiNER-from-PyThaiNLP-1.7-to-PyThaiNLP-2.0) +- Remove old, obsolated, deprecated, duplicated, and experimental code. + - Sentiment analysis is no longer part of the library, but rather [a text classification example](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/sentiment_analysis.ipynb). +- See more examples in [Get Started notebook](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb) - [Full change log](https://github.com/PyThaiNLP/pythainlp/issues/118) - [Upgrading from 1.7](https://thainlp.org/pythainlp/docs/2.0/notes/pythainlp-1_7-2_0.html) -- [Upgrade ThaiNER from 1.7](https://github.com/PyThaiNLP/pythainlp/wiki/Upgrade-ThaiNER-from-PyThaiNLP-1.7-to-PyThaiNLP-2.0) - ## Install From 797caefde80ab6513861e228a8aa1e379396d274 Mon Sep 17 00:00:00 2001 From: Wannaphong Date: Mon, 15 Apr 2019 14:42:19 +0700 Subject: [PATCH 05/30] deepcut & dict_word_tokenize --- pythainlp/tokenize/__init__.py | 8 ++++++++ pythainlp/tokenize/deepcut.py | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index 94e952fac..8e3756429 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -9,6 +9,7 @@ from marisa_trie import Trie +DICT_LIST=thai_words() DEFAULT_DICT_TRIE = Trie(thai_words()) FROZEN_DICT_TRIE = Trie(get_corpus("words_th_frozen_201810.txt")) @@ -80,6 +81,7 @@ def dict_word_tokenize( >>> dict_word_tokenize("แมวดีดีแมว", trie) ['แมว', 'ดี', 'ดี', 'แมว'] """ + global DICT_LIST if not text: return [] @@ -90,6 +92,9 @@ def dict_word_tokenize( from .longest import segment elif engine == "mm" or engine == "multi_cut": from .multi_cut import segment + elif engine == "deepcut": + from .deepcut import segment + return segment(text,DICT_LIST) else: # default, use "newmm" engine from .newmm import segment @@ -171,14 +176,17 @@ def dict_trie(dict_source: Union[str, Iterable]) -> Trie: :param string/list dict_source: a list of vocaburaries or a path to source file :return: a trie created from a dictionary input """ + global DICT_LIST if type(dict_source) is str: # Receive a file path of the dict to read with open(dict_source, "r", encoding="utf8") as f: _vocabs = f.read().splitlines() + DICT_LIST=_vocabs return Trie(_vocabs) elif isinstance(dict_source, Iterable): # Received a sequence type object of vocabs + _vocabs=dict_source return Trie(dict_source) else: raise TypeError( diff --git a/pythainlp/tokenize/deepcut.py b/pythainlp/tokenize/deepcut.py index a3844c2f3..31636e06b 100644 --- a/pythainlp/tokenize/deepcut.py +++ b/pythainlp/tokenize/deepcut.py @@ -8,5 +8,7 @@ import deepcut -def segment(text: str) -> List[str]: +def segment(text: str,dict_source:List[str]=None) -> List[str]: + if dict_source!=None: + return deepcut.tokenize(text, custom_dict=dict_source) return deepcut.tokenize(text) From 6e38de0dab1b6112ee7d355a41e69226ce2aade7 Mon Sep 17 00:00:00 2001 From: Wannaphong Date: Mon, 15 Apr 2019 14:57:34 +0700 Subject: [PATCH 06/30] update dict trie from Trie to (Trie,List) --- pythainlp/tokenize/__init__.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index 8e3756429..e17579c5a 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -81,7 +81,6 @@ def dict_word_tokenize( >>> dict_word_tokenize("แมวดีดีแมว", trie) ['แมว', 'ดี', 'ดี', 'แมว'] """ - global DICT_LIST if not text: return [] @@ -94,11 +93,11 @@ def dict_word_tokenize( from .multi_cut import segment elif engine == "deepcut": from .deepcut import segment - return segment(text,DICT_LIST) + return segment(text,custom_dict[1]) else: # default, use "newmm" engine from .newmm import segment - return segment(text, custom_dict) + return segment(text, custom_dict[0]) def sent_tokenize(text: str, engine: str = "whitespace+newline") -> List[str]: @@ -176,18 +175,15 @@ def dict_trie(dict_source: Union[str, Iterable]) -> Trie: :param string/list dict_source: a list of vocaburaries or a path to source file :return: a trie created from a dictionary input """ - global DICT_LIST if type(dict_source) is str: # Receive a file path of the dict to read with open(dict_source, "r", encoding="utf8") as f: _vocabs = f.read().splitlines() - DICT_LIST=_vocabs - return Trie(_vocabs) + return (Trie(_vocabs),_vocabs) elif isinstance(dict_source, Iterable): # Received a sequence type object of vocabs - _vocabs=dict_source - return Trie(dict_source) + return (Trie(dict_source),dict_source) else: raise TypeError( "Type of dict_source must be either str (path to source file) or iterable" From 1a3338b74acf8276ede5753d4d55a1d354d76252 Mon Sep 17 00:00:00 2001 From: Wannaphong Date: Mon, 15 Apr 2019 15:09:11 +0700 Subject: [PATCH 07/30] fix bug test --- pythainlp/tokenize/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index e17579c5a..f32f48f54 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -9,7 +9,6 @@ from marisa_trie import Trie -DICT_LIST=thai_words() DEFAULT_DICT_TRIE = Trie(thai_words()) FROZEN_DICT_TRIE = Trie(get_corpus("words_th_frozen_201810.txt")) @@ -96,8 +95,10 @@ def dict_word_tokenize( return segment(text,custom_dict[1]) else: # default, use "newmm" engine from .newmm import segment - - return segment(text, custom_dict[0]) + if type(custom_dict) is tuple: + return segment(text, custom_dict[0]) + else: + return segment(text, custom_dict) def sent_tokenize(text: str, engine: str = "whitespace+newline") -> List[str]: From 0b1817f4d00a8de5ebadfc226e075fddf55e7cea Mon Sep 17 00:00:00 2001 From: Wannaphong Date: Mon, 15 Apr 2019 15:21:25 +0700 Subject: [PATCH 08/30] Trie to list for deepcut --- pythainlp/tokenize/__init__.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index f32f48f54..82566f5c9 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -92,13 +92,10 @@ def dict_word_tokenize( from .multi_cut import segment elif engine == "deepcut": from .deepcut import segment - return segment(text,custom_dict[1]) + return segment(text,list(custom_dict)) else: # default, use "newmm" engine from .newmm import segment - if type(custom_dict) is tuple: - return segment(text, custom_dict[0]) - else: - return segment(text, custom_dict) + return segment(text, custom_dict) def sent_tokenize(text: str, engine: str = "whitespace+newline") -> List[str]: @@ -181,10 +178,10 @@ def dict_trie(dict_source: Union[str, Iterable]) -> Trie: # Receive a file path of the dict to read with open(dict_source, "r", encoding="utf8") as f: _vocabs = f.read().splitlines() - return (Trie(_vocabs),_vocabs) + return Trie(_vocabs) elif isinstance(dict_source, Iterable): # Received a sequence type object of vocabs - return (Trie(dict_source),dict_source) + return Trie(dict_source) else: raise TypeError( "Type of dict_source must be either str (path to source file) or iterable" From 1b5109e3d7079ef91a1935d68830c40ef8791044 Mon Sep 17 00:00:00 2001 From: Wannaphong Date: Mon, 15 Apr 2019 15:24:58 +0700 Subject: [PATCH 09/30] update docs --- pythainlp/tokenize/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index 82566f5c9..40ae585c7 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -71,7 +71,7 @@ def dict_word_tokenize( :meth:`dict_word_tokenize` tokenizes word based on the dictionary you provide. The format has to be in trie data structure. :param str text: text to be tokenized :param dict custom_dict: a dictionary trie - :param str engine: choose between different options of engine to token (newmm, longest) + :param str engine: choose between different options of engine to token (newmm, mm, longest and deepcut) :return: list of words **Example**:: >>> from pythainlp.tokenize import dict_word_tokenize, dict_trie From 3ab9dc40894fb0c6d867050b8f3076466617053a Mon Sep 17 00:00:00 2001 From: Wannaphong Date: Mon, 15 Apr 2019 15:40:46 +0700 Subject: [PATCH 10/30] =?UTF-8?q?del=20=E0=B9=92,=E0=B9=95=E0=B9=94?= =?UTF-8?q?=E0=B9=90=20=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=81=E0=B8=B2?= =?UTF-8?q?=E0=B8=A3=20from=20=20words=5Fth.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pythainlp/corpus/words_th.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/pythainlp/corpus/words_th.txt b/pythainlp/corpus/words_th.txt index 4e6259387..0fa96af67 100755 --- a/pythainlp/corpus/words_th.txt +++ b/pythainlp/corpus/words_th.txt @@ -61186,7 +61186,6 @@ แอกน้อย แอด ๆ แอบ ๆ -๒,๕๔๐ รายการ โอ้กอ้าก โอฆ โอฆชล From 2b2ef0bdb9f71d33bf7a04d42289e4560af298a0 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Mon, 15 Apr 2019 18:53:48 +0200 Subject: [PATCH 11/30] Makes custom dictionary arguments more consistent across different engine. Handles Trie, Iterable[str], and str (path to dictionary). --- pythainlp/tokenize/__init__.py | 60 +++++++++++++++++++++++---------- pythainlp/tokenize/deepcut.py | 17 +++++++--- pythainlp/tokenize/longest.py | 18 ++++++---- pythainlp/tokenize/multi_cut.py | 27 +++++++++------ pythainlp/tokenize/newmm.py | 17 +++++----- 5 files changed, 92 insertions(+), 47 deletions(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index 40ae585c7..6587e9bb7 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -47,7 +47,7 @@ def word_tokenize( from .newmm import segment as segment_ def segment(text): - return segment_(text, trie=FROZEN_DICT_TRIE) + return segment_(text, custom_dict=FROZEN_DICT_TRIE) elif engine == "icu": from .pyicu import segment @@ -58,20 +58,26 @@ def segment(text): else: # default, use "newmm" engine from .newmm import segment - if not whitespaces: - return [token.strip(" ") for token in segment(text) if token.strip(" ")] + segments = segment(text) - return segment(text) + if whitespaces: + return segments + + return [token.strip(" ") for token in segments if token.strip(" ")] def dict_word_tokenize( - text: str, custom_dict: Trie, engine: str = "newmm" + text: str, + custom_dict: Union[Trie, Iterable[str], str] = DEFAULT_DICT_TRIE, + engine: str = "newmm", + whitespaces: bool = True, ) -> List[str]: """ :meth:`dict_word_tokenize` tokenizes word based on the dictionary you provide. The format has to be in trie data structure. :param str text: text to be tokenized - :param dict custom_dict: a dictionary trie - :param str engine: choose between different options of engine to token (newmm, mm, longest and deepcut) + :param dict custom_dict: a dictionary trie, or an iterable of words, or a string of dictionary path + :param str engine: choose between different options of engine to token (newmm [default], mm, longest, and deepcut) + :param bool whitespaces: True to output no whitespace, a common mark of end of phrase in Thai :return: list of words **Example**:: >>> from pythainlp.tokenize import dict_word_tokenize, dict_trie @@ -86,16 +92,32 @@ def dict_word_tokenize( if engine == "newmm" or engine == "onecut": from .newmm import segment + + custom_dict = dict_trie(custom_dict) elif engine == "longest" or engine == "longest-matching": from .longest import segment + + custom_dict = dict_trie(custom_dict) elif engine == "mm" or engine == "multi_cut": from .multi_cut import segment + + custom_dict = dict_trie(custom_dict) elif engine == "deepcut": from .deepcut import segment - return segment(text,list(custom_dict)) + + if not isinstance(custom_dict, List) and not isinstance(custom_dict, str): + custom_dict = list(custom_dict) else: # default, use "newmm" engine from .newmm import segment - return segment(text, custom_dict) + + custom_dict = dict_trie(custom_dict) + + segments = segment(text, custom_dict) + + if whitespaces: + return segments + + return [token.strip(" ") for token in segments if token.strip(" ")] def sent_tokenize(text: str, engine: str = "whitespace+newline") -> List[str]: @@ -135,11 +157,8 @@ def subword_tokenize(text: str, engine: str = "tcc") -> List[str]: if engine == "etcc": from .etcc import segment - - return segment(text) - - # default is "tcc" - from .tcc import segment + else: # default + from .tcc import segment return segment(text) @@ -164,7 +183,7 @@ def syllable_tokenize(text: str) -> List[str]: return tokens -def dict_trie(dict_source: Union[str, Iterable]) -> Trie: +def dict_trie(dict_source: Union[str, Iterable[str], Trie]) -> Trie: """ Create a dict trie which will be used for word_tokenize() function. For more information on the trie data structure, @@ -173,20 +192,25 @@ def dict_trie(dict_source: Union[str, Iterable]) -> Trie: :param string/list dict_source: a list of vocaburaries or a path to source file :return: a trie created from a dictionary input """ + trie = None if type(dict_source) is str: # Receive a file path of the dict to read with open(dict_source, "r", encoding="utf8") as f: _vocabs = f.read().splitlines() - return Trie(_vocabs) + trie = Trie(_vocabs) elif isinstance(dict_source, Iterable): # Received a sequence type object of vocabs - return Trie(dict_source) + trie = Trie(dict_source) + elif isinstance(dict_source, Trie): + trie = dict_source else: raise TypeError( - "Type of dict_source must be either str (path to source file) or iterable" + "Type of dict_source must be marisa_trie.Trie, or Iterable[str], or str (path to source file)" ) + return trie + class Tokenizer: def __init__( diff --git a/pythainlp/tokenize/deepcut.py b/pythainlp/tokenize/deepcut.py index 31636e06b..f3ec1efb4 100644 --- a/pythainlp/tokenize/deepcut.py +++ b/pythainlp/tokenize/deepcut.py @@ -3,12 +3,21 @@ Wrapper for deepcut Thai word segmentation """ -from typing import List +from typing import List, Union import deepcut +from marisa_trie import Trie + + +def segment(text: str, custom_dict: Union[Trie, List[str], str] = None) -> List[str]: + if not text: + return [] + + if custom_dict: + if isinstance(custom_dict, Trie): + custom_dict = list(custom_dict) + + return deepcut.tokenize(text, custom_dict) -def segment(text: str,dict_source:List[str]=None) -> List[str]: - if dict_source!=None: - return deepcut.tokenize(text, custom_dict=dict_source) return deepcut.tokenize(text) diff --git a/pythainlp/tokenize/longest.py b/pythainlp/tokenize/longest.py index 83ce495a1..db0bf889c 100644 --- a/pythainlp/tokenize/longest.py +++ b/pythainlp/tokenize/longest.py @@ -6,9 +6,12 @@ https://github.com/patorn/thaitokenizer/blob/master/thaitokenizer/tokenizer.py """ import re +from typing import List from pythainlp.tokenize import DEFAULT_DICT_TRIE +from marisa_trie import Trie + _FRONT_DEP_CHAR = [ "ะ", "ั", @@ -36,7 +39,7 @@ class LongestMatchTokenizer(object): - def __init__(self, trie): + def __init__(self, trie: Trie): self.__trie = trie def __search_nonthai(self, text: str): @@ -130,14 +133,17 @@ def __segment_text(self, text: str): return tokens - def tokenize(self, text): + def tokenize(self, text: str) -> List[str]: tokens = self.__segment_text(text) return tokens -def segment(text, trie=None): +def segment(text: str, custom_dict: Trie = None) -> List[str]: """ตัดคำภาษาไทยด้วยวิธี longest matching""" - if not trie: - trie = DEFAULT_DICT_TRIE + if not text: + return [] + + if not custom_dict: + custom_dict = DEFAULT_DICT_TRIE - return LongestMatchTokenizer(trie).tokenize(text) + return LongestMatchTokenizer(custom_dict).tokenize(text) diff --git a/pythainlp/tokenize/multi_cut.py b/pythainlp/tokenize/multi_cut.py index d161bdf4e..5d1238336 100644 --- a/pythainlp/tokenize/multi_cut.py +++ b/pythainlp/tokenize/multi_cut.py @@ -8,9 +8,12 @@ """ import re from collections import defaultdict +from typing import List from pythainlp.tokenize import DEFAULT_DICT_TRIE +from marisa_trie import Trie + class LatticeString(str): """ @@ -40,13 +43,14 @@ def __init__(self, value, multi=None, in_dict=True): _PAT_ENG = re.compile(_RE_ENG) -def _multicut(text, trie=None): +def _multicut(text: str, custom_dict: Trie = None): """ ส่งคืน LatticeString คืนมาเป็นก้อนๆ """ + if not custom_dict: + custom_dict = DEFAULT_DICT_TRIE + len_text = len(text) - if not trie: - trie = DEFAULT_DICT_TRIE words_at = defaultdict(list) # main data structure def serialize(p, p2): # helper function @@ -64,7 +68,7 @@ def serialize(p, p2): # helper function p = min(q) q -= {p} # q.pop, but for set - for w in trie.prefixes(text[p:]): + for w in custom_dict.prefixes(text[p:]): words_at[p].append(w) q.add(p + len(w)) @@ -80,7 +84,7 @@ def serialize(p, p2): # helper function i = p + m.span()[1] else: # skip น้อยที่สุด ที่เป็นไปได้ for i in range(p, len_text): - ww = trie.prefixes(text[i:]) + ww = custom_dict.prefixes(text[i:]) m = _PAT_ENG.match(text[i:]) if ww or m: break @@ -93,7 +97,7 @@ def serialize(p, p2): # helper function q.add(i) -def mmcut(text): +def mmcut(text: str): res = [] for w in _multicut(text): mm = min(w.multi, key=lambda x: x.count("/")) @@ -101,7 +105,7 @@ def mmcut(text): return res -def _combine(ww): +def _combine(ww: str): if ww == []: yield "" else: @@ -114,22 +118,23 @@ def _combine(ww): yield m.replace("/", "|") + "|" + tail -def segment(text, trie=None): +def segment(text: str, custom_dict: Trie = None) -> List[str]: """ ใช้ในการหา list ที่สามารถตัดคำได้ทั้งหมด """ if not text: return [] - return list(_multicut(text, trie=trie)) + return list(_multicut(text, custom_dict=custom_dict)) -def find_all_segment(text, trie=None): +def find_all_segment(text: str, custom_dict: Trie = None) -> List[str]: """ ใช้ในการหา list ที่สามารถตัดคำได้ทั้งหมด """ if not text: return [] - ww = list(_multicut(text, trie=trie)) + ww = list(_multicut(text, custom_dict=custom_dict)) + return list(_combine(ww)) diff --git a/pythainlp/tokenize/newmm.py b/pythainlp/tokenize/newmm.py index 066ff1017..88b766eea 100644 --- a/pythainlp/tokenize/newmm.py +++ b/pythainlp/tokenize/newmm.py @@ -13,6 +13,8 @@ from pythainlp.tokenize import DEFAULT_DICT_TRIE +from marisa_trie import Trie + from .tcc import tcc_pos # ช่วยตัดพวกภาษาอังกฤษ เป็นต้น @@ -39,7 +41,7 @@ def bfs_paths_graph(graph, start, goal): queue.append((next, path + [next])) -def onecut(text: str, trie): +def onecut(text: str, custom_dict: Trie): graph = defaultdict(list) # main data structure allow_pos = tcc_pos(text) # ตำแหน่งที่ตัด ต้องตรงกับ tcc @@ -48,7 +50,7 @@ def onecut(text: str, trie): while q[0] < len(text): p = heappop(q) - for w in trie.prefixes(text[p:]): + for w in custom_dict.prefixes(text[p:]): p_ = p + len(w) if p_ in allow_pos: # เลือกที่สอดคล้อง tcc graph[p].append(p_) @@ -74,7 +76,7 @@ def onecut(text: str, trie): if i in allow_pos: # ใช้ tcc ด้วย ww = [ w - for w in trie.prefixes(text[i:]) + for w in custom_dict.prefixes(text[i:]) if (i + len(w) in allow_pos) ] ww = [w for w in ww if not _PAT_TWOCHARS.match(w)] @@ -90,12 +92,11 @@ def onecut(text: str, trie): heappush(q, i) -# ช่วยให้ไม่ต้องพิมพ์ยาวๆ -def segment(text: str, trie=None) -> List[str]: +def segment(text: str, custom_dict: Trie = None) -> List[str]: if not text: return [] - if not trie: - trie = DEFAULT_DICT_TRIE + if not custom_dict: + custom_dict = DEFAULT_DICT_TRIE - return list(onecut(text, trie)) + return list(onecut(text, custom_dict)) From e84822151151f44bb689a21f5cc6c387ca6364b0 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Mon, 15 Apr 2019 19:33:57 +0200 Subject: [PATCH 12/30] More test cases for dict_word_tokenize and deepcut --- tests/__init__.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index b2f7c711f..9a33a9902 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -29,6 +29,7 @@ from pythainlp.tag.locations import tag_provinces from pythainlp.tag.named_entity import ThaiNameTagger from pythainlp.tokenize import ( + DEFAULT_DICT_TRIE, FROZEN_DICT_TRIE, Tokenizer, dict_trie, @@ -43,6 +44,7 @@ tcc, word_tokenize, ) +from pythainlp.tokenize import deepcut as tokenize_deepcut from pythainlp.tokenize import pyicu as tokenize_pyicu from pythainlp.transliterate import romanize, transliterate from pythainlp.transliterate.ipa import trans_list, xsampa_list @@ -305,6 +307,7 @@ def test_dict_word_tokenize(self): "รถไฟฟ้ากรุงเทพBTSหูว์ค์", custom_dict=FROZEN_DICT_TRIE, engine="longest", + whitespaces=False, ) ) self.assertIsNotNone( @@ -351,10 +354,15 @@ def test_word_tokenize_icu(self): ["ฉัน", "รัก", "ภาษา", "ไทย", "เพราะ", "ฉัน", "เป็น", "คน", "ไทย"], ) - # def test_word_tokenize_deepcut(self): - # self.assertEqual(deepcut.segment(None), []) - # self.assertEqual(deepcut.segment(""), []) - # self.assertIsNotNone(word_tokenize("ลึกลงไปลลลล", engine="deepcut")) + def test_word_tokenize_deepcut(self): + self.assertEqual(tokenize_deepcut.segment(None), []) + self.assertEqual(tokenize_deepcut.segment(""), []) + self.assertIsNotNone(tokenize_deepcut.segment("ทดสอบ", DEFAULT_DICT_TRIE)) + self.assertIsNotNone(tokenize_deepcut.segment("ทดสอบ", ["ทด", "สอบ"])) + self.assertIsNotNone(dict_word_tokenize("ทดสอบ", engine="deepcut")) + self.assertIsNotNone( + dict_word_tokenize("ทดสอบ", engine="deepcut", custom_dict=["ทด", "สอบ"]) + ) def test_word_tokenize_longest_matching(self): self.assertEqual(longest.segment(None), []) @@ -405,9 +413,10 @@ def test_sent_tokenize(self): self.assertEqual(sent_tokenize("รักน้ำ รักปลา "), ["รักน้ำ", "รักปลา"]) def test_subword_tokenize(self): - self.assertEqual(subword_tokenize(None), "") - self.assertEqual(subword_tokenize(""), "") - self.assertIsNotNone(subword_tokenize("สวัสดีดาวอังคาร")) + self.assertEqual(subword_tokenize(None), []) + self.assertEqual(subword_tokenize(""), []) + self.assertIsNotNone(subword_tokenize("สวัสดีดาวอังคาร", engine="tcc")) + self.assertIsNotNone(subword_tokenize("สวัสดีดาวอังคาร", engine="etcc")) def test_syllable_tokenize(self): self.assertEqual(syllable_tokenize(None), []) From a5525c374425a9062fda489911c3018211e83f77 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Mon, 15 Apr 2019 19:47:22 +0200 Subject: [PATCH 13/30] if input is empty, subword_tokenize() should return empty list. --- pythainlp/tokenize/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index 6587e9bb7..d8cc6bafe 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -153,7 +153,7 @@ def subword_tokenize(text: str, engine: str = "tcc") -> List[str]: :return: a list of tokenized strings. """ if not text: - return "" + return [] if engine == "etcc": from .etcc import segment From a9ebcc488db9c635c5524de2ba56cee569e91552 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Wed, 17 Apr 2019 21:04:20 +0200 Subject: [PATCH 14/30] - royin.romanize can romanize untokenized text now - ICU translitrate engine "pyicu" renamed to just "icu" --- README-pypi.md | 4 +- notebooks/pythainlp-get-started.ipynb | 85 ++++++++++++--------------- pythainlp/__init__.py | 7 ++- pythainlp/soundex/__init__.py | 6 +- pythainlp/spell/__init__.py | 4 +- pythainlp/summarize/__init__.py | 6 +- pythainlp/summarize/freq.py | 3 +- pythainlp/transliterate/__init__.py | 19 +++--- pythainlp/transliterate/royin.py | 23 ++++++-- 9 files changed, 83 insertions(+), 74 deletions(-) diff --git a/README-pypi.md b/README-pypi.md index 87642ae1b..05a7e2d11 100644 --- a/README-pypi.md +++ b/README-pypi.md @@ -1,6 +1,6 @@ ![PyThaiNLP Logo](https://avatars0.githubusercontent.com/u/32934255?s=200&v=4) -# PyThaiNLP 2.0.3 +# PyThaiNLP PyThaiNLP is a Python library for natural language processing (NLP) of Thai language. @@ -8,7 +8,7 @@ PyThaiNLP includes Thai word tokenizers, transliterators, soundex converters, pa 📫 follow us on Facebook [PyThaiNLP](https://www.facebook.com/pythainlp/) -## What's new in version 2.0 ? +## What's new in 2.0 ? - Terminate Python 2 support. Remove all Python 2 compatibility code. - Improved `word_tokenize` ("newmm" and "mm" engine) and `dict_word_tokenize` diff --git a/notebooks/pythainlp-get-started.ipynb b/notebooks/pythainlp-get-started.ipynb index 00b804c45..8e5577ab9 100644 --- a/notebooks/pythainlp-get-started.ipynb +++ b/notebooks/pythainlp-get-started.ipynb @@ -386,7 +386,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Thai Character Cluster (TCC)\n", + "### Subword and Thai Character Cluster (TCC)\n", "\n", "According to [Character Cluster Based Thai Information Retrieval](https://www.researchgate.net/publication/2853284_Character_Cluster_Based_Thai_Information_Retrieval) (Theeramunkong et al. 2004)." ] @@ -408,31 +408,11 @@ } ], "source": [ - "from pythainlp.tokenize import subword_tokenize\n", + "from pythainlp import subword_tokenize\n", "\n", "subword_tokenize(\"ประเทศไทย\")" ] }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "isinstance(subword_tokenize(\"ประเทศไทย\", engine=\"etcc\"), str)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -442,7 +422,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -451,20 +431,20 @@ "['ป', 'ระ', 'เท', 'ศ', 'ไท', 'ย']" ] }, - "execution_count": 17, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "from pythainlp import tcc\n", + "from pythainlp.tokenize import tcc\n", "\n", "tcc.segment(\"ประเทศไทย\")" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -473,7 +453,7 @@ "{1, 3, 5, 6, 8, 9}" ] }, - "execution_count": 18, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -484,7 +464,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -509,7 +489,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -518,7 +498,7 @@ "'maeo'" ] }, - "execution_count": 20, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -531,21 +511,34 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "mɛːw\n" - ] + "data": { + "text/plain": [ + "'mɛːw'" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ "from pythainlp.transliterate import transliterate\n", "\n", - "print(transliterate(\"แมว\"))" + "transliterate(\"แมว\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "#!pip3 install pythainlp[icu]\n", + "#transliterate(\"แมว\", engine=\"icu\")" ] }, { @@ -736,15 +729,15 @@ { "data": { "text/plain": [ - "[('งวงช้าง', 12),\n", - " ('เทิบทาบ', 7),\n", - " ('กริน', 3),\n", - " ('นาภี', 2),\n", - " ('แด่วๆ', 3),\n", - " ('คู่ใจ', 7),\n", - " ('คุณพ่อ', 732),\n", - " ('สิ้น', 755),\n", - " ('เยาะ', 150)]" + "[('ลุ่น', 4),\n", + " ('คั่น', 53),\n", + " ('ไก่ป่า', 29),\n", + " ('ปริพาชก', 4),\n", + " ('สิกขาบท', 4),\n", + " ('คัดลายมือ', 2),\n", + " ('เลียบ', 53),\n", + " ('เกือบๆ', 6),\n", + " ('จันทรคติ', 6)]" ] }, "execution_count": 28, diff --git a/pythainlp/__init__.py b/pythainlp/__init__.py index 66326efe4..6ad04250e 100644 --- a/pythainlp/__init__.py +++ b/pythainlp/__init__.py @@ -27,6 +27,11 @@ from pythainlp.soundex import soundex from pythainlp.spell import correct, spell from pythainlp.tag import pos_tag -from pythainlp.tokenize import sent_tokenize, tcc, word_tokenize, Tokenizer +from pythainlp.tokenize import ( + Tokenizer, + sent_tokenize, + subword_tokenize, + word_tokenize, +) from pythainlp.transliterate import romanize, transliterate from pythainlp.util import collate, thai_strftime diff --git a/pythainlp/soundex/__init__.py b/pythainlp/soundex/__init__.py index fac5f978d..1320353d0 100644 --- a/pythainlp/soundex/__init__.py +++ b/pythainlp/soundex/__init__.py @@ -12,7 +12,7 @@ # [KSS97] https://linux.thai.net/~thep/soundex/soundex.html -def soundex(text: str, engine="udom83") -> str: +def soundex(text: str, engine: str = "udom83") -> str: """ Thai Soundex @@ -24,9 +24,7 @@ def soundex(text: str, engine="udom83") -> str: * metasound :return: soundex code """ - if engine == "udom83": - _soundex = udom83 - elif engine == "lk82": + if engine == "lk82": _soundex = lk82 elif engine == "metasound": _soundex = metasound diff --git a/pythainlp/spell/__init__.py b/pythainlp/spell/__init__.py index c4b654f53..ba73bffb5 100644 --- a/pythainlp/spell/__init__.py +++ b/pythainlp/spell/__init__.py @@ -10,7 +10,7 @@ __all__ = ["DEFAULT_SPELL_CHECKER", "correct", "spell", "NorvigSpellChecker"] -def spell(word: str, engine="pn") -> List[str]: +def spell(word: str, engine: str = "pn") -> List[str]: """ :param str word: word to check spelling :param str engine: @@ -21,7 +21,7 @@ def spell(word: str, engine="pn") -> List[str]: return DEFAULT_SPELL_CHECKER.spell(word) -def correct(word: str, engine="pn") -> str: +def correct(word: str, engine: str = "pn") -> str: """ :param str word: word to correct spelling :param str engine: diff --git a/pythainlp/summarize/__init__.py b/pythainlp/summarize/__init__.py index fda0346b5..e74e0e752 100644 --- a/pythainlp/summarize/__init__.py +++ b/pythainlp/summarize/__init__.py @@ -3,12 +3,16 @@ Summarization """ +from typing import List + from pythainlp.tokenize import sent_tokenize from .freq import FrequencySummarizer -def summarize(text, n, engine="frequency", tokenizer="newmm"): +def summarize( + text: str, n: int, engine: str = "frequency", tokenizer: str = "newmm" +) -> List[str]: """ Thai text summarization diff --git a/pythainlp/summarize/freq.py b/pythainlp/summarize/freq.py index 2dc7044fd..f39998e53 100644 --- a/pythainlp/summarize/freq.py +++ b/pythainlp/summarize/freq.py @@ -5,6 +5,7 @@ from collections import defaultdict from heapq import nlargest from string import punctuation +from typing import List from pythainlp.corpus import thai_stopwords from pythainlp.tokenize import sent_tokenize, word_tokenize @@ -36,7 +37,7 @@ def __compute_frequencies(self, word_tokenized_sents): def __rank(self, ranking, n: int): return nlargest(n, ranking, key=ranking.get) - def summarize(self, text: str, n: int, tokenizer: str): + def summarize(self, text: str, n: int, tokenizer: str) -> List[str]: sents = sent_tokenize(text) word_tokenized_sents = [word_tokenize(sent, tokenizer) for sent in sents] self.__freq = self.__compute_frequencies(word_tokenized_sents) diff --git a/pythainlp/transliterate/__init__.py b/pythainlp/transliterate/__init__.py index 91435cc54..5b5a4c639 100644 --- a/pythainlp/transliterate/__init__.py +++ b/pythainlp/transliterate/__init__.py @@ -1,14 +1,13 @@ # -*- coding: utf-8 -*- -from pythainlp.tokenize import word_tokenize - def romanize(text: str, engine: str = "royin") -> str: """ + Romanization of Thai text ถอดเสียงภาษาไทยเป็นอักษรละติน :param str text: Thai text to be romanized :param str engine: 'royin' (default) or 'thai2rom'. 'royin' uses Thai Royal Institute standard. 'thai2rom' is deep learning Thai romanization (require keras). - :return: English (more or less) text that spells out how the Thai text should read. + :return: English (more or less) text that spells out how the Thai text should be pronounced. """ if not isinstance(text, str) or not text: @@ -16,28 +15,24 @@ def romanize(text: str, engine: str = "royin") -> str: if engine == "thai2rom": from .thai2rom import romanize - - return romanize(text) else: # use default engine "royin" from .royin import romanize - words = word_tokenize(text) - romanized_words = [romanize(word) for word in words] - - return "".join(romanized_words) + return romanize(text) def transliterate(text: str, engine: str = "ipa") -> str: """ + Transliteration of Thai text :param str text: Thai text to be transliterated - :param str engine: 'ipa' (default) or 'pyicu'. - :return: A string of Internaitonal Phonetic Alphabets indicating how the text should read. + :param str engine: 'ipa' (International Phonetic Alphabet; default) or 'icu'. + :return: A string of Internaitonal Phonetic Alphabets indicating how the text should be pronounced. """ if not isinstance(text, str) or not text: return "" - if engine == "pyicu": + if engine == "icu" or engine == "pyicu": from .pyicu import transliterate else: from .ipa import transliterate diff --git a/pythainlp/transliterate/royin.py b/pythainlp/transliterate/royin.py index d6f6f71c8..4bab892fe 100644 --- a/pythainlp/transliterate/royin.py +++ b/pythainlp/transliterate/royin.py @@ -2,6 +2,8 @@ import re +from pythainlp import word_tokenize + # สระ _vowel_patterns = """เ*ียว,\\1iao แ*็ว,\\1aeo @@ -117,9 +119,9 @@ ) -def _normalize(text: str) -> str: +def _normalize(word: str) -> str: """ตัดอักษรที่ไม่ออกเสียง (การันต์ ไปยาลน้อย ไม้ยมก*) และวรรณยุกต์ทิ้ง""" - return _RE_NORMALIZE.sub("", text) + return _RE_NORMALIZE.sub("", word) def _replace_vowels(word: str) -> str: @@ -162,7 +164,11 @@ def _replace_consonants(word: str, res: str) -> str: return word -def romanize(word: str) -> str: +def _romanize(word: str) -> str: + """ + :param str word: Thai word to be romanized, ideally this should have already been tokenized. + :return: Spells out how the Thai word should be pronounced. + """ if not isinstance(word, str) or not word: return "" @@ -176,5 +182,12 @@ def romanize(word: str) -> str: word2 = "".join(word2) word2 = _replace_consonants(word2, res) - - return word2 \ No newline at end of file + + return word2 + + +def romanize(text: str) -> str: + words = word_tokenize(text) + romanized_words = [_romanize(word) for word in words] + + return "".join(romanized_words) From 37a8e942e9fdd4bf411d378d179dc85f36040279 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Wed, 17 Apr 2019 21:13:28 +0200 Subject: [PATCH 15/30] Info about RTGS romanization system --- pythainlp/transliterate/__init__.py | 8 +++++--- pythainlp/transliterate/royin.py | 13 +++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pythainlp/transliterate/__init__.py b/pythainlp/transliterate/__init__.py index 5b5a4c639..735650345 100644 --- a/pythainlp/transliterate/__init__.py +++ b/pythainlp/transliterate/__init__.py @@ -3,11 +3,13 @@ def romanize(text: str, engine: str = "royin") -> str: """ - Romanization of Thai text + Rendering Thai words in the Latin alphabet or "romanization", + using the Royal Thai General System of Transcription (RTGS), + which is the official system published by the Royal Institute of Thailand. ถอดเสียงภาษาไทยเป็นอักษรละติน :param str text: Thai text to be romanized - :param str engine: 'royin' (default) or 'thai2rom'. 'royin' uses Thai Royal Institute standard. 'thai2rom' is deep learning Thai romanization (require keras). - :return: English (more or less) text that spells out how the Thai text should be pronounced. + :param str engine: 'royin' (default) or 'thai2rom'. 'royin' uses the Royal Thai General System of Transcription issued by Royal Institute of Thailand. 'thai2rom' is deep learning Thai romanization (require keras). + :return: A string of Thai words rendered in the Latin alphabet. """ if not isinstance(text, str) or not text: diff --git a/pythainlp/transliterate/royin.py b/pythainlp/transliterate/royin.py index 4bab892fe..8c3bb5620 100644 --- a/pythainlp/transliterate/royin.py +++ b/pythainlp/transliterate/royin.py @@ -1,5 +1,10 @@ # -*- coding: utf-8 -*- +# The Royal Thai General System of Transcription (RTGS) +# is the official system for rendering Thai words in the Latin alphabet. +# It was published by the Royal Institute of Thailand. +# https://en.wikipedia.org/wiki/Royal_Thai_General_System_of_Transcription + import re from pythainlp import word_tokenize @@ -187,6 +192,14 @@ def _romanize(word: str) -> str: def romanize(text: str) -> str: + """ + Rendering Thai words in the Latin alphabet or "romanization", + using the Royal Thai General System of Transcription (RTGS), + which is the official system published by the Royal Institute of Thailand. + ถอดเสียงภาษาไทยเป็นอักษรละติน + :param str text: Thai text to be romanized + :return: A string of Thai words rendered in the Latin alphabet. + """ words = word_tokenize(text) romanized_words = [_romanize(word) for word in words] From 00ec9a79ca0681a229d4e78b8044ab2494b1df5e Mon Sep 17 00:00:00 2001 From: Wannaphong Date: Thu, 18 Apr 2019 02:24:11 +0700 Subject: [PATCH 16/30] =?UTF-8?q?fix=20bug=20transliterate=20:=20ain=20(?= =?UTF-8?q?=E0=B9=84=E0=B8=AB=E0=B8=99)=20->=20nai=20(=E0=B9=84=E0=B8=AB?= =?UTF-8?q?=E0=B8=99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pythainlp/transliterate/royin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pythainlp/transliterate/royin.py b/pythainlp/transliterate/royin.py index d6f6f71c8..58560d5cf 100644 --- a/pythainlp/transliterate/royin.py +++ b/pythainlp/transliterate/royin.py @@ -18,6 +18,7 @@ *าย,\\1ai ไ*ย,\\1ai *ัย,\\1ai +ไ**,\\1\\2ai ไ*,\\1ai ใ*,\\1ai *ว*,\\1ua\\2 @@ -177,4 +178,4 @@ def romanize(word: str) -> str: word2 = _replace_consonants(word2, res) - return word2 \ No newline at end of file + return word2 From d85e17f492c6c422d73dac897e322a8fd010c462 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Fri, 19 Apr 2019 10:48:09 +0100 Subject: [PATCH 17/30] add info about IPA and ICU library in comments --- README.md | 4 +-- pythainlp/tokenize/__init__.py | 2 +- pythainlp/tokenize/pyicu.py | 3 +- pythainlp/transliterate/ipa.py | 2 ++ pythainlp/transliterate/pyicu.py | 9 +++++- pythainlp/transliterate/royin.py | 12 ++++---- pythainlp/transliterate/thai2rom.py | 2 +- pythainlp/ulmfit/__init__.py | 43 +++++++++++++++++------------ 8 files changed, 48 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 9ff268b21..96c0b8f51 100644 --- a/README.md +++ b/README.md @@ -65,8 +65,8 @@ $ pip install pythainlp[extra1,extra2,...] where ```extras``` can be - ```artagger``` (to support artagger part-of-speech tagger)* - ```deepcut``` (to support deepcut machine-learnt tokenizer) - - ```icu``` (for ICU support in transliteration and tokenization) - - ```ipa``` (for International Phonetic Alphabet support in transliteration) + - ```icu``` (for ICU, International Components for Unicode, support in transliteration and tokenization) + - ```ipa``` (for IPA, International Phonetic Alphabet, support in transliteration) - ```ml``` (to support fastai 1.0.22 ULMFiT models) - ```ner``` (for named-entity recognizer) - ```thai2fit``` (for Thai word vector) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index d8cc6bafe..ce3672f4a 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -23,7 +23,7 @@ def word_tokenize( :Parameters for engine: * newmm (default) - dictionary-based, Maximum Matching + Thai Character Cluster * longest - dictionary-based, Longest Matching - * icu - wrapper for ICU, dictionary-based + * icu - wrapper for ICU (International Components for Unicode, using PyICU), dictionary-based * deepcut - wrapper for deepcut, language-model-based https://github.com/rkcosmos/deepcut * ulmfit - use newmm engine with a specific dictionary for use with thai2vec :return: list of words, tokenized from the text diff --git a/pythainlp/tokenize/pyicu.py b/pythainlp/tokenize/pyicu.py index 33fc0aabc..869965e2c 100644 --- a/pythainlp/tokenize/pyicu.py +++ b/pythainlp/tokenize/pyicu.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- """ -Wrapper for ICU word segmentation +Wrapper for PyICU word segmentation +https://github.com/ovalhub/pyicu """ import re from typing import List diff --git a/pythainlp/transliterate/ipa.py b/pythainlp/transliterate/ipa.py index be7c1e1c6..b6b9f5833 100644 --- a/pythainlp/transliterate/ipa.py +++ b/pythainlp/transliterate/ipa.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- """ Transliterating text to International Phonetic Alphabet (IPA) +Using epitran +https://github.com/dmort27/epitran """ import epitran diff --git a/pythainlp/transliterate/pyicu.py b/pythainlp/transliterate/pyicu.py index 5e4a755aa..e5850ac33 100644 --- a/pythainlp/transliterate/pyicu.py +++ b/pythainlp/transliterate/pyicu.py @@ -1,13 +1,20 @@ # -*- coding: utf-8 -*- +""" +Transliterating text to International Phonetic Alphabet (IPA) +Using International Components for Unicode (ICU) +https://github.com/ovalhub/pyicu +""" from icu import Transliterator - _ICU_THAI_TO_LATIN = Transliterator.createInstance("Thai-Latin") # ถอดเสียงภาษาไทยเป็นอักษรละติน def transliterate(text: str) -> str: """ + Use ICU (International Components for Unicode) for transliteration ถอดเสียงภาษาไทยเป็นอักษรละติน รับค่า ''str'' ข้อความ คืนค่า ''str'' อักษรละติน + :param str text: Thai text to be transliterated. + :return: A string of Internaitonal Phonetic Alphabets indicating how the text should be pronounced. """ return _ICU_THAI_TO_LATIN.transliterate(text) diff --git a/pythainlp/transliterate/royin.py b/pythainlp/transliterate/royin.py index 8c3bb5620..48964d88e 100644 --- a/pythainlp/transliterate/royin.py +++ b/pythainlp/transliterate/royin.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- - -# The Royal Thai General System of Transcription (RTGS) -# is the official system for rendering Thai words in the Latin alphabet. -# It was published by the Royal Institute of Thailand. -# https://en.wikipedia.org/wiki/Royal_Thai_General_System_of_Transcription - +""" +The Royal Thai General System of Transcription (RTGS) +is the official system for rendering Thai words in the Latin alphabet. +It was published by the Royal Institute of Thailand. +#https://en.wikipedia.org/wiki/Royal_Thai_General_System_of_Transcription +""" import re from pythainlp import word_tokenize diff --git a/pythainlp/transliterate/thai2rom.py b/pythainlp/transliterate/thai2rom.py index 1dc5a5267..41443d020 100644 --- a/pythainlp/transliterate/thai2rom.py +++ b/pythainlp/transliterate/thai2rom.py @@ -149,7 +149,7 @@ def __encode_input(self, name): def romanize(self, text): """ :param str text: Thai text to be romanized - :return: English (more or less) text that spells out how the Thai text should read. + :return: English (more or less) text that spells out how the Thai text should be pronounced. """ return self.__decode_sequence(self.__encode_input(text)) diff --git a/pythainlp/ulmfit/__init__.py b/pythainlp/ulmfit/__init__.py index 00c9f8891..6cefc4fb2 100644 --- a/pythainlp/ulmfit/__init__.py +++ b/pythainlp/ulmfit/__init__.py @@ -1,14 +1,17 @@ # -*- coding: utf-8 -*- - """ -Code by https://github.com/cstorm125/thai2fit/ +Code by Charin +https://github.com/cstorm125/thai2fit/ """ import collections import re -import emoji +from typing import List + +import emoji import numpy as np import torch + from fastai.text import TK_REP, BaseTokenizer, Tokenizer from fastai.text.transform import ( deal_caps, @@ -17,8 +20,8 @@ spec_add_spaces, replace_all_caps, ) +from pythainlp import word_tokenize from pythainlp.corpus import download, get_corpus_path -from pythainlp.tokenize import word_tokenize from pythainlp.util import normalize as normalize_char_order __all__ = [ @@ -57,47 +60,51 @@ class ThaiTokenizer(BaseTokenizer): https://docs.fast.ai/text.transform#BaseTokenizer """ - def __init__(self, lang="th"): + def __init__(self, lang: str = "th"): self.lang = lang - def tokenizer(self, t): + def tokenizer(self, text: str) -> List[str]: """ :meth: tokenize text with a frozen newmm engine - :param str t: text to tokenize + :param str text: text to tokenize :return: tokenized text """ - return word_tokenize(t, engine="ulmfit") + return word_tokenize(text, engine="ulmfit") def add_special_cases(self, toks): pass -def replace_rep_after(t): - "Replace repetitions at the character level in `t` after the repetition" +def replace_rep_after(text: str) -> str: + "Replace repetitions at the character level in `text` after the repetition" def _replace_rep(m): c, cc = m.groups() return f"{c}{TK_REP}{len(cc)+1}" re_rep = re.compile(r"(\S)(\1{2,})") - return re_rep.sub(_replace_rep, t) + + return re_rep.sub(_replace_rep, text) -def rm_useless_newlines(t): - "Remove multiple newlines in `t`." - return re.sub(r"[\n]{2,}", " ", t) +def rm_useless_newlines(text: str) -> str: + "Remove multiple newlines in `text`." + return re.sub(r"[\n]{2,}", " ", text) -def rm_brackets(t): + +def rm_brackets(text: str) -> str: "Remove all empty brackets from `t`." - new_line = re.sub(r"\(\)", "", t) + new_line = re.sub(r"\(\)", "", text) new_line = re.sub(r"\{\}", "", new_line) new_line = re.sub(r"\[\]", "", new_line) + return new_line def ungroup_emoji(toks): "Ungroup emojis" + res = [] for tok in toks: if emoji.emoji_count(tok) == len(tok): @@ -105,6 +112,7 @@ def ungroup_emoji(toks): res.append(char) else: res.append(tok) + return res @@ -134,7 +142,7 @@ def lowercase_all(toks): _tokenizer = ThaiTokenizer() -def document_vector(text, learn, data, agg="mean"): +def document_vector(text: str, learn, data, agg: str = "mean"): """ :meth: `document_vector` get document vector using fastai language model and data bunch :param str text: text to extract embeddings @@ -154,6 +162,7 @@ def document_vector(text, learn, data, agg="mean"): res = res.sum(0) else: raise ValueError("Aggregate by mean or sum") + return res From 47cd40a0cbc197125f8b0b43d75acab41709b3da Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Fri, 19 Apr 2019 11:25:56 +0100 Subject: [PATCH 18/30] Add more test for royin (RTGS) romanize() (lots of them failed now) --- pythainlp/transliterate/royin.py | 7 +++++-- pythainlp/ulmfit/__init__.py | 5 ++--- tests/__init__.py | 8 +++++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pythainlp/transliterate/royin.py b/pythainlp/transliterate/royin.py index 80a346a2c..6a80e3230 100644 --- a/pythainlp/transliterate/royin.py +++ b/pythainlp/transliterate/royin.py @@ -126,7 +126,10 @@ def _normalize(word: str) -> str: - """ตัดอักษรที่ไม่ออกเสียง (การันต์ ไปยาลน้อย ไม้ยมก*) และวรรณยุกต์ทิ้ง""" + """ + Remove silence, no sound, and tonal characters + ตัดอักษรที่ไม่ออกเสียง (การันต์ ไปยาลน้อย ไม้ยมก*) และวรรณยุกต์ทิ้ง + """ return _RE_NORMALIZE.sub("", word) @@ -173,7 +176,7 @@ def _replace_consonants(word: str, res: str) -> str: # Support function for romanize() def _romanize(word: str) -> str: """ - :param str word: Thai word to be romanized, ideally this should have already been tokenized. + :param str word: Thai word to be romanized, should have already been tokenized. :return: Spells out how the Thai word should be pronounced. """ if not isinstance(word, str) or not word: diff --git a/pythainlp/ulmfit/__init__.py b/pythainlp/ulmfit/__init__.py index 6cefc4fb2..f2992d549 100644 --- a/pythainlp/ulmfit/__init__.py +++ b/pythainlp/ulmfit/__init__.py @@ -12,9 +12,8 @@ import numpy as np import torch -from fastai.text import TK_REP, BaseTokenizer, Tokenizer +from fastai.text import TK_REP, BaseTokenizer from fastai.text.transform import ( - deal_caps, fix_html, rm_useless_spaces, spec_add_spaces, @@ -147,7 +146,7 @@ def document_vector(text: str, learn, data, agg: str = "mean"): :meth: `document_vector` get document vector using fastai language model and data bunch :param str text: text to extract embeddings :param learn: fastai language model learner - :param data: fastai data bunch + :param data: fastai data bunch :param agg: how to aggregate embeddings :return: `numpy.array` of document vector sized 400 based on the encoder of the model """ diff --git a/tests/__init__.py b/tests/__init__.py index 9a33a9902..067d6975f 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -443,7 +443,13 @@ def test_romanize(self): self.assertEqual(romanize_royin(None), "") self.assertEqual(romanize_royin(""), "") self.assertEqual(romanize_royin("หาย"), "hai") - self.assertEqual(romanize_royin("หยาก"), "yak") + self.assertEqual(romanize_royin("หมอก"), "mok") + #self.assertEqual(romanize_royin("มหา"), "maha") # not pass + #self.assertEqual(romanize_royin("หยาก"), "yak") # not pass + #self.assertEqual(romanize_royin("อยาก"), "yak") # not pass + #self.assertEqual(romanize_royin("ยมก"), "yamok") # not pass + #self.assertEqual(romanize_royin("กลัว"), "klua") # not pass + #self.assertEqual(romanize_royin("กลัว"), "klua") # not pass self.assertEqual(romanize("แมว", engine="royin"), "maeo") self.assertEqual(romanize("เดือน", engine="royin"), "duean") From 5f0eb4f9533737c2b141e82c69fd8150604a2b2e Mon Sep 17 00:00:00 2001 From: bact Date: Fri, 19 Apr 2019 11:30:58 +0100 Subject: [PATCH 19/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96c0b8f51..1ada409d8 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ PyThaiNLP is a Python package for text processing and linguistic analysis, simil - Convenient character and word classes, like Thai consonants (```pythainlp.thai_consonants```), vowels (```pythainlp.thai_vowels```), digits (```pythainlp.thai_digits```), and stop words (```pythainlp.corpus.thai_stopwords```) -- comparable to constants like ```string.letters```, ```string.digits```, and ```string.punctuation``` - Thai word segmentation (```word_tokenize```), including subword segmentation based on Thai Character Cluster (```tcc```) and ETCC (```etcc```) -- Thai romanization and transliteration (```romanize```, ```transliterate```) +- Thai transliteration (```transliterate```) and experimental RTGS romanization (```romanize```) - Thai part-of-speech taggers (```pos_tag```) - Read out number to Thai words (```bahttext```, ```num_to_thaiword```) - Thai collation (sort by dictionoary order) (```collate```) From 94dd2594c434d58bb694b0d53e2cd18ed47db344 Mon Sep 17 00:00:00 2001 From: bact Date: Fri, 19 Apr 2019 11:36:37 +0100 Subject: [PATCH 20/30] Update README.md --- README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1ada409d8..bec7ab474 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,13 @@ PyThaiNLP is a Python package for text processing and linguistic analysis, simil ## Capabilities - Convenient character and word classes, like Thai consonants (```pythainlp.thai_consonants```), vowels (```pythainlp.thai_vowels```), digits (```pythainlp.thai_digits```), and stop words (```pythainlp.corpus.thai_stopwords```) -- comparable to constants like ```string.letters```, ```string.digits```, and ```string.punctuation``` -- Thai word segmentation (```word_tokenize```), including subword segmentation based on Thai Character Cluster (```tcc```) and ETCC (```etcc```) -- Thai transliteration (```transliterate```) and experimental RTGS romanization (```romanize```) +- Thai word segmentation (```word_tokenize```), including subword segmentation based on Thai Character Cluster (```subword_tokenize```) +- Thai transliteration (```transliterate```) - Thai part-of-speech taggers (```pos_tag```) - Read out number to Thai words (```bahttext```, ```num_to_thaiword```) - Thai collation (sort by dictionoary order) (```collate```) - Thai-English keyboard misswitched fix (```eng_to_thai```, ```thai_to_eng```) -- Thai misspellings detection and spelling correction (```spell```) +- Thai spelling suggestion and correction (```spell``` and ```correct```) - Thai soundex (```lk82```, ```udom83```, ```metasound```) - Thai WordNet wrapper - and much more - see examples in [PyThaiNLP Get Started notebook](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb). @@ -115,14 +115,13 @@ PyThaiNLP เป็นไลบารีภาษาไพทอนเพื่ ## ความสามารถ - ชุดค่าคงที่ตัวอักษระและคำไทยที่เรียกใช้ได้สะดวก เช่น พยัญชนะ (```pythainlp.thai_consonants```), สระ (```pythainlp.thai_vowels```), ตัวเลขไทย (```pythainlp.thai_digits```), และ stop word (```pythainlp.corpus.thai_stopwords```) -- เหมือนกับค่าคงที่อย่าง ```string.letters```, ```string.digits```, และ ```string.punctuation``` -- Thai word segmentation (```word_tokenize```), including subword segmentation based on Thai Character Cluster (```tcc```) and ETCC (```etcc```) -- ตัดคำภาษาไทย (```word_tokenize```) และรองรับ Thai Character Clusters (```tcc```) และ ETCC (```etcc```) -- ถอดเสียงภาษาไทยเป็นอักษรละตินและสัทอักษร (```romanize```, ```transliterate```) +- ตัดคำภาษาไทย (```word_tokenize```) และรองรับการตัดระดับต่ำกว่าคำโดยใช้ Thai Character Clusters (```subword_tokenize```) +- ถอดเสียงภาษาไทยเป็นอักษรละตินและสัทอักษร (```transliterate```) - ระบุชนิดคำ (part-of-speech) ภาษาไทย (```pos_tag```) - อ่านตัวเลขเป็นข้อความภาษาไทย (```bahttext```, ```num_to_thaiword```) - เรียงลำดับคำตามพจนานุกรมไทย (```collate```) - แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา (```eng_to_thai```, ```thai_to_eng```) -- ตรวจคำสะกดผิดในภาษาไทย (```spell```) +- ตรวจคำสะกดผิดในภาษาไทย (```spell```, ```correct```) - soundex ภาษาไทย (```lk82```, ```udom83```, ```metasound```) - Thai WordNet wrapper - และอื่น ๆ ดูตัวอย่างได้ใน [PyThaiNLP Get Started notebook](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb) From 61f787f53223c274898140f15a067795cb3d6d66 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 13:28:39 +0200 Subject: [PATCH 21/30] merge and refactor word_tokenize and dict_word_tokenize --- pythainlp/tokenize/__init__.py | 124 ++++++++++++++------------------- 1 file changed, 54 insertions(+), 70 deletions(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index ce3672f4a..c210df754 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -3,6 +3,7 @@ Thai tokenizers """ import re +import sys from typing import Iterable, List, Union from pythainlp.corpus import get_corpus, thai_syllables, thai_words @@ -14,20 +15,21 @@ def word_tokenize( - text: str, engine: str = "newmm", whitespaces: bool = True + text: str, custom_dict: Trie = None, engine: str = "newmm", whitespaces: bool = True ) -> List[str]: """ :param str text: text to be tokenized :param str engine: tokenizer to be used - :param bool whitespaces: True to output no whitespace, a common mark of end of phrase in Thai + :param dict custom_dict: a dictionary trie + :param bool whitespaces: True to output no whitespace, a common mark for end of phrase in Thai :Parameters for engine: * newmm (default) - dictionary-based, Maximum Matching + Thai Character Cluster * longest - dictionary-based, Longest Matching - * icu - wrapper for ICU (International Components for Unicode, using PyICU), dictionary-based * deepcut - wrapper for deepcut, language-model-based https://github.com/rkcosmos/deepcut - * ulmfit - use newmm engine with a specific dictionary for use with thai2vec + * icu - wrapper for ICU (International Components for Unicode, using PyICU), dictionary-based + * ulmfit - for thai2fit + * a custom_dict can be provided for newmm, longest, and deepcut :return: list of words, tokenized from the text - **Example**:: >>> from pythainlp.tokenize import word_tokenize >>> text = "โอเคบ่พวกเรารักภาษาบ้านเกิด" @@ -36,88 +38,72 @@ def word_tokenize( >>> word_tokenize(text, engine="icu") ['โอ', 'เค', 'บ่', 'พวก', 'เรา', 'รัก', 'ภาษา', 'บ้าน', 'เกิด'] """ - if not text: + if not text or not isinstance(text, str): return [] + segments = [] if engine == "newmm" or engine == "onecut": from .newmm import segment - elif engine == "longest" or engine == "longest-matching": + + segments = segment(text, custom_dict) + elif engine == "longest": from .longest import segment - elif engine == "ulmfit": - from .newmm import segment as segment_ - def segment(text): - return segment_(text, custom_dict=FROZEN_DICT_TRIE) + segments = segment(text, custom_dict) + elif engine == "mm" or engine == "multi_cut": + from .multi_cut import segment + + segments = segment(text, custom_dict) + elif engine == "deepcut": # deepcut can optionally use dictionary + from .deepcut import segment + + if custom_dict: + custom_dict = list(custom_dict) + segments = segment(text, custom_dict) + else: + segments = segment(text) + elif engine == "ulmfit": # ulmfit has its own specific dictionary + from .newmm import segment + segments = segment(text, custom_dict=FROZEN_DICT_TRIE) elif engine == "icu": from .pyicu import segment - elif engine == "deepcut": - from .deepcut import segment - elif engine == "mm" or engine == "multi_cut": - from .multi_cut import segment + + segments = segment(text) else: # default, use "newmm" engine from .newmm import segment - segments = segment(text) + if custom_dict: + custom_dict = dict_trie(custom_dict) + segments = segment(text, custom_dict) if whitespaces: - return segments + segments = [token.strip(" ") for token in segments if token.strip(" ")] - return [token.strip(" ") for token in segments if token.strip(" ")] + return segments def dict_word_tokenize( text: str, - custom_dict: Union[Trie, Iterable[str], str] = DEFAULT_DICT_TRIE, + custom_dict: Trie = DEFAULT_DICT_TRIE, engine: str = "newmm", whitespaces: bool = True, ) -> List[str]: """ - :meth:`dict_word_tokenize` tokenizes word based on the dictionary you provide. The format has to be in trie data structure. + :meth: Deprecated. Please use `word_tokenize()` with `custom_dict` argument instead. :param str text: text to be tokenized :param dict custom_dict: a dictionary trie, or an iterable of words, or a string of dictionary path :param str engine: choose between different options of engine to token (newmm [default], mm, longest, and deepcut) :param bool whitespaces: True to output no whitespace, a common mark of end of phrase in Thai :return: list of words - **Example**:: - >>> from pythainlp.tokenize import dict_word_tokenize, dict_trie - >>> words = ["แมว", "ดี"] - >>> trie = dict_trie(words) - >>> dict_word_tokenize("แมวดีดีแมว", trie) - ['แมว', 'ดี', 'ดี', 'แมว'] """ - - if not text: - return [] - - if engine == "newmm" or engine == "onecut": - from .newmm import segment - - custom_dict = dict_trie(custom_dict) - elif engine == "longest" or engine == "longest-matching": - from .longest import segment - - custom_dict = dict_trie(custom_dict) - elif engine == "mm" or engine == "multi_cut": - from .multi_cut import segment - - custom_dict = dict_trie(custom_dict) - elif engine == "deepcut": - from .deepcut import segment - - if not isinstance(custom_dict, List) and not isinstance(custom_dict, str): - custom_dict = list(custom_dict) - else: # default, use "newmm" engine - from .newmm import segment - - custom_dict = dict_trie(custom_dict) - - segments = segment(text, custom_dict) - - if whitespaces: - return segments - - return [token.strip(" ") for token in segments if token.strip(" ")] + print( + "Deprecated. Use `word_tokenize()` with `custom_dict` argument instead.", + file=sys.stderr, + ) + return word_tokenize( + text=text, custom_dict=custom_dict, engine=engine, whitespaces=whitespaces + ) def sent_tokenize(text: str, engine: str = "whitespace+newline") -> List[str]: @@ -178,7 +164,7 @@ def syllable_tokenize(text: str) -> List[str]: words = word_tokenize(text) trie = dict_trie(dict_source=thai_syllables()) for word in words: - tokens.extend(dict_word_tokenize(text=word, custom_dict=trie)) + tokens.extend(word_tokenize(text=word, custom_dict=trie)) return tokens @@ -214,20 +200,20 @@ def dict_trie(dict_source: Union[str, Iterable[str], Trie]) -> Trie: class Tokenizer: def __init__( - self, custom_dict: Union[str, Iterable] = None, tokenize_engine: str = "newmm" + self, custom_dict: Union[Trie, Iterable[str], str] = None, engine: str = "newmm" ): """ Initialize tokenizer object - :param str custom_dict: a file path or a list of vocaburaies to be used to create a trie (default - original lexitron) - :param str tokenize_engine: choose between different options of engine to token (newmm, mm, longest) + :param str custom_dict: a file path or a list of vocaburaies to be used to create a trie + :param str engine: choose between different options of engine to token (newmm, mm, longest) """ self.__trie_dict = None - self.word_engine = tokenize_engine + self.__engine = engine if custom_dict: self.__trie_dict = dict_trie(custom_dict) else: - self.__trie_dict = dict_trie(thai_words()) + self.__trie_dict = DEFAULT_DICT_TRIE def word_tokenize(self, text: str) -> List[str]: """ @@ -235,12 +221,10 @@ def word_tokenize(self, text: str) -> List[str]: :return: list of words, tokenized from the text """ - return dict_word_tokenize( - text, custom_dict=self.__trie_dict, engine=self.word_engine - ) + return word_tokenize(text, custom_dict=self.__trie_dict, engine=self.__engine) - def set_tokenize_engine(self, name_engine: str) -> None: + def set_tokenize_engine(self, engine: str) -> None: """ - :param str name_engine: choose between different options of engine to token (newmm, mm, longest) + :param str engine: choose between different options of engine to token (newmm, mm, longest) """ - self.word_engine = name_engine + self.__engine = engine From e6d3fb00bf82c5a82c664eca9afece9155ec996a Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 13:44:25 +0200 Subject: [PATCH 22/30] update test for dict_word_tokenize --- tests/__init__.py | 67 +++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 43 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index 067d6975f..06677a556 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -292,34 +292,7 @@ def test_ner(self): # ### pythainlp.tokenize def test_dict_word_tokenize(self): - self.assertEqual(dict_word_tokenize("", custom_dict=FROZEN_DICT_TRIE), []) - self.assertIsNotNone( - dict_word_tokenize("รถไฟฟ้ากรุงเทพBTSหูว์ค์", custom_dict=FROZEN_DICT_TRIE) - ) - self.assertIsNotNone(dict_trie(())) - self.assertIsNotNone( - dict_word_tokenize( - "รถไฟฟ้ากรุงเทพBTSหูว์ค์", custom_dict=FROZEN_DICT_TRIE, engine="newmm" - ) - ) - self.assertIsNotNone( - dict_word_tokenize( - "รถไฟฟ้ากรุงเทพBTSหูว์ค์", - custom_dict=FROZEN_DICT_TRIE, - engine="longest", - whitespaces=False, - ) - ) - self.assertIsNotNone( - dict_word_tokenize( - "รถไฟฟ้ากรุงเทพBTSหูว์ค์", custom_dict=FROZEN_DICT_TRIE, engine="mm" - ) - ) - self.assertIsNotNone( - dict_word_tokenize( - "รถไฟฟ้ากรุงเทพBTSหูว์ค์", custom_dict=FROZEN_DICT_TRIE, engine="XX" - ) - ) + self.assertEqual(dict_word_tokenize(""), []) def test_etcc(self): self.assertEqual(etcc.segment(""), "") @@ -337,10 +310,21 @@ def test_word_tokenize(self): word_tokenize("ฉันรักภาษาไทยเพราะฉันเป็นคนไทย"), ["ฉัน", "รัก", "ภาษาไทย", "เพราะ", "ฉัน", "เป็น", "คนไทย"], ) - self.assertIsNotNone(word_tokenize("ทดสอบ", engine="ulmfit")) - self.assertIsNotNone(word_tokenize("ทดสอบ", engine="XX")) - self.assertIsNotNone(word_tokenize("ทดสอบ", engine="deepcut")) - self.assertIsNotNone(word_tokenize("", engine="deepcut")) + + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="newmm")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="mm")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="longest")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="ulmfit")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="icu")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="deepcut")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="XX")) + + self.assertIsNotNone(dict_trie(())) + self.assertIsNotNone(dict_trie(("ทดสอบ", "สร้าง", "Trie"))) + self.assertIsNotNone(dict_trie(["ทดสอบ", "สร้าง", "Trie"])) + self.assertIsNotNone(dict_trie(thai_words())) + + self.assertIsNotNone(word_tokenize("รถไฟฟ้าBTS", custom_dict=DEFAULT_DICT_TRIE)) def test_Tokenizer(self): t_test = Tokenizer() @@ -359,12 +343,9 @@ def test_word_tokenize_deepcut(self): self.assertEqual(tokenize_deepcut.segment(""), []) self.assertIsNotNone(tokenize_deepcut.segment("ทดสอบ", DEFAULT_DICT_TRIE)) self.assertIsNotNone(tokenize_deepcut.segment("ทดสอบ", ["ทด", "สอบ"])) - self.assertIsNotNone(dict_word_tokenize("ทดสอบ", engine="deepcut")) - self.assertIsNotNone( - dict_word_tokenize("ทดสอบ", engine="deepcut", custom_dict=["ทด", "สอบ"]) - ) + self.assertIsNotNone(word_tokenize("ทดสอบ", engine="deepcut")) - def test_word_tokenize_longest_matching(self): + def test_word_tokenize_longest(self): self.assertEqual(longest.segment(None), []) self.assertEqual(longest.segment(""), []) self.assertEqual( @@ -444,12 +425,12 @@ def test_romanize(self): self.assertEqual(romanize_royin(""), "") self.assertEqual(romanize_royin("หาย"), "hai") self.assertEqual(romanize_royin("หมอก"), "mok") - #self.assertEqual(romanize_royin("มหา"), "maha") # not pass - #self.assertEqual(romanize_royin("หยาก"), "yak") # not pass - #self.assertEqual(romanize_royin("อยาก"), "yak") # not pass - #self.assertEqual(romanize_royin("ยมก"), "yamok") # not pass - #self.assertEqual(romanize_royin("กลัว"), "klua") # not pass - #self.assertEqual(romanize_royin("กลัว"), "klua") # not pass + # self.assertEqual(romanize_royin("มหา"), "maha") # not pass + # self.assertEqual(romanize_royin("หยาก"), "yak") # not pass + # self.assertEqual(romanize_royin("อยาก"), "yak") # not pass + # self.assertEqual(romanize_royin("ยมก"), "yamok") # not pass + # self.assertEqual(romanize_royin("กลัว"), "klua") # not pass + # self.assertEqual(romanize_royin("กลัว"), "klua") # not pass self.assertEqual(romanize("แมว", engine="royin"), "maeo") self.assertEqual(romanize("เดือน", engine="royin"), "duean") From efcbdae0e0a51903127b7a9062794a8edf2337d0 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 14:03:08 +0200 Subject: [PATCH 23/30] `word_tokenize()' argument `whitespaces` is now `keep_whitespace` --- pythainlp/tokenize/__init__.py | 8 ++++---- tests/__init__.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index c210df754..4c33ea0fb 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -15,13 +15,13 @@ def word_tokenize( - text: str, custom_dict: Trie = None, engine: str = "newmm", whitespaces: bool = True + text: str, custom_dict: Trie = None, engine: str = "newmm", keep_whitespace: bool = True ) -> List[str]: """ :param str text: text to be tokenized :param str engine: tokenizer to be used :param dict custom_dict: a dictionary trie - :param bool whitespaces: True to output no whitespace, a common mark for end of phrase in Thai + :param bool keep_whitespace: True to keep whitespaces, a common mark for end of phrase in Thai :Parameters for engine: * newmm (default) - dictionary-based, Maximum Matching + Thai Character Cluster * longest - dictionary-based, Longest Matching @@ -77,7 +77,7 @@ def word_tokenize( custom_dict = dict_trie(custom_dict) segments = segment(text, custom_dict) - if whitespaces: + if not keep_whitespace: segments = [token.strip(" ") for token in segments if token.strip(" ")] return segments @@ -102,7 +102,7 @@ def dict_word_tokenize( file=sys.stderr, ) return word_tokenize( - text=text, custom_dict=custom_dict, engine=engine, whitespaces=whitespaces + text=text, custom_dict=custom_dict, engine=engine, keep_whitespace=whitespaces ) diff --git a/tests/__init__.py b/tests/__init__.py index 06677a556..b477a51c6 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -372,7 +372,7 @@ def test_word_tokenize_newmm(self): ["ฉัน", "รัก", "ภาษาไทย", "เพราะ", "ฉัน", "เป็น", "คนไทย"], ) self.assertEqual( - word_tokenize("สวัสดีครับ สบายดีไหมครับ", engine="newmm"), + word_tokenize("สวัสดีครับ สบายดีไหมครับ", engine="newmm", keep_whitespace=True), ["สวัสดี", "ครับ", " ", "สบายดี", "ไหม", "ครับ"], ) self.assertEqual( @@ -380,7 +380,7 @@ def test_word_tokenize_newmm(self): ) self.assertEqual(word_tokenize("จุ๋มง่วง", engine="newmm"), ["จุ๋ม", "ง่วง"]) self.assertEqual( - word_tokenize("จุ๋ม ง่วง", engine="newmm", whitespaces=False), + word_tokenize("จุ๋ม ง่วง", engine="newmm", keep_whitespace=False), ["จุ๋ม", "ง่วง"], ) From 18d0b8058be03170a9ba0408da8adbdb905cf9ac Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 18:34:55 +0200 Subject: [PATCH 24/30] fix word_tokenize() call in FrequencySummarizer --- pythainlp/summarize/freq.py | 4 ++-- pythainlp/tokenize/newmm.py | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pythainlp/summarize/freq.py b/pythainlp/summarize/freq.py index f39998e53..bc43ef437 100644 --- a/pythainlp/summarize/freq.py +++ b/pythainlp/summarize/freq.py @@ -37,9 +37,9 @@ def __compute_frequencies(self, word_tokenized_sents): def __rank(self, ranking, n: int): return nlargest(n, ranking, key=ranking.get) - def summarize(self, text: str, n: int, tokenizer: str) -> List[str]: + def summarize(self, text: str, n: int, tokenizer: str = "newmm") -> List[str]: sents = sent_tokenize(text) - word_tokenized_sents = [word_tokenize(sent, tokenizer) for sent in sents] + word_tokenized_sents = [word_tokenize(sent, engine=tokenizer) for sent in sents] self.__freq = self.__compute_frequencies(word_tokenized_sents) ranking = defaultdict(int) diff --git a/pythainlp/tokenize/newmm.py b/pythainlp/tokenize/newmm.py index 88b766eea..b7437a631 100644 --- a/pythainlp/tokenize/newmm.py +++ b/pythainlp/tokenize/newmm.py @@ -30,7 +30,7 @@ _PAT_TWOCHARS = re.compile("[ก-ฮ]{,2}$") -def bfs_paths_graph(graph, start, goal): +def _bfs_paths_graph(graph, start, goal): queue = [(start, [start])] while queue: (vertex, path) = queue.pop(0) @@ -41,9 +41,9 @@ def bfs_paths_graph(graph, start, goal): queue.append((next, path + [next])) -def onecut(text: str, custom_dict: Trie): +def _onecut(text: str, custom_dict: Trie): graph = defaultdict(list) # main data structure - allow_pos = tcc_pos(text) # ตำแหน่งที่ตัด ต้องตรงกับ tcc + allow_pos = tcc_pos(text) # separating position should aligned with TCC q = [0] # min-heap queue last_p = 0 # last position for yield @@ -59,7 +59,7 @@ def onecut(text: str, custom_dict: Trie): # กรณี length 1 คือ ไม่กำกวมแล้ว ส่งผลลัพธ์ก่อนนี้คืนได้ if len(q) == 1: - pp = next(bfs_paths_graph(graph, last_p, q[0])) + pp = next(_bfs_paths_graph(graph, last_p, q[0])) # เริ่มต้น last_p = pp[0] เอง for p in pp[1:]: yield text[last_p:p] @@ -99,4 +99,4 @@ def segment(text: str, custom_dict: Trie = None) -> List[str]: if not custom_dict: custom_dict = DEFAULT_DICT_TRIE - return list(onecut(text, custom_dict)) + return list(_onecut(text, custom_dict)) From 3161c38453cdb22e6f8bf5f0b891d945b9ff9685 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 19:15:51 +0200 Subject: [PATCH 25/30] more test cases for word_tokenize with custom_dict --- notebooks/pythainlp-get-started.ipynb | 73 ++++++++++++++------------- tests/__init__.py | 11 +++- 2 files changed, 49 insertions(+), 35 deletions(-) diff --git a/notebooks/pythainlp-get-started.ipynb b/notebooks/pythainlp-get-started.ipynb index 8e5577ab9..8d5b1c363 100644 --- a/notebooks/pythainlp-get-started.ipynb +++ b/notebooks/pythainlp-get-started.ipynb @@ -308,7 +308,7 @@ "\n", "print(\"sent_tokenize:\", sent_tokenize(text))\n", "print(\"word_tokenize:\", word_tokenize(text))\n", - "print(\"word_tokenize, without whitespace:\", word_tokenize(text, whitespaces=False))" + "print(\"word_tokenize, without whitespace:\", word_tokenize(text, keep_whitespace=False))" ] }, { @@ -729,15 +729,15 @@ { "data": { "text/plain": [ - "[('ลุ่น', 4),\n", - " ('คั่น', 53),\n", - " ('ไก่ป่า', 29),\n", - " ('ปริพาชก', 4),\n", - " ('สิกขาบท', 4),\n", - " ('คัดลายมือ', 2),\n", - " ('เลียบ', 53),\n", - " ('เกือบๆ', 6),\n", - " ('จันทรคติ', 6)]" + "[('สะใภ้', 69),\n", + " ('เบ็ด', 120),\n", + " ('น้ำตก', 64),\n", + " ('กร', 170),\n", + " ('จีบ', 37),\n", + " ('อั้งยี่', 4),\n", + " ('พิจิตร', 12),\n", + " ('นักมวย', 30),\n", + " ('มด', 133)]" ] }, "execution_count": 28, @@ -880,9 +880,7 @@ { "data": { "text/plain": [ - "[[('ราชกิจจานุเบกษา', 'NCMN'),\n", - " ('เผยแพร่', 'VACT'),\n", - " ('ประกาศสำนักนายกฯ', 'NCMN'),\n", + "[[('ประกาศสำนักนายกฯ', 'NCMN'),\n", " (' ', 'PUNC'),\n", " ('ให้', 'JSBR'),\n", " (' ', 'PUNC'),\n", @@ -898,11 +896,6 @@ " ('แต่งตั้ง', 'VACT'),\n", " ('ให้', 'JSBR'),\n", " ('เป็น', 'VSTA'),\n", - " ('ข้าราชการ', 'NCMN'),\n", - " ('พลเรือน', 'NCMN'),\n", - " ('สามัญ', 'NCMN'),\n", - " ('ตำแหน่ง', 'NCMN'),\n", - " (' ', 'PUNC'),\n", " (\"'อธิบดีกรมประชาสัมพันธ์'\", 'NCMN')]]" ] }, @@ -912,11 +905,10 @@ } ], "source": [ - "sents = [[\"ราชกิจจานุเบกษา\", \"เผยแพร่\", \"ประกาศสำนักนายกฯ\", \" \", \"ให้\",\n", + "sents = [[\"ประกาศสำนักนายกฯ\", \" \", \"ให้\",\n", " \" \", \"'พล.ท.สรรเสริญ แก้วกำเนิด'\", \" \", \"พ้นจากตำแหน่ง\",\n", " \" \", \"ผู้ทรงคุณวุฒิพิเศษ\", \"กองทัพบก\", \" \", \"กระทรวงกลาโหม\"],\n", - " [\"และ\",\"แต่งตั้ง\",\"ให้\", \"เป็น\", \"ข้าราชการ\", \"พลเรือน\", \"สามัญ\",\n", - " \"ตำแหน่ง\", \" \", \"'อธิบดีกรมประชาสัมพันธ์'\"]]\n", + " [\"และ\", \"แต่งตั้ง\", \"ให้\", \"เป็น\", \"'อธิบดีกรมประชาสัมพันธ์'\"]]\n", "\n", "pos_tag_sents(sents)" ] @@ -941,23 +933,36 @@ { "data": { "text/plain": [ - "[('วันที่', 'NOUN', 'O'),\n", - " (' ', 'PUNCT', 'O'),\n", - " ('15', 'NUM', 'B-DATE'),\n", - " (' ', 'PUNCT', 'I-DATE'),\n", - " ('ก.ย.', 'NOUN', 'I-DATE'),\n", - " (' ', 'PUNCT', 'I-DATE'),\n", - " ('61', 'NUM', 'I-DATE'),\n", - " (' ', 'PUNCT', 'O'),\n", - " ('ทดสอบ', 'VERB', 'O'),\n", - " ('ระบบ', 'NOUN', 'O'),\n", - " ('เวลา', 'NOUN', 'O'),\n", + "[('วันที่', 'NOUN', 'I-MONEY'),\n", + " (' ', 'PUNCT', 'I-MONEY'),\n", + " ('15', 'NUM', 'I-MONEY'),\n", + " (' ', 'PUNCT', 'I-MONEY'),\n", + " ('ก.ย.', 'NOUN', 'I-MONEY'),\n", + " (' ', 'PUNCT', 'I-MONEY'),\n", + " ('61', 'NUM', 'I-MONEY'),\n", + " (' ', 'PUNCT', 'I-MONEY'),\n", + " ('ทดสอบ', 'VERB', 'I-MONEY'),\n", + " ('ระบบ', 'NOUN', 'I-MONEY'),\n", " (' ', 'PUNCT', 'O'),\n", " ('14', 'NOUN', 'B-TIME'),\n", " (':', 'PUNCT', 'I-TIME'),\n", " ('49', 'NUM', 'I-TIME'),\n", " (' ', 'PUNCT', 'I-TIME'),\n", - " ('น.', 'NOUN', 'I-TIME')]" + " ('น.', 'NOUN', 'I-TIME'),\n", + " (' ', 'PUNCT', 'O'),\n", + " ('เดินทาง', 'VERB', 'O'),\n", + " ('จาก', 'ADP', 'O'),\n", + " ('กทม.', 'NOUN', 'B-LOCATION'),\n", + " ('ไป', 'AUX', 'O'),\n", + " ('จังหวัด', 'NOUN', 'B-LOCATION'),\n", + " ('กำแพงเพชร', 'NOUN', 'I-LOCATION'),\n", + " (' ', 'PUNCT', 'I-MONEY'),\n", + " ('ตั๋ว', 'NOUN', 'I-MONEY'),\n", + " ('ราคา', 'NOUN', 'I-MONEY'),\n", + " (' ', 'PUNCT', 'I-MONEY'),\n", + " ('297', 'NUM', 'I-MONEY'),\n", + " (' ', 'PUNCT', 'I-MONEY'),\n", + " ('บาท', 'NOUN', 'I-MONEY')]" ] }, "execution_count": 35, @@ -969,7 +974,7 @@ "from pythainlp.tag.named_entity import ThaiNameTagger\n", "\n", "ner = ThaiNameTagger()\n", - "ner.get_ner(\"วันที่ 15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น.\")" + "ner.get_ner(\"วันที่ 15 ก.ย. 61 ทดสอบระบบ 14:49 น. เดินทางจากกทม.ไปจังหวัดกำแพงเพชร ตั๋วราคา 297 บาท\")" ] }, { diff --git a/tests/__init__.py b/tests/__init__.py index b477a51c6..d448e23cb 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -323,8 +323,15 @@ def test_word_tokenize(self): self.assertIsNotNone(dict_trie(("ทดสอบ", "สร้าง", "Trie"))) self.assertIsNotNone(dict_trie(["ทดสอบ", "สร้าง", "Trie"])) self.assertIsNotNone(dict_trie(thai_words())) + self.assertIsNotNone(dict_trie(FROZEN_DICT_TRIE)) self.assertIsNotNone(word_tokenize("รถไฟฟ้าBTS", custom_dict=DEFAULT_DICT_TRIE)) + self.assertIsNotNone( + word_tokenize("ทดสอบ", engine="deepcut", custom_dict=FROZEN_DICT_TRIE) + ) + self.assertIsNotNone( + word_tokenize("ทดสอบ", engine="XX", custom_dict=FROZEN_DICT_TRIE) + ) def test_Tokenizer(self): t_test = Tokenizer() @@ -372,7 +379,9 @@ def test_word_tokenize_newmm(self): ["ฉัน", "รัก", "ภาษาไทย", "เพราะ", "ฉัน", "เป็น", "คนไทย"], ) self.assertEqual( - word_tokenize("สวัสดีครับ สบายดีไหมครับ", engine="newmm", keep_whitespace=True), + word_tokenize( + "สวัสดีครับ สบายดีไหมครับ", engine="newmm", keep_whitespace=True + ), ["สวัสดี", "ครับ", " ", "สบายดี", "ไหม", "ครับ"], ) self.assertEqual( From 90d1ac6d307041e72aa76b48f907486ee235085a Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 23:22:03 +0200 Subject: [PATCH 26/30] - more test cases for "longest" tokenizer - check if instance is str before tokenizing --- docs/archive/pythainlp-dev-thai.md | 2 +- notebooks/pythainlp-get-started.ipynb | 165 +++++++++++++++---------- notebooks/wongnai_classification.ipynb | 2 +- pythainlp/soundex/lk82.py | 2 +- pythainlp/soundex/metasound.py | 2 +- pythainlp/soundex/udom83.py | 2 +- pythainlp/tokenize/__init__.py | 16 +-- pythainlp/tokenize/deepcut.py | 2 +- pythainlp/tokenize/etcc.py | 2 +- pythainlp/tokenize/longest.py | 2 +- pythainlp/tokenize/multi_cut.py | 9 +- pythainlp/tokenize/newmm.py | 2 +- pythainlp/tokenize/pyicu.py | 3 +- pythainlp/tokenize/tcc.py | 12 +- pythainlp/transliterate/__init__.py | 4 +- pythainlp/util/digitconv.py | 6 +- pythainlp/util/thai.py | 2 +- tests/__init__.py | 21 ++-- 18 files changed, 150 insertions(+), 106 deletions(-) diff --git a/docs/archive/pythainlp-dev-thai.md b/docs/archive/pythainlp-dev-thai.md index 943b51d7f..ec7c575d1 100644 --- a/docs/archive/pythainlp-dev-thai.md +++ b/docs/archive/pythainlp-dev-thai.md @@ -387,7 +387,7 @@ rank(["แมง", "แมง", "คน"]) # Counter({'แมง': 2, 'คน': กฎที่รองรับ - lk82 - กฎการเข้ารหัสซาวน์เด็กซ์ของ วิชิตหล่อจีระชุณห์กุล และ เจริญ คุวินทร์พันธุ์ - udom83 - กฎการเข้ารหัสซาวน์เด็กซ์ของ วรรณี อุดมพาณิชย์ -- metasound - กฎการเข้ารหัส MetaSoound ของ Snae & Brückner (2009) +- metasound - กฎการเข้ารหัส MetaSound ของ Snae & Brückner (2009) เครดิต - โค้ด lk82 และ udom83 - Korakot Chaovavanich https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8 diff --git a/notebooks/pythainlp-get-started.ipynb b/notebooks/pythainlp-get-started.ipynb index 8d5b1c363..bc131bd4f 100644 --- a/notebooks/pythainlp-get-started.ipynb +++ b/notebooks/pythainlp-get-started.ipynb @@ -382,6 +382,42 @@ "print(\"custom:\", custom_tokenizer.word_tokenize(text))" ] }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['มี|ความ|เป็น|ไป|ได้|อย่าง|ไร|บ้าง|',\n", + " 'มี|ความ|เป็นไป|ได้|อย่าง|ไร|บ้าง|',\n", + " 'มี|ความ|เป็นไปได้|อย่าง|ไร|บ้าง|',\n", + " 'มี|ความเป็นไป|ได้|อย่าง|ไร|บ้าง|',\n", + " 'มี|ความเป็นไปได้|อย่าง|ไร|บ้าง|',\n", + " 'มี|ความ|เป็น|ไป|ได้|อย่างไร|บ้าง|',\n", + " 'มี|ความ|เป็นไป|ได้|อย่างไร|บ้าง|',\n", + " 'มี|ความ|เป็นไปได้|อย่างไร|บ้าง|',\n", + " 'มี|ความเป็นไป|ได้|อย่างไร|บ้าง|',\n", + " 'มี|ความเป็นไปได้|อย่างไร|บ้าง|',\n", + " 'มี|ความ|เป็น|ไป|ได้|อย่างไรบ้าง|',\n", + " 'มี|ความ|เป็นไป|ได้|อย่างไรบ้าง|',\n", + " 'มี|ความ|เป็นไปได้|อย่างไรบ้าง|',\n", + " 'มี|ความเป็นไป|ได้|อย่างไรบ้าง|',\n", + " 'มี|ความเป็นไปได้|อย่างไรบ้าง|']" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pythainlp.tokenize.multi_cut import find_all_segment, mmcut, segment\n", + "\n", + "find_all_segment(\"มีความเป็นไปได้อย่างไรบ้าง\")\n" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -393,7 +429,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -402,7 +438,7 @@ "['ป', 'ระ', 'เท', 'ศ', 'ไท', 'ย']" ] }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -422,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -431,7 +467,7 @@ "['ป', 'ระ', 'เท', 'ศ', 'ไท', 'ย']" ] }, - "execution_count": 16, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -444,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -453,7 +489,7 @@ "{1, 3, 5, 6, 8, 9}" ] }, - "execution_count": 17, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +500,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -489,7 +525,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -498,7 +534,7 @@ "'maeo'" ] }, - "execution_count": 19, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -511,7 +547,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -520,7 +556,7 @@ "'mɛːw'" ] }, - "execution_count": 20, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -533,7 +569,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ @@ -550,7 +586,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -559,7 +595,7 @@ "True" ] }, - "execution_count": 22, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -581,7 +617,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -605,7 +641,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -645,7 +681,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -654,7 +690,7 @@ "['เหลียม', 'เหลือม']" ] }, - "execution_count": 25, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -668,7 +704,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -677,7 +713,7 @@ "'เหลียม'" ] }, - "execution_count": 26, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -700,7 +736,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -723,24 +759,24 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[('สะใภ้', 69),\n", - " ('เบ็ด', 120),\n", - " ('น้ำตก', 64),\n", - " ('กร', 170),\n", - " ('จีบ', 37),\n", - " ('อั้งยี่', 4),\n", - " ('พิจิตร', 12),\n", - " ('นักมวย', 30),\n", - " ('มด', 133)]" + "[('แสดงทรรศนะ', 2),\n", + " ('เจ้าอธิการ', 4),\n", + " ('วินิจฉัย', 133),\n", + " ('อ่อนหวาน', 90),\n", + " ('ไตรตรา', 3),\n", + " ('คำๆ', 15),\n", + " ('ปริ่ม', 13),\n", + " ('มนุ', 3),\n", + " ('ส้าง', 5)]" ] }, - "execution_count": 28, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -758,7 +794,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -767,7 +803,7 @@ "39977" ] }, - "execution_count": 29, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -779,7 +815,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -788,7 +824,7 @@ "30379" ] }, - "execution_count": 30, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -800,7 +836,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -809,7 +845,7 @@ "76706" ] }, - "execution_count": 31, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -821,7 +857,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -830,7 +866,7 @@ "76700" ] }, - "execution_count": 32, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -852,7 +888,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -861,7 +897,7 @@ "[('การ', 'FIXN'), ('เดินทาง', 'VACT')]" ] }, - "execution_count": 33, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -874,7 +910,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -899,7 +935,7 @@ " (\"'อธิบดีกรมประชาสัมพันธ์'\", 'NCMN')]]" ] }, - "execution_count": 34, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -927,22 +963,21 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[('วันที่', 'NOUN', 'I-MONEY'),\n", - " (' ', 'PUNCT', 'I-MONEY'),\n", - " ('15', 'NUM', 'I-MONEY'),\n", - " (' ', 'PUNCT', 'I-MONEY'),\n", - " ('ก.ย.', 'NOUN', 'I-MONEY'),\n", - " (' ', 'PUNCT', 'I-MONEY'),\n", - " ('61', 'NUM', 'I-MONEY'),\n", - " (' ', 'PUNCT', 'I-MONEY'),\n", - " ('ทดสอบ', 'VERB', 'I-MONEY'),\n", - " ('ระบบ', 'NOUN', 'I-MONEY'),\n", + "[('15', 'NUM', 'B-DATE'),\n", + " (' ', 'PUNCT', 'I-DATE'),\n", + " ('ก.ย.', 'NOUN', 'I-DATE'),\n", + " (' ', 'PUNCT', 'I-DATE'),\n", + " ('61', 'NUM', 'I-DATE'),\n", + " (' ', 'PUNCT', 'O'),\n", + " ('ทดสอบ', 'VERB', 'O'),\n", + " ('ระบบ', 'NOUN', 'O'),\n", + " ('เวลา', 'NOUN', 'O'),\n", " (' ', 'PUNCT', 'O'),\n", " ('14', 'NOUN', 'B-TIME'),\n", " (':', 'PUNCT', 'I-TIME'),\n", @@ -965,7 +1000,7 @@ " ('บาท', 'NOUN', 'I-MONEY')]" ] }, - "execution_count": 35, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -974,7 +1009,7 @@ "from pythainlp.tag.named_entity import ThaiNameTagger\n", "\n", "ner = ThaiNameTagger()\n", - "ner.get_ner(\"วันที่ 15 ก.ย. 61 ทดสอบระบบ 14:49 น. เดินทางจากกทม.ไปจังหวัดกำแพงเพชร ตั๋วราคา 297 บาท\")" + "ner.get_ner(\"15 ก.ย. 61 ทดสอบระบบเวลา 14:49 น. เดินทางจากกทม.ไปจังหวัดกำแพงเพชร ตั๋วราคา 297 บาท\")" ] }, { @@ -986,7 +1021,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1006,7 +1041,7 @@ "0.99259853" ] }, - "execution_count": 36, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -1019,7 +1054,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -1035,7 +1070,7 @@ "'แมว'" ] }, - "execution_count": 37, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -1053,7 +1088,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "metadata": {}, "outputs": [ { @@ -1062,7 +1097,7 @@ "'หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเจ็ดล้านแปดแสนเก้าหมื่นหนึ่งร้อยยี่สิบสามบาทสี่สิบห้าสตางค์'" ] }, - "execution_count": 38, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -1075,7 +1110,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -1084,7 +1119,7 @@ "'หนึ่งบาทเก้าสิบเอ็ดสตางค์'" ] }, - "execution_count": 39, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } diff --git a/notebooks/wongnai_classification.ipynb b/notebooks/wongnai_classification.ipynb index 70345b9e1..59d1ae760 100644 --- a/notebooks/wongnai_classification.ipynb +++ b/notebooks/wongnai_classification.ipynb @@ -355,7 +355,7 @@ "def process_text(text):\n", " nopunc = [char for char in text if char not in string.punctuation]\n", " nopunc = ''.join(nopunc)\n", - " return [word for word in word_tokenize(nopunc,'ulmfit') if word and not re.search(pattern=r\"\\s+\", string=word)]\n", + " return [word for word in word_tokenize(nopunc, engine='ulmfit') if word and not re.search(pattern=r\"\\s+\", string=word)]\n", "def split_text(text):\n", " return text.split()\n", "\n", diff --git a/pythainlp/soundex/lk82.py b/pythainlp/soundex/lk82.py index e0dee6d6b..a173cae5f 100644 --- a/pythainlp/soundex/lk82.py +++ b/pythainlp/soundex/lk82.py @@ -28,7 +28,7 @@ def lk82(text: str) -> str: :param str text: Thai word :return: LK82 soundex """ - if not text: + if not text or not isinstance(text, str): return "" text = _RE_1.sub("", text) # 4.ลบวรรณยุกต์ diff --git a/pythainlp/soundex/metasound.py b/pythainlp/soundex/metasound.py index 6998f81a9..d594c950e 100644 --- a/pythainlp/soundex/metasound.py +++ b/pythainlp/soundex/metasound.py @@ -38,7 +38,7 @@ def metasound(text: str, length: int = 4) -> str: >>> metasound("บูรณการ", 5)) 'บ5515' """ - if not text: + if not text or not isinstance(text, str): return "" # keep only consonants and thanthakhat diff --git a/pythainlp/soundex/udom83.py b/pythainlp/soundex/udom83.py index dce60feaa..1c1cd5149 100644 --- a/pythainlp/soundex/udom83.py +++ b/pythainlp/soundex/udom83.py @@ -37,7 +37,7 @@ def udom83(text: str) -> str: :return: Udom83 soundex """ - if not text: + if not text or not isinstance(text, str): return "" text = _RE_1.sub("ัน\\1", text) diff --git a/pythainlp/tokenize/__init__.py b/pythainlp/tokenize/__init__.py index 4c33ea0fb..1709c9c3f 100644 --- a/pythainlp/tokenize/__init__.py +++ b/pythainlp/tokenize/__init__.py @@ -87,22 +87,22 @@ def dict_word_tokenize( text: str, custom_dict: Trie = DEFAULT_DICT_TRIE, engine: str = "newmm", - whitespaces: bool = True, + keep_whitespace: bool = True, ) -> List[str]: """ - :meth: Deprecated. Please use `word_tokenize()` with `custom_dict` argument instead. + :meth: DEPRECATED: Please use `word_tokenize()` with a `custom_dict` argument instead :param str text: text to be tokenized :param dict custom_dict: a dictionary trie, or an iterable of words, or a string of dictionary path :param str engine: choose between different options of engine to token (newmm [default], mm, longest, and deepcut) - :param bool whitespaces: True to output no whitespace, a common mark of end of phrase in Thai + :param bool keep_whitespace: True to keep whitespaces, a common mark for end of phrase in Thai :return: list of words """ print( - "Deprecated. Use `word_tokenize()` with `custom_dict` argument instead.", + "Deprecated. Use word_tokenize() with a custom_dict argument instead.", file=sys.stderr, ) return word_tokenize( - text=text, custom_dict=custom_dict, engine=engine, keep_whitespace=whitespaces + text=text, custom_dict=custom_dict, engine=engine, keep_whitespace=keep_whitespace ) @@ -116,7 +116,7 @@ def sent_tokenize(text: str, engine: str = "whitespace+newline") -> List[str]: :return: a list of text, split by whitespace or new line. """ - if not text: + if not text or not isinstance(text, str): return [] sentences = [] @@ -138,7 +138,7 @@ def subword_tokenize(text: str, engine: str = "tcc") -> List[str]: * etcc - Enhanced Thai Character Cluster (Inrut et al. 2001) [In development] :return: a list of tokenized strings. """ - if not text: + if not text or not isinstance(text, str): return [] if engine == "etcc": @@ -156,7 +156,7 @@ def syllable_tokenize(text: str) -> List[str]: :return: returns list of strings of syllables """ - if not text: + if not text or not isinstance(text, str): return [] tokens = [] diff --git a/pythainlp/tokenize/deepcut.py b/pythainlp/tokenize/deepcut.py index f3ec1efb4..39ae78209 100644 --- a/pythainlp/tokenize/deepcut.py +++ b/pythainlp/tokenize/deepcut.py @@ -11,7 +11,7 @@ def segment(text: str, custom_dict: Union[Trie, List[str], str] = None) -> List[str]: - if not text: + if not text or not isinstance(text, str): return [] if custom_dict: diff --git a/pythainlp/tokenize/etcc.py b/pythainlp/tokenize/etcc.py index 727e903ec..efb0d5c45 100644 --- a/pythainlp/tokenize/etcc.py +++ b/pythainlp/tokenize/etcc.py @@ -29,7 +29,7 @@ def segment(text: str) -> str: :return: etcc """ - if not text: + if not text or not isinstance(text, str): return "" if re.search(r"[เแ]" + _C + r"[" + "".join(_UV) + r"]" + r"\w", text): diff --git a/pythainlp/tokenize/longest.py b/pythainlp/tokenize/longest.py index db0bf889c..d248213e4 100644 --- a/pythainlp/tokenize/longest.py +++ b/pythainlp/tokenize/longest.py @@ -140,7 +140,7 @@ def tokenize(self, text: str) -> List[str]: def segment(text: str, custom_dict: Trie = None) -> List[str]: """ตัดคำภาษาไทยด้วยวิธี longest matching""" - if not text: + if not text or not isinstance(text, str): return [] if not custom_dict: diff --git a/pythainlp/tokenize/multi_cut.py b/pythainlp/tokenize/multi_cut.py index 5d1238336..20fddd7bd 100644 --- a/pythainlp/tokenize/multi_cut.py +++ b/pythainlp/tokenize/multi_cut.py @@ -122,7 +122,7 @@ def segment(text: str, custom_dict: Trie = None) -> List[str]: """ ใช้ในการหา list ที่สามารถตัดคำได้ทั้งหมด """ - if not text: + if not text or not isinstance(text, str): return [] return list(_multicut(text, custom_dict=custom_dict)) @@ -130,9 +130,12 @@ def segment(text: str, custom_dict: Trie = None) -> List[str]: def find_all_segment(text: str, custom_dict: Trie = None) -> List[str]: """ - ใช้ในการหา list ที่สามารถตัดคำได้ทั้งหมด + Get all possible segment variations + + :param str text: input string to be tokenized + :return: returns list of segment variations """ - if not text: + if not text or not isinstance(text, str): return [] ww = list(_multicut(text, custom_dict=custom_dict)) diff --git a/pythainlp/tokenize/newmm.py b/pythainlp/tokenize/newmm.py index b7437a631..cd246fb8f 100644 --- a/pythainlp/tokenize/newmm.py +++ b/pythainlp/tokenize/newmm.py @@ -93,7 +93,7 @@ def _onecut(text: str, custom_dict: Trie): def segment(text: str, custom_dict: Trie = None) -> List[str]: - if not text: + if not text or not isinstance(text, str): return [] if not custom_dict: diff --git a/pythainlp/tokenize/pyicu.py b/pythainlp/tokenize/pyicu.py index 869965e2c..9d1d37a6d 100644 --- a/pythainlp/tokenize/pyicu.py +++ b/pythainlp/tokenize/pyicu.py @@ -19,8 +19,9 @@ def _gen_words(text: str) -> str: def segment(text: str) -> List[str]: - if not text: + if not text or not isinstance(text, str): return [] text = re.sub("([^\u0E00-\u0E7F\n ]+)", " \\1 ", text) + return list(_gen_words(text)) diff --git a/pythainlp/tokenize/tcc.py b/pythainlp/tokenize/tcc.py index 47547ad4e..8949a04a8 100644 --- a/pythainlp/tokenize/tcc.py +++ b/pythainlp/tokenize/tcc.py @@ -49,23 +49,23 @@ PAT_TCC = re.compile("|".join(RE_TCC)) -def tcc(w: str) -> str: - if not w: +def tcc(text: str) -> str: + if not text or not isinstance(text, str): return "" p = 0 - while p < len(w): - m = PAT_TCC.match(w[p:]) + while p < len(text): + m = PAT_TCC.match(text[p:]) if m: n = m.span()[1] else: n = 1 - yield w[p : p + n] + yield text[p : p + n] p += n def tcc_pos(text: str) -> Set[int]: - if not text: + if not text or not isinstance(text, str): return set() p_set = set() diff --git a/pythainlp/transliterate/__init__.py b/pythainlp/transliterate/__init__.py index 735650345..f18af4afd 100644 --- a/pythainlp/transliterate/__init__.py +++ b/pythainlp/transliterate/__init__.py @@ -12,7 +12,7 @@ def romanize(text: str, engine: str = "royin") -> str: :return: A string of Thai words rendered in the Latin alphabet. """ - if not isinstance(text, str) or not text: + if not text or not isinstance(text, str): return "" if engine == "thai2rom": @@ -31,7 +31,7 @@ def transliterate(text: str, engine: str = "ipa") -> str: :return: A string of Internaitonal Phonetic Alphabets indicating how the text should be pronounced. """ - if not isinstance(text, str) or not text: + if not text or not isinstance(text, str): return "" if engine == "icu" or engine == "pyicu": diff --git a/pythainlp/util/digitconv.py b/pythainlp/util/digitconv.py index 3982168d6..75717431a 100644 --- a/pythainlp/util/digitconv.py +++ b/pythainlp/util/digitconv.py @@ -61,7 +61,7 @@ def thai_digit_to_arabic_digit(text: str) -> str: :param str text: Text with Thai digits such as '๑', '๒', '๓' :return: Text with Thai digits being converted to Arabic digits such as '1', '2', '3' """ - if not text: + if not text or not isinstance(text, str): return "" newtext = [] @@ -79,7 +79,7 @@ def arabic_digit_to_thai_digit(text: str) -> str: :param str text: Text with Arabic digits such as '1', '2', '3' :return: Text with Arabic digits being converted to Thai digits such as '๑', '๒', '๓' """ - if not text: + if not text or not isinstance(text, str): return "" newtext = [] @@ -97,7 +97,7 @@ def digit_to_text(text: str) -> str: :param str text: Text with digits such as '1', '2', '๓', '๔' :return: Text with digits being spelled out in Thai """ - if not text: + if not text or not isinstance(text, str): return "" newtext = [] diff --git a/pythainlp/util/thai.py b/pythainlp/util/thai.py index 70e5a9d15..53a8f4676 100644 --- a/pythainlp/util/thai.py +++ b/pythainlp/util/thai.py @@ -44,7 +44,7 @@ def countthai(text: str, ignore_chars: str = _DEFAULT_IGNORE_CHARS) -> float: :param str text: input text :return: float, proportion of characters in the text that is Thai character """ - if not text: + if not text or not isinstance(text, str): return 0 if not ignore_chars: diff --git a/tests/__init__.py b/tests/__init__.py index d448e23cb..11aa934fe 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -311,13 +311,13 @@ def test_word_tokenize(self): ["ฉัน", "รัก", "ภาษาไทย", "เพราะ", "ฉัน", "เป็น", "คนไทย"], ) - self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="newmm")) - self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="mm")) - self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="longest")) - self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="ulmfit")) - self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="icu")) - self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="deepcut")) - self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์", engine="XX")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์MBK39", engine="newmm")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์MBK39", engine="mm")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์MBK39", engine="longest")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์MBK39", engine="ulmfit")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์MBK39", engine="icu")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์MBK39", engine="deepcut")) + self.assertIsNotNone(word_tokenize("หมอนทองตากลมหูว์MBK39", engine="XX")) self.assertIsNotNone(dict_trie(())) self.assertIsNotNone(dict_trie(("ทดสอบ", "สร้าง", "Trie"))) @@ -334,8 +334,10 @@ def test_word_tokenize(self): ) def test_Tokenizer(self): - t_test = Tokenizer() + t_test = Tokenizer(FROZEN_DICT_TRIE) self.assertEqual(t_test.word_tokenize(""), []) + t_test.set_tokenize_engine("longest") + self.assertEqual(t_test.word_tokenize(None), []) def test_word_tokenize_icu(self): self.assertEqual(tokenize_pyicu.segment(None), []) @@ -369,7 +371,10 @@ def test_word_tokenize_mm(self): ["ฉัน", "รัก", "ภาษาไทย", "เพราะ", "ฉัน", "เป็น", "คนไทย"], ) + self.assertIsNone(multi_cut.mmcut("ทดสอบ")) + self.assertIsNotNone(multi_cut.find_all_segment("รถไฟฟ้ากรุงเทพมหานครBTS")) + self.assertEqual(multi_cut.find_all_segment(None), []) def test_word_tokenize_newmm(self): self.assertEqual(newmm.segment(None), []) From 56ed57505283c67318101214eebac8484cd2c9b3 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 23:30:32 +0200 Subject: [PATCH 27/30] - fix test case of "mm" tokenize engine - remove old docs --- docs/archive/pythainlp-1-3-thai.md | 215 --------- docs/archive/pythainlp-1-4-eng.md | 311 ------------- docs/archive/pythainlp-1-4-eng.pdf | Bin 93022 -> 0 bytes docs/archive/pythainlp-1-4-thai.md | 375 --------------- docs/archive/pythainlp-1-4-thai.pdf | Bin 126942 -> 0 bytes docs/archive/pythainlp-1-5-eng.md | 471 ------------------- docs/archive/pythainlp-1-5-thai.md | 609 ------------------------- docs/archive/pythainlp-1-6-eng.md | 502 -------------------- docs/archive/pythainlp-1-6-thai.md | 683 ---------------------------- docs/archive/pythainlp-1-7.md | 1 - docs/archive/pythainlp-dev-thai.md | 599 ------------------------ tests/__init__.py | 2 +- 12 files changed, 1 insertion(+), 3767 deletions(-) delete mode 100644 docs/archive/pythainlp-1-3-thai.md delete mode 100644 docs/archive/pythainlp-1-4-eng.md delete mode 100644 docs/archive/pythainlp-1-4-eng.pdf delete mode 100644 docs/archive/pythainlp-1-4-thai.md delete mode 100644 docs/archive/pythainlp-1-4-thai.pdf delete mode 100644 docs/archive/pythainlp-1-5-eng.md delete mode 100644 docs/archive/pythainlp-1-5-thai.md delete mode 100644 docs/archive/pythainlp-1-6-eng.md delete mode 100644 docs/archive/pythainlp-1-6-thai.md delete mode 100644 docs/archive/pythainlp-1-7.md delete mode 100644 docs/archive/pythainlp-dev-thai.md diff --git a/docs/archive/pythainlp-1-3-thai.md b/docs/archive/pythainlp-1-3-thai.md deleted file mode 100644 index cd694c64f..000000000 --- a/docs/archive/pythainlp-1-3-thai.md +++ /dev/null @@ -1,215 +0,0 @@ -# คู่มือการใช้งาน PyThaiNLP 1.3 - -รองรับเฉพาะ Python 3.4 ขึ้นไปเท่านั้น - -ติดตั้งใช้คำสั่ง - -``` -pip install pythainlp -``` - -**วิธีติดตั้งสำหรับ Windows** - -ให้ทำการติดตั้ง pyicu โดยใช้ไฟล์ .whl จาก [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu](http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu) - -หากใช้ python 3.5 64 bit ให้โหลด PyICU‑1.9.7‑cp35‑cp35m‑win_amd64.whl แล้วเปิด cmd ใช้คำสั่ง - -``` -pip install PyICU‑1.9.7‑cp35‑cp35m‑win_amd64.whl -``` - -แล้วจึงใช้ - -``` -pip install pythainlp -``` - -**ติดตั้งบน Mac** - -```sh -$ brew install icu4c --force -$ brew link --force icu4c -$ CFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib pip install pythainlp -``` - -ข้อมูลเพิ่มเติม [คลิกที่นี้](https://medium.com/data-science-cafe/install-polyglot-on-mac-3c90445abc1f#.rdfrorxjx) - -## API - -### ตัดคำไทย - -สำหรับการตัดคำไทยนั้น ใน PyThaiNLP 1.3 ได้ทำเปลี่ยน API ใหม่ ยกเลิก pythainlp.segment ให้ทำการเปลี่ยนไปใช้ API ชุดใหม่ - -```python -from pythainlp.tokenize import word_tokenize -word_tokenize(text,engine) -``` -text คือ ข้อความในรูปแบบสตริง str เท่านั้น - -engine คือ ระบบตัดคำไทย ปัจจุบันนี้ PyThaiNLP ได้พัฒนามี 3 engine ให้ใช้งานกันดังนี้ - -1. icu - engine ตัวดั้งเดิมของ PyThaiNLP (ความแม่นยำต่ำ) และเป็นค่าเริ่มต้น -2. dict - เป็นการตัดคำโดยใช้พจานุกรมจาก thaiword.txt ใน corpus (ความแม่นยำปานกลาง) -3. mm - ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย - -คืนค่าเป็น ''list'' เช่น ['แมว','กิน'] - -**ตัวอย่าง** - -```python -from pythainlp.tokenize import word_tokenize -text='ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -a=word_tokenize(text,engine='icu') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอ', 'เค', 'บ่', 'พวก', 'เรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้าน', 'เกิด'] -b=word_tokenize(text,engine='dict') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -c=word_tokenize(text,engine='mm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -``` - -### Postaggers ภาษาไทย - -ตั้งแต่ PyThaiNLP 1.3 เป็นต้นไป ได้ทำการยกเลิก pythainlp.postaggers เดิม เปลี่ยนไปใช้ API ชุดใหม่ดังนี้ - -```python -from pythainlp.tag import pos_tag -pos_tag(list,engine='old') -``` - -list คือ list ที่เก็บข้อความหลังผ่านการตัดคำแล้ว - -engine คือ ชุดเครื่องมือในการ postaggers มี 2 ตัวดังนี้ - -1. old เป็น UnigramTagger (ค่าเริ่มต้น) -2. artagger เป็น RDR POS Tagger ละเอียดยิ่งกว่าเดิม รองรับเฉพาะ Python 3 เท่านั้น - -### แปลงข้อความเป็น Latin - -```python -from pythainlp.romanization import romanization -romanization(str) -``` -**ตัวอย่าง** - -```python -from pythainlp.romanization import romanization -romanization("แมว") # 'mæw' -``` - -### เช็คคำผิด * - -*ความสามารถนี้รองรับเฉพาะ Python 3 - -ก่อนใช้งานความสามารถนี้ ให้ทำการติดตั้ง hunspell และ hunspell-th ก่อน - -**วิธีติดตั้ง** สำหรับบน Debian , Ubuntu - -``` -sudo apt-get install hunspell hunspell-th -``` - -บน Mac OS ติดตั้งตามนี้ [http://pankdm.github.io/hunspell.html](http://pankdm.github.io/hunspell.html) - -ให้ใช้ pythainlp.spell ตามตัวอย่างนี้ - -```python -from pythainlp.spell import * -a=spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม', 'เสียเหลี่ยม', 'เหลี่ยม'] -``` -### pythainlp.number - -```python -from pythainlp.number import * -``` -จัดการกับตัวเลข โดยมีดังนี้ - -- nttn(str) - เป็นการแปลงเลขไทยสู่เลข -- nttt(str) - เลขไทยสู่ข้อความ -- ntnt(str) - เลขสู่เลขไทย -- ntt(str) - เลขสู่ข้อความ -- ttn(str) - ข้อความสู่เลข -- numtowords(float) - อ่านจำนวนตัวเลขภาษาไทย (บาท) รับค่าเป็น ''float'' คืนค่าเป็น 'str' - -### เรียงลำดับข้อมูลภาษาไทยใน List - -```python -from pythainlp.collation import collation -print(collation(['ไก่','ไข่','ก','ฮา'])) # ['ก', 'ไก่', 'ไข่', 'ฮา'] -``` - -รับ list คืนค่า list - -### รับเวลาปัจจุบันเป็นภาษาไทย - -```python -from pythainlp.date import now -now() # '30 พฤษภาคม 2560 18:45:24' -``` -### WordNet ภาษาไทย - -เรียกใช้งาน - -```python -from pythainlp.corpus import wordnet -``` - -**รับ Synset** - -```python -wordnet.getSynset(คำ) -``` - -เป็นคำสั่ง ใช้รับ Synset รับค่า str ส่งออกเป็น tuple ('Synset', 'synset li') - -**รับคำจาก id** - -```python -wordnet.getWords() -``` - -เป็นคำสั่ง ใช้รับคำจาก ID รับค่า str ส่งออกเป็น tuple ('Word', 'synsetid li') - -### stopword ภาษาไทย - -```python -from pythainlp.corpus import stopwords -stopwords = stopwords.words('thai') -``` - -### หาคำที่มีจำนวนการใช้งานมากที่สุด - -```python -from pythainlp.rank import rank -rank(list) -``` - -คืนค่าออกมาเป็น dict - -**ตัวอย่างการใช้งาน** - -```python ->>> rank(['แมง','แมง','คน']) -Counter({'แมง': 2, 'คน': 1}) -``` - -### แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา - -```python -from pythainlp.change import * -``` - -มีคำสั่งดังนี้ - -- texttothai(str) แปลงแป้นตัวอักษรภาษาอังกฤษเป็นภาษาไทย -- texttoeng(str) แปลงแป้นตัวอักษรภาษาไทยเป็นภาษาอังกฤษ - -คืนค่าออกมาเป็น str - -### Sentiment analysis ภาษาไทย - -ใช้ข้อมูลจาก https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/ - -```python -from pythainlp.sentiment import sentiment -sentiment(str) -``` - -รับค่า str ส่งออกเป็น pos , neg หรือ neutral \ No newline at end of file diff --git a/docs/archive/pythainlp-1-4-eng.md b/docs/archive/pythainlp-1-4-eng.md deleted file mode 100644 index 6955dc8e6..000000000 --- a/docs/archive/pythainlp-1-4-eng.md +++ /dev/null @@ -1,311 +0,0 @@ -# User manual PyThaiNLP 1.4 - -[TOC] - -## API - -### Thai segment - -```python -from pythainlp.tokenize import word_tokenize -word_tokenize(text,engine) -``` -**text** refers to an input text string in Thai. - -**engine** refers to a thai word segmentation system; There are 6 systems to choose from. - -1. icu (default) - pyicu has a very poor performance. -2. dict - dictionary-based tokenizer. It returns False if the message can not be wrapped. -3. mm - Maximum Matching algorithm for Thai word segmentation. -4. newmm - Maximum Matching algorithm for Thai word segmatation. Developed by Korakot Chaovavanich (https://www.facebook.com/groups/408004796247683/permalink/431283740586455/) -5. pylexto - LexTo. -6. deepcut - Deep Learning based Thai word segmentation (https://github.com/rkcosmos/deepcut) - - -Output: ''list'' ex. ['แมว','กิน'] - -**Example** - - -```python -from pythainlp.tokenize import word_tokenize -text='ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -a=word_tokenize(text,engine='icu') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอ', 'เค', 'บ่', 'พวก', 'เรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้าน', 'เกิด'] -b=word_tokenize(text,engine='dict') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -c=word_tokenize(text,engine='mm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -d=word_tokenize(text,engine='pylexto') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -e=word_tokenize(text,engine='newmm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -``` - -### Thai postaggers - -```python -from pythainlp.tag import pos_tag -pos_tag(list,engine='old') -``` - -engine - -1. old is the UnigramTagger (default) -2. artagger is the RDR POS Tagger. - -### Thai romanization - -```python -from pythainlp.romanization import romanization -romanization(str,engine='pyicu') -``` -There are 2 engines - -- pyicu -- royin - -data : - -input ''str'' - -returns ''str'' - -**Example** - -```python -from pythainlp.romanization import romanization -romanization("แมว") # 'mæw' -``` - -### Spell Check - -Before using this module, please install hunspell and hunspell-th. - -```python -from pythainlp.spell import * -a=spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม', 'เสียเหลี่ยม', 'เหลี่ยม'] -``` -### pythainlp.number - -```python -from pythainlp.number import * -``` -- nttn(str) - convert thai numbers to numbers. -- nttt(str) - Thai Numbers to text. -- ntnt(str) - numbers to thai numbers. -- ntt(str) - numbers to text. -- ttn(str) - text to numbers. -- numtowords(float) - Read thai numbers (Baht) input ''float'' returns 'str' - -### Sort Thai text into List - -```python -from pythainlp.collation import collation -print(collation(['ไก่','ไข่','ก','ฮา'])) # ['ก', 'ไก่', 'ไข่', 'ฮา'] -``` - -input list - -returns list - -### Get current time in Thai - -```python -from pythainlp.date import now -now() # '30 พฤษภาคม 2560 18:45:24' -``` -### Thai WordNet - -import - -```python -from pythainlp.corpus import wordnet -``` - -**Use** - -It's like nltk. - -- wordnet.synsets(word) -- wordnet.synset(name_synsets) -- wordnet.all_lemma_names(pos=None, lang="tha") -- wordnet.all_synsets(pos=None) -- wordnet.langs() -- wordnet.lemmas(word,pos=None,lang="tha") -- wordnet.lemma(name_synsets) -- wordnet.lemma_from_key(key) -- wordnet.path_similarity(synsets1,synsets2) -- wordnet.lch_similarity(synsets1,synsets2) -- wordnet.wup_similarity(synsets1,synsets2) -- wordnet.morphy(form, pos=None) -- wordnet.custom_lemmas(tab_file, lang) - -**Example** - -```python ->>> from pythainlp.corpus import wordnet ->>> print(wordnet.synsets('หนึ่ง')) -[Synset('one.s.05'), Synset('one.s.04'), Synset('one.s.01'), Synset('one.n.01')] ->>> print(wordnet.synsets('หนึ่ง')[0].lemma_names('tha')) -[] ->>> print(wordnet.synset('one.s.05')) -Synset('one.s.05') ->>> print(wordnet.synset('spy.n.01').lemmas()) -[Lemma('spy.n.01.spy'), Lemma('spy.n.01.undercover_agent')] ->>> print(wordnet.synset('spy.n.01').lemma_names('tha')) -['สปาย', 'สายลับ'] -``` - -### Find the most frequent words. - -```python -from pythainlp.rank import rank -rank(list) -``` - -returns dict - -**Example** - -```python ->>> rank(['แมง','แมง','คน']) -Counter({'แมง': 2, 'คน': 1}) -``` - -### Incorrect input language correction - -```python -from pythainlp.change import * -``` - -- texttothai(str) - eng to thai. -- texttoeng(str) - thai to eng. - -### Thai Character Clusters (TCC) - -TCC : Mr.Jakkrit TeCho - -grammar : Wittawat Jitkrittum (https://github.com/wittawatj/jtcc/blob/master/TCC.g) - -Code : Korakot Chaovavanich - -**Example** - -```python ->>> from pythainlp.tokenize import tcc ->>> tcc.tcc('ประเทศไทย') -'ป/ระ/เท/ศ/ไท/ย' -``` - -### Enhanced Thai Character Cluster (ETCC) - -**Example** - -```python ->>> from pythainlp.tokenize import etcc ->>> etcc.etcc('คืนความสุข') -'/คืน/ความสุข' -``` - -### Thai Soundex - -credit Korakot Chaovavanich (from https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8) - -- LK82 -- Udom83 - -**Example** - -```python ->>> from pythainlp.soundex import LK82 ->>> print(LK82('รถ')) -ร3000 ->>> print(LK82('รด')) -ร3000 ->>> print(LK82('จัน')) -จ4000 ->>> print(LK82('จันทร์')) -จ4000 ->>> print(Udom83('รถ')) -ร800000 -``` - -### Thai meta sound - -``` -Snae & Brückner. (2009). Novel Phonetic Name Matching Algorithm with a Statistical Ontology for Analysing Names Given in Accordance with Thai Astrology. Retrieved from https://pdfs.semanticscholar.org/3983/963e87ddc6dfdbb291099aa3927a0e3e4ea6.pdf -``` - -**Example** - -```python ->>> from pythainlp.MetaSound import * ->>> MetaSound('คน') -'15' -``` - -### Thai sentiment analysis - -using data from [https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/](https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/) - -```python -from pythainlp.sentiment import sentiment -sentiment(str) -``` - -input str returns pos , neg or neutral - -### Util - -using - -```python -from pythainlp.util import * -``` - -#### ngrams - -for building ngrams - -```python -ngrams(token,num) -``` - -- token - list -- num - ngrams - -### Corpus - -#### Thai stopword - -```python -from pythainlp.corpus import stopwords -stopwords = stopwords.words('thai') -``` - -#### Thai country name - -```python -from pythainlp.corpus import country -country.get_data() -``` - -#### Tone in Thai - -```python -from pythainlp.corpus import tone -tone.get_data() -``` - -#### Consonant in thai - -```python -from pythainlp.corpus import alphabet -alphabet.get_data() -``` - -#### Word list in thai - -```python -from pythainlp.corpus.thaiword import get_data # old data -get_data() -from pythainlp.corpus.newthaiword import get_data # new data -get_data() -``` diff --git a/docs/archive/pythainlp-1-4-eng.pdf b/docs/archive/pythainlp-1-4-eng.pdf deleted file mode 100644 index 9af1abbc08c1face0ba948f0c304b85187cd5d92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93022 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 GT*wp=wOz>OU{eVnv)Eb#SEq0Do+ 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
  • ocw$$D3p>Bk`SjasWrq@}n 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 x58OKiF8X7DyPTkfehesTfGR;d0MNod@B เพราะโลกขับเคลื่อนต่อไปด้วยการแบ่งปัน - -รองรับเฉพาะ Python 3.4 ขึ้นไปเท่านั้น - -ติดตั้งใช้คำสั่ง - -``` -pip install pythainlp -``` - -**วิธีติดตั้งสำหรับ Windows** - -ให้ทำการติดตั้ง pyicu โดยใช้ไฟล์ .whl จาก [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu](http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu) - -หากใช้ python 3.5 64 bit ให้โหลด PyICU‑1.9.7‑cp35‑cp35m‑win_amd64.whl แล้วเปิด cmd ใช้คำสั่ง - -``` -pip install PyICU‑1.9.7‑cp35‑cp35m‑win_amd64.whl -``` - -แล้วจึงใช้ - -``` -pip install pythainlp -``` - -**ติดตั้งบน Mac** - -```sh -$ brew install icu4c --force -$ brew link --force icu4c -$ CFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib pip install pythainlp -``` - -ข้อมูลเพิ่มเติม [คลิกที่นี้](https://medium.com/data-science-cafe/install-polyglot-on-mac-3c90445abc1f#.rdfrorxjx) - -## API - -### ตัดคำไทย - -สำหรับการตัดคำไทยนั้น ใช้ API ดังต่อไปนี้ - -```python -from pythainlp.tokenize import word_tokenize -word_tokenize(text,engine) -``` -text คือ ข้อความในรูปแบบสตริง str เท่านั้น - -engine คือ ระบบตัดคำไทย ปัจจุบันนี้ PyThaiNLP ได้พัฒนามี 6 engine ให้ใช้งานกันดังนี้ - -1. icu - engine ตัวดั้งเดิมของ PyThaiNLP (ความแม่นยำต่ำ) และเป็นค่าเริ่มต้น -2. dict - เป็นการตัดคำโดยใช้พจานุกรมจาก thaiword.txt ใน corpus (ความแม่นยำปานกลาง) จะคืนค่า False หากข้อความนั้นไม่สามารถตัดคำได้ -3. mm - ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย - API ชุดเก่า -4. newmm - ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย โค้ดชุดใหม่ โดยใช้โค้ดคุณ Korakot Chaovavanich จาก https://www.facebook.com/groups/408004796247683/permalink/431283740586455/ มาพัฒนาต่อ -5. pylexto ใช้ LexTo ในการตัดคำ -6. deepcut ใช้ deepcut จาก https://github.com/rkcosmos/deepcut ในการตัดคำภาษาไทย - -คืนค่าเป็น ''list'' เช่น ['แมว','กิน'] - -**ตัวอย่าง** - -```python -from pythainlp.tokenize import word_tokenize -text='ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -a=word_tokenize(text,engine='icu') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอ', 'เค', 'บ่', 'พวก', 'เรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้าน', 'เกิด'] -b=word_tokenize(text,engine='dict') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -c=word_tokenize(text,engine='mm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -d=word_tokenize(text,engine='pylexto') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -e=word_tokenize(text,engine='newmm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -``` - -### Postaggers ภาษาไทย - -```python -from pythainlp.tag import pos_tag -pos_tag(list,engine='old') -``` - -list คือ list ที่เก็บข้อความหลังผ่านการตัดคำแล้ว - -engine คือ ชุดเครื่องมือในการ postaggers มี 2 ตัวดังนี้ - -1. old เป็น UnigramTagger (ค่าเริ่มต้น) -2. artagger เป็น RDR POS Tagger ละเอียดยิ่งกว่าเดิม รองรับเฉพาะ Python 3 เท่านั้น - -### แปลงข้อความเป็น Latin - -```python -from pythainlp.romanization import romanization -romanization(str,engine='pyicu') -``` -มี 2 engine ดังนี้ - -- pyicu ส่งค่า Latin -- royin ใช้หลักเกณฑ์การถอดอักษรไทยเป็นอักษรโรมัน ฉบับราชบัณฑิตยสถาน (**หากมีข้อผิดพลาด ให้ใช้คำอ่าน เนื่องจากตัว royin ไม่มีตัวแปลงคำเป็นคำอ่าน**) - -data : - -รับค่า ''str'' ข้อความ - -คืนค่าเป็น ''str'' ข้อความ - -**ตัวอย่าง** - -```python -from pythainlp.romanization import romanization -romanization("แมว") # 'mæw' -``` - -### เช็คคำผิด - -ก่อนใช้งานความสามารถนี้ ให้ทำการติดตั้ง hunspell และ hunspell-th ก่อน - -**วิธีติดตั้ง** สำหรับบน Debian , Ubuntu - -``` -sudo apt-get install hunspell hunspell-th -``` - -บน Mac OS ติดตั้งตามนี้ [http://pankdm.github.io/hunspell.html](http://pankdm.github.io/hunspell.html) - -ให้ใช้ pythainlp.spell ตามตัวอย่างนี้ - -```python -from pythainlp.spell import * -a=spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม', 'เสียเหลี่ยม', 'เหลี่ยม'] -``` -### pythainlp.number - -```python -from pythainlp.number import * -``` -จัดการกับตัวเลข โดยมีดังนี้ - -- nttn(str) - เป็นการแปลงเลขไทยสู่เลข -- nttt(str) - เลขไทยสู่ข้อความ -- ntnt(str) - เลขสู่เลขไทย -- ntt(str) - เลขสู่ข้อความ -- ttn(str) - ข้อความสู่เลข -- numtowords(float) - อ่านจำนวนตัวเลขภาษาไทย (บาท) รับค่าเป็น ''float'' คืนค่าเป็น 'str' - -### เรียงลำดับข้อมูลภาษาไทยใน List - -```python -from pythainlp.collation import collation -print(collation(['ไก่','ไข่','ก','ฮา'])) # ['ก', 'ไก่', 'ไข่', 'ฮา'] -``` - -รับ list คืนค่า list - -### รับเวลาปัจจุบันเป็นภาษาไทย - -```python -from pythainlp.date import now -now() # '30 พฤษภาคม 2560 18:45:24' -``` -### WordNet ภาษาไทย - -เรียกใช้งาน - -```python -from pythainlp.corpus import wordnet -``` - -**การใช้งาน** - -API เหมือนกับ NLTK โดยรองรับ API ดังนี้ - -- wordnet.synsets(word) -- wordnet.synset(name_synsets) -- wordnet.all_lemma_names(pos=None, lang="tha") -- wordnet.all_synsets(pos=None) -- wordnet.langs() -- wordnet.lemmas(word,pos=None,lang="tha") -- wordnet.lemma(name_synsets) -- wordnet.lemma_from_key(key) -- wordnet.path_similarity(synsets1,synsets2) -- wordnet.lch_similarity(synsets1,synsets2) -- wordnet.wup_similarity(synsets1,synsets2) -- wordnet.morphy(form, pos=None) -- wordnet.custom_lemmas(tab_file, lang) - -**ตัวอย่าง** - -```python ->>> from pythainlp.corpus import wordnet ->>> print(wordnet.synsets('หนึ่ง')) -[Synset('one.s.05'), Synset('one.s.04'), Synset('one.s.01'), Synset('one.n.01')] ->>> print(wordnet.synsets('หนึ่ง')[0].lemma_names('tha')) -[] ->>> print(wordnet.synset('one.s.05')) -Synset('one.s.05') ->>> print(wordnet.synset('spy.n.01').lemmas()) -[Lemma('spy.n.01.spy'), Lemma('spy.n.01.undercover_agent')] ->>> print(wordnet.synset('spy.n.01').lemma_names('tha')) -['สปาย', 'สายลับ'] -``` - -### หาคำที่มีจำนวนการใช้งานมากที่สุด - -```python -from pythainlp.rank import rank -rank(list) -``` - -คืนค่าออกมาเป็น dict - -**ตัวอย่างการใช้งาน** - -```python ->>> rank(['แมง','แมง','คน']) -Counter({'แมง': 2, 'คน': 1}) -``` - -### แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา - -```python -from pythainlp.change import * -``` - -มีคำสั่งดังนี้ - -- texttothai(str) แปลงแป้นตัวอักษรภาษาอังกฤษเป็นภาษาไทย -- texttoeng(str) แปลงแป้นตัวอักษรภาษาไทยเป็นภาษาอังกฤษ - -คืนค่าออกมาเป็น str - -### Thai Character Clusters (TCC) - -PyThaiNLP 1.4 รองรับ Thai Character Clusters (TCC) โดยจะแบ่งกลุ่มด้วย / - -**เดติด** - -TCC : Mr.Jakkrit TeCho - -grammar : คุณ Wittawat Jitkrittum (https://github.com/wittawatj/jtcc/blob/master/TCC.g) - -โค้ด : คุณ Korakot Chaovavanich - -**การใช้งาน** - -```python ->>> from pythainlp.tokenize import tcc ->>> tcc.tcc('ประเทศไทย') -'ป/ระ/เท/ศ/ไท/ย' -``` - -### Enhanced Thai Character Cluster (ETCC) - -นอกจาก TCC แล้ว PyThaiNLP 1.4 ยังรองรับ Enhanced Thai Character Cluster (ETCC) โดยแบ่งกลุ่มด้วย / - -**การใช้งาน** - -```python ->>> from pythainlp.tokenize import etcc ->>> etcc.etcc('คืนความสุข') -'/คืน/ความสุข' -``` - -### Thai Soundex ภาษาไทย - -เดติด คุณ Korakot Chaovavanich (จาก https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8) - -กฎที่รองรับในเวชั่น 1.4 - -- กฎการเข้ารหัสซาวน์เด็กซ์ของ วิชิตหล่อจีระชุณห์กุล และ เจริญ คุวินทร์พันธุ์ - LK82 -- กฎการเข้ารหัสซาวน์เด็กซ์ของ วรรณี อุดมพาณิชย์ - Udom83 - -**การใช้งาน** - -```python ->>> from pythainlp.soundex import LK82 ->>> print(LK82('รถ')) -ร3000 ->>> print(LK82('รด')) -ร3000 ->>> print(LK82('จัน')) -จ4000 ->>> print(LK82('จันทร์')) -จ4000 ->>> print(Udom83('รถ')) -ร800000 -``` - -### Meta Sound ภาษาไทย - -``` -Snae & Brückner. (2009). Novel Phonetic Name Matching Algorithm with a Statistical Ontology for Analysing Names Given in Accordance with Thai Astrology. Retrieved from https://pdfs.semanticscholar.org/3983/963e87ddc6dfdbb291099aa3927a0e3e4ea6.pdf -``` - -**การใช้งาน** - -```python ->>> from pythainlp.MetaSound import * ->>> MetaSound('คน') -'15' -``` - -### Sentiment analysis ภาษาไทย - -ใช้ข้อมูลจาก [https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/](https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/) - -```python -from pythainlp.sentiment import sentiment -sentiment(str) -``` - -รับค่า str ส่งออกเป็น pos , neg หรือ neutral - -### Util - -การใช้งาน - -```python -from pythainlp.util import * -``` - -#### ngrams - -สำหรับสร้าง ngrams - -```python -ngrams(token,num) -``` - -- token คือ list -- num คือ จำนวน ngrams - -### Corpus - -#### stopword ภาษาไทย - -```python -from pythainlp.corpus import stopwords -stopwords = stopwords.words('thai') -``` - -#### ชื่อประเทศ ภาษาไทย - -```python -from pythainlp.corpus import country -country.get_data() -``` - -#### ตัววรรณยุกต์ในภาษาไทย - -```python -from pythainlp.corpus import tone -tone.get_data() -``` - -#### ตัวพยัญชนะในภาษาไทย - -```python -from pythainlp.corpus import alphabet -alphabet.get_data() -``` - -#### รายการคำในภาษาไทย - -```python -from pythainlp.corpus.thaiword import get_data # ข้อมูลเก่า -get_data() -from pythainlp.corpus.newthaiword import get_data # ข้อมูลใหม่ -get_data() -``` - -เขียนโดย นาย วรรณพงษ์ ภัททิยไพบูลย์ \ No newline at end of file diff --git a/docs/archive/pythainlp-1-4-thai.pdf b/docs/archive/pythainlp-1-4-thai.pdf deleted file mode 100644 index 6af963a3cbf4c545feed100943a8caa24eac4c18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126942 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%0A3S)^ks}Y@`^aJP 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 RHg*&@dvFHMl5O^={U7{Dc5(m! diff --git a/docs/archive/pythainlp-1-5-eng.md b/docs/archive/pythainlp-1-5-eng.md deleted file mode 100644 index 227bcbb73..000000000 --- a/docs/archive/pythainlp-1-5-eng.md +++ /dev/null @@ -1,471 +0,0 @@ -# User manual PyThaiNLP 1.5 - -[TOC] - -## API - -### tokenize - -#### word_tokenize - -word_tokenize is thai word segmatation. - -```python -from pythainlp.tokenize import word_tokenize -word_tokenize(text,engine) -``` -**text** refers to an input text string in Thai. - -**engine** refers to a thai word segmentation system; There are 6 systems to choose from. - -1. icu (default) - pyicu has a very poor performance. -2. dict - dictionary-based tokenizer. It returns False if the message can not be wrapped. -3. mm - Maximum Matching algorithm for Thai word segmentation. -4. newmm - Maximum Matching algorithm for Thai word segmatation. Developed by Korakot Chaovavanich (https://www.facebook.com/groups/408004796247683/permalink/431283740586455/) -5. pylexto - LexTo. -6. deepcut - Deep Learning based Thai word segmentation (https://github.com/rkcosmos/deepcut) - - -Output: ''list'' ex. ['แมว','กิน'] - -**Example** - - -```python -from pythainlp.tokenize import word_tokenize -text='ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -a=word_tokenize(text,engine='icu') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอ', 'เค', 'บ่', 'พวก', 'เรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้าน', 'เกิด'] -b=word_tokenize(text,engine='dict') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -c=word_tokenize(text,engine='mm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -d=word_tokenize(text,engine='pylexto') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -e=word_tokenize(text,engine='newmm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -``` - -#### dict_word_tokenize - -```python -from pythainlp.tokenize import dict_word_tokenize -dict_word_tokenize(text,file,engine) -``` - -A command for tokenize by using user-defined information. - -text : str - -file : name file data using in tokenize. - -engine - -- newmm -- wordcutpy : using wordcutpy (https://github.com/veer66/wordcutpy) -- mm -- longest-matching - -Example https://gist.github.com/wannaphongcom/1e862583051bf0464b6ef4ed592f739c - -#### sent_tokenize - -Thai Sentence Tokenizer - -```python -sent_tokenize(text,engine='whitespace+newline') -``` - -engine : - -- whitespace - tokenizer from whitespace -- whitespace+newline - tokenizer from whitespace and newline. - -#### Thai Character Clusters (TCC) - -TCC : Mr.Jakkrit TeCho - -grammar : Wittawat Jitkrittum (https://github.com/wittawatj/jtcc/blob/master/TCC.g) - -Code : Korakot Chaovavanich - -**Example** - -```python ->>> from pythainlp.tokenize import tcc ->>> tcc.tcc('ประเทศไทย') -'ป/ระ/เท/ศ/ไท/ย' -``` - -#### Enhanced Thai Character Cluster (ETCC) - -**Example** - -```python ->>> from pythainlp.tokenize import etcc ->>> etcc.etcc('คืนความสุข') -'/คืน/ความสุข' -``` - -#### WhitespaceTokenizer - -Tokenizer by using spaces - -```python ->>> from pythainlp.tokenize import WhitespaceTokenizer ->>> WhitespaceTokenizer("ทดสอบ ตัดคำช่องว่าง") -['ทดสอบ', 'ตัดคำช่องว่าง'] -``` -#### isthai - -check - -### Thai postaggers - -```python -from pythainlp.tag import pos_tag -pos_tag(list,engine='old') -``` - -engine - -1. old is the UnigramTagger (default) -2. artagger is the RDR POS Tagger. - -### romanization - -```python -from pythainlp.romanization import romanization -romanization(str,engine='pyicu') -``` -There are 2 engines - -- pyicu -- royin - -data : - -input ''str'' - -returns ''str'' - -**Example** - -```python -from pythainlp.romanization import romanization -romanization("แมว") # 'mæw' -``` - -### keywords - -#### find_keyword - -find keywords from thai text in list. - -```python -find_keyword(list,lentext=3) -``` -lentext is minimum number of keywords words. - -return dict {words: number of keywords} - -### Spell Check - -```python -spell(word,engine='pn') -``` -engine - -- 'pn' code from Peter Norvig -- 'hunspell' using hunspell - -Before using this module, please install hunspell and hunspell-th. - -```python -from pythainlp.spell import * -a=spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` -#### pn - -```python -correction(word) -``` - -Show word possible - -**Sample usage** - -```python -from pythainlp.spell.pn import correction -a=correction("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` -### number - -```python -from pythainlp.number import * -``` -- nttn(str) - convert thai numbers to numbers. -- nttt(str) - Thai Numbers to text. -- ntnt(str) - numbers to thai numbers. -- ntt(str) - numbers to text. -- ttn(str) - text to numbers. -- numtowords(float) - Read thai numbers (Baht) input ''float'' returns 'str' - -### Sort Thai text into List - -```python -from pythainlp.collation import collation -print(collation(['ไก่','ไข่','ก','ฮา'])) # ['ก', 'ไก่', 'ไข่', 'ฮา'] -``` - -input list - -returns list - -### Get current time in Thai - -```python -from pythainlp.date import now -now() # '30 พฤษภาคม 2560 18:45:24' -``` -### Find the most frequent words. - -```python -from pythainlp.rank import rank -rank(list) -``` - -returns dict - -**Example** - -```python ->>> rank(['แมง','แมง','คน']) -Counter({'แมง': 2, 'คน': 1}) -``` - -### Incorrect input language correction - -```python -from pythainlp.change import * -``` - -- texttothai(str) - eng to thai. -- texttoeng(str) - thai to eng. - -### Thai Soundex - -credit Korakot Chaovavanich (from https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8) - -- LK82 -- Udom83 - -**Example** - -```python ->>> from pythainlp.soundex import LK82,Udom83 ->>> print(LK82('รถ')) -ร3000 ->>> print(LK82('รด')) -ร3000 ->>> print(LK82('จัน')) -จ4000 ->>> print(LK82('จันทร์')) -จ4000 ->>> print(Udom83('รถ')) -ร800000 -``` - -### Thai meta sound - -``` -Snae & Brückner. (2009). Novel Phonetic Name Matching Algorithm with a Statistical Ontology for Analysing Names Given in Accordance with Thai Astrology. Retrieved from https://pdfs.semanticscholar.org/3983/963e87ddc6dfdbb291099aa3927a0e3e4ea6.pdf -``` - -**Example** - -```python ->>> from pythainlp.MetaSound import * ->>> MetaSound('คน') -'15' -``` - -### Thai sentiment analysis - -using data from [https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/](https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/) - -```python -from pythainlp.sentiment import sentiment -sentiment(str) -``` - -input str returns pos , neg or neutral - -### Util - -using - -```python -from pythainlp.util import * -``` - -#### ngrams - -for building ngrams - -```python -ngrams(token,num) -``` - -- token - list -- num - ngrams - -#### bigrams - -for building bigrams - -```python -bigrams(token) -``` - -- token - list - -#### trigram - -for building trigram - -```python -trigram(token) -``` - -- token - list - -#### normalize - -fix thai text - -```python -normalize(text) -``` - -**Example** - -```python ->>> print(normalize("เเปลก")=="แปลก") # เ เ ป ล ก กับ แปลก -True -``` - -### Corpus - -#### Thai stopword - -```python -from pythainlp.corpus import stopwords -stopwords = stopwords.words('thai') -``` - -#### Thai country name - -```python -from pythainlp.corpus import country -country.get_data() -``` - -#### Tone in Thai - -```python -from pythainlp.corpus import tone -tone.get_data() -``` - -#### Consonant in thai - -```python -from pythainlp.corpus import alphabet -alphabet.get_data() -``` - -#### Word list in thai - -```python -from pythainlp.corpus.thaiword import get_data # old data -get_data() -from pythainlp.corpus.newthaiword import get_data # new data -get_data() -``` - -#### ConceptNet - -Thai tool for ConceptNet. - -**find edges** - -```python -edges(word,lang='th') -``` - -return dict - -#### Thai WordNet - -import - -```python -from pythainlp.corpus import wordnet -``` - -**Use** - -It's like nltk. - -- wordnet.synsets(word) -- wordnet.synset(name_synsets) -- wordnet.all_lemma_names(pos=None, lang="tha") -- wordnet.all_synsets(pos=None) -- wordnet.langs() -- wordnet.lemmas(word,pos=None,lang="tha") -- wordnet.lemma(name_synsets) -- wordnet.lemma_from_key(key) -- wordnet.path_similarity(synsets1,synsets2) -- wordnet.lch_similarity(synsets1,synsets2) -- wordnet.wup_similarity(synsets1,synsets2) -- wordnet.morphy(form, pos=None) -- wordnet.custom_lemmas(tab_file, lang) - -**Example** - -```python ->>> from pythainlp.corpus import wordnet ->>> print(wordnet.synsets('หนึ่ง')) -[Synset('one.s.05'), Synset('one.s.04'), Synset('one.s.01'), Synset('one.n.01')] ->>> print(wordnet.synsets('หนึ่ง')[0].lemma_names('tha')) -[] ->>> print(wordnet.synset('one.s.05')) -Synset('one.s.05') ->>> print(wordnet.synset('spy.n.01').lemmas()) -[Lemma('spy.n.01.spy'), Lemma('spy.n.01.undercover_agent')] ->>> print(wordnet.synset('spy.n.01').lemma_names('tha')) -['สปาย', 'สายลับ'] -``` - -#### TNC - -Tool for Thai National Corpus (http://www.arts.chula.ac.th/~ling/TNC/index.php) - -##### word_frequency - -find word frequency - -```python -word_frequency(word,domain='all') -``` -domain - -- all -- imaginative -- natural-pure-science -- applied-science -- social-science -- world-affairs-history -- commerce-finance -- arts -- belief-thought -- leisure -- others \ No newline at end of file diff --git a/docs/archive/pythainlp-1-5-thai.md b/docs/archive/pythainlp-1-5-thai.md deleted file mode 100644 index ee03c26dd..000000000 --- a/docs/archive/pythainlp-1-5-thai.md +++ /dev/null @@ -1,609 +0,0 @@ -# คู่มือการใช้งาน PyThaiNLP 1.5 - -[TOC] - -Natural language processing หรือ การประมวลภาษาธรรมชาติ โมดูล PyThaiNLP เป็นโมดูลที่ถูกพัฒนาขึ้นเพื่อพัฒนาการประมวลภาษาธรรมชาติภาษาไทยในภาษา Python และ**มันฟรี (ตลอดไป) เพื่อคนไทยและชาวโลกทุกคน !** - -> เพราะโลกขับเคลื่อนต่อไปด้วยการแบ่งปัน - -รองรับ Python 2.7 และ Python 3.4 ขึ้นไปเท่านั้น - -ติดตั้งใช้คำสั่ง - -``` -pip install pythainlp -``` - -**วิธีติดตั้งสำหรับ Windows** - -การติดตั้ง pythainlp บน windows ต้องติดตั้ง pyicu ซึ่งทำได้ยากมาก -วิธีที่ง่ายที่สุดคือใช้ wheel - -1. [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu](http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu) แล้ว download wheel ตาม python ตัวเองเช่น - ผมใช้ python x64 3.6.1 บน Windows ก็ให้ใช้ PyICU‑1.9.7‑cp36‑cp36m‑win_amd64.whl - -2. `pip install PyICU‑1.9.7‑cp36‑cp36m‑win_amd64.whl` - -3. `pip install pythainlp` - -**ติดตั้งบน Mac** - -** แนะนำให้ใช้ icu 58.2 เนื่องจาก icu 59.1 มาปัญหากับ PyICU ** - -```sh -$ brew install icu4c --force -$ brew link --force icu4c -$ CFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib pip install pythainlp -``` - -ข้อมูลเพิ่มเติม [คลิกที่นี้](https://medium.com/data-science-cafe/install-polyglot-on-mac-3c90445abc1f#.rdfrorxjx) - -## API - -### tokenize - -#### word_tokenize - -สำหรับการตัดคำไทยนั้น ใช้ API ดังต่อไปนี้ - -```python -from pythainlp.tokenize import word_tokenize -word_tokenize(text,engine) -``` -text คือ ข้อความในรูปแบบสตริง str เท่านั้น - -engine คือ ระบบตัดคำไทย ปัจจุบันนี้ PyThaiNLP ได้พัฒนามี 6 engine ให้ใช้งานกันดังนี้ - -1. icu - engine ตัวดั้งเดิมของ PyThaiNLP (ความแม่นยำต่ำ) และเป็นค่าเริ่มต้น -2. dict - เป็นการตัดคำโดยใช้พจานุกรมจาก thaiword.txt ใน corpus (ความแม่นยำปานกลาง) **จะคืนค่า False หากข้อความนั้นไม่สามารถตัดคำได้** -3. longest-matching ใช้ Longest matching ในการตัดคำ -4. mm - ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย - API ชุดเก่า -5. newmm - ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย โค้ดชุดใหม่ โดยใช้โค้ดคุณ Korakot Chaovavanich จาก https://www.facebook.com/groups/408004796247683/permalink/431283740586455/ มาพัฒนาต่อ -6. pylexto ใช้ LexTo ในการตัดคำ โดยเป็น Longest matching -7. deepcut ใช้ deepcut จาก https://github.com/rkcosmos/deepcut ในการตัดคำภาษาไทย -8. wordcutpy ใช้ wordcutpy (https://github.com/veer66/wordcutpy) ในการตัดคำ - -คืนค่าเป็น ''list'' เช่น ['แมว','กิน'] - -**ตัวอย่าง** - -```python -from pythainlp.tokenize import word_tokenize -text='ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -a=word_tokenize(text,engine='icu') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอ', 'เค', 'บ่', 'พวก', 'เรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้าน', 'เกิด'] -b=word_tokenize(text,engine='dict') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -c=word_tokenize(text,engine='mm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -d=word_tokenize(text,engine='pylexto') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -e=word_tokenize(text,engine='newmm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -g=word_tokenize(text,engine='wordcutpy') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้านเกิด'] -``` - -#### dict_word_tokenize - -```python -from pythainlp.tokenize import dict_word_tokenize -dict_word_tokenize(text,file,engine) -``` - -เป็นคำสั่งสำหรับตัดคำโดยใช้ข้อมูลที่ผู้ใช้กำหนด - -text คือ ข้อความที่ต้องการตัดคำ - -file คือ ที่ตั้งไฟล์ที่ต้องการมาเป็นฐานข้อมูลตัดคำ - -engine คือ เครื่องมือตัดคำ - -- newmm ตัดคำด้วย newmm -- wordcutpy ใช้ wordcutpy (https://github.com/veer66/wordcutpy) ในการตัดคำ -- mm ตัดคำด้วย mm -- longest-matching ตัดคำโดยใช้ longest matching - -ตัวอย่างการใช้งาน https://gist.github.com/wannaphongcom/1e862583051bf0464b6ef4ed592f739c - -#### sent_tokenize - -ใช้ตัดประโยคภาษาไทย - -```python -sent_tokenize(text,engine='whitespace+newline') -``` - -text คือ ข้อความในรูปแบบสตริง - -engine คือ เครื่องมือสำหรับใช้ตัดประโยค - -- whitespace ตัดประโยคจากช่องว่าง -- whitespace+newline ตัดประโยคจากช่องว่างและตัดจากการขึ้นบรรทัดใหม่ - -คืนค่า ออกมาเป็น list - -#### WhitespaceTokenizer - -ใช้ตัดคำ/ประโยคจากช่องว่างในสตริง - -```python ->>> from pythainlp.tokenize import WhitespaceTokenizer ->>> WhitespaceTokenizer("ทดสอบ ตัดคำช่องว่าง") -['ทดสอบ', 'ตัดคำช่องว่าง'] -``` - -#### isthai - -ใช้เช็คข้อความว่าเป็นภาษาไทยทั้งหมดกี่ % - -```python -isthai(text,check_all=False) -``` - -text คือ ข้อความหรือ list ตัวอักษร - -check_all สำหรับส่งคืนค่า True หรือ False เช็คทุกตัวอักษร - -**การส่งคืนค่า** - -```python -{'thai':% อักษรภาษาไทย,'check_all':tuple โดยจะเป็น (ตัวอักษร,True หรือ False)} -``` - -#### Thai Character Clusters (TCC) - -PyThaiNLP 1.4 รองรับ Thai Character Clusters (TCC) โดยจะแบ่งกลุ่มด้วย / - -**เดติด** - -TCC : Mr.Jakkrit TeCho - -grammar : คุณ Wittawat Jitkrittum (https://github.com/wittawatj/jtcc/blob/master/TCC.g) - -โค้ด : คุณ Korakot Chaovavanich - -**การใช้งาน** - -```python ->>> from pythainlp.tokenize import tcc ->>> tcc.tcc('ประเทศไทย') -'ป/ระ/เท/ศ/ไท/ย' -``` - -#### Enhanced Thai Character Cluster (ETCC) - -นอกจาก TCC แล้ว PyThaiNLP 1.4 ยังรองรับ Enhanced Thai Character Cluster (ETCC) โดยแบ่งกลุ่มด้วย / - -**การใช้งาน** - -```python ->>> from pythainlp.tokenize import etcc ->>> etcc.etcc('คืนความสุข') -'/คืน/ความสุข' -``` - -### keywords - -ใช้หา keywords จากข้อความภาษาไทย - -#### find_keyword - -การทำงาน หาคำที่ถูกใช้งานมากกว่าค่าขั้นต่ำที่กำหนดได้ โดยจะลบ stopword ออกไป - -```python -find_keyword(word_list,lentext=3) -``` - -word_list คือ list ของข้อความที่ผ่านการตัดคำแล้ว - -lentext คือ จำนวนคำขั้นต่ำที่ต้องการหา keyword - -คืนค่าออกมาเป็น dict - -### tag - -เป็น Part-of-speech tagging ภาษาไทย - -```python -from pythainlp.tag import pos_tag -pos_tag(list,engine='old') -``` - -list คือ list ที่เก็บข้อความหลังผ่านการตัดคำแล้ว - -engine คือ ชุดเครื่องมือในการ postaggers มี 2 ตัวดังนี้ - -1. old เป็น UnigramTagger (ค่าเริ่มต้น) -2. artagger เป็น RDR POS Tagger ละเอียดยิ่งกว่าเดิม รองรับเฉพาะ Python 3 เท่านั้น - -### romanization - -```python -from pythainlp.romanization import romanization -romanization(str,engine='pyicu') -``` -มี 2 engine ดังนี้ - -- pyicu ส่งค่า Latin -- royin ใช้หลักเกณฑ์การถอดอักษรไทยเป็นอักษรโรมัน ฉบับราชบัณฑิตยสถาน (**หากมีข้อผิดพลาด ให้ใช้คำอ่าน เนื่องจากตัว royin ไม่มีตัวแปลงคำเป็นคำอ่าน**) - -data : - -รับค่า ''str'' ข้อความ - -คืนค่าเป็น ''str'' ข้อความ - -**ตัวอย่าง** - -```python -from pythainlp.romanization import romanization -romanization("แมว") # 'mæw' -``` - -### spell - -เป็น API สำหรับเช็คคำผิดในภาษาไทย - -```python -spell(word,engine='pn') -``` - -engine ที่รองรับ - -- pn พัฒนามาจาก Peter Norvig (ค่าเริ่มต้น) -- hunspell ใช้ hunspell (ไม่รองรับ Python 2.7) - -**ตัวอย่างการใช้งาน** - -```python -from pythainlp.spell import * -a=spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` -#### pn - -```python -correction(word) -``` - -แสดงคำที่เป็นไปได้มากที่สุด - -**ตัวอย่างการใช้งาน** - -```python -from pythainlp.spell.pn import correction -a=correction("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` - -ผลลัพธ์ - -``` -สี่เหลี่ยม -``` - -### pythainlp.number - -```python -from pythainlp.number import * -``` -จัดการกับตัวเลข โดยมีดังนี้ - -- thai_num_to_num(str) - เป็นการแปลงเลขไทยสู่เลข -- thai_num_to_text(str) - เลขไทยสู่ข้อความ -- num_to_thai_num(str) - เลขสู่เลขไทย -- num_to_text(str) - เลขสู่ข้อความ -- text_to_num(str) - ข้อความสู่เลข -- numtowords(float) - อ่านจำนวนตัวเลขภาษาไทย (บาท) รับค่าเป็น ''float'' คืนค่าเป็น 'str' - -### collation - -ใช้ในการเรียงลำดับข้อมูลภาษาไทยใน List - -```python -from pythainlp.collation import collation -print(collation(['ไก่','ไข่','ก','ฮา'])) # ['ก', 'ไก่', 'ไข่', 'ฮา'] -``` - -รับ list คืนค่า list - -### date - -#### now - -รับเวลาปัจจุบันเป็นภาษาไทย - -```python -from pythainlp.date import now -now() # '30 พฤษภาคม 2560 18:45:24' -``` -### rank - -#### rank - -หาคำที่มีจำนวนการใช้งานมากที่สุด - -```python -from pythainlp.rank import rank -rank(list) -``` - -คืนค่าออกมาเป็น dict - -**ตัวอย่างการใช้งาน** - -```python ->>> rank(['แมง','แมง','คน']) -Counter({'แมง': 2, 'คน': 1}) -``` - -### change - -#### แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา - -```python -from pythainlp.change import * -``` - -มีคำสั่งดังนี้ - -- texttothai(str) แปลงแป้นตัวอักษรภาษาอังกฤษเป็นภาษาไทย -- texttoeng(str) แปลงแป้นตัวอักษรภาษาไทยเป็นภาษาอังกฤษ - -คืนค่าออกมาเป็น str - -### soundex - -เดติด คุณ Korakot Chaovavanich (จาก https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8) - -กฎที่รองรับในเวชั่น 1.4 - -- กฎการเข้ารหัสซาวน์เด็กซ์ของ วิชิตหล่อจีระชุณห์กุล และ เจริญ คุวินทร์พันธุ์ - LK82 -- กฎการเข้ารหัสซาวน์เด็กซ์ของ วรรณี อุดมพาณิชย์ - Udom83 - -**การใช้งาน** - -```python ->>> from pythainlp.soundex import LK82,Udom83 ->>> print(LK82('รถ')) -ร3000 ->>> print(LK82('รด')) -ร3000 ->>> print(LK82('จัน')) -จ4000 ->>> print(LK82('จันทร์')) -จ4000 ->>> print(Udom83('รถ')) -ร800000 -``` - -### Meta Sound ภาษาไทย - -``` -Snae & Brückner. (2009). Novel Phonetic Name Matching Algorithm with a Statistical Ontology for Analysing Names Given in Accordance with Thai Astrology. Retrieved from https://pdfs.semanticscholar.org/3983/963e87ddc6dfdbb291099aa3927a0e3e4ea6.pdf -``` - -**การใช้งาน** - -```python ->>> from pythainlp.MetaSound import * ->>> MetaSound('คน') -'15' -``` - -### sentiment - -เป็น Sentiment analysis ภาษาไทย ใช้ข้อมูลจาก [https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/](https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/) - -```python -from pythainlp.sentiment import sentiment -sentiment(str) -``` - -รับค่า str ส่งออกเป็น pos , neg - -### Util - -การใช้งาน - -```python -from pythainlp.util import * -``` - -#### ngrams - -สำหรับสร้าง n-grams - -```python -ngrams(token,num) -``` - -- token คือ list -- num คือ จำนวน ngrams - -#### bigrams - -สำหรับสร้าง bigrams - -```python -bigrams(token) -``` - -- token คือ list - -#### trigram - -สำหรับสร้าง trigram - -```python -trigram(token) -``` - -- token คือ list - -#### normalize - -ซ่อมข้อความภาษาไทย เช่น กี่่่ ไปเป็น กี่ - -```python -normalize(text) -``` - -**ตัวอย่าง** - -```python ->>> print(normalize("เเปลก")=="แปลก") # เ เ ป ล ก กับ แปลก -True -``` - -### Corpus - -#### WordNet ภาษาไทย - -เรียกใช้งาน - -```python -from pythainlp.corpus import wordnet -``` - -**การใช้งาน** - -API เหมือนกับ NLTK โดยรองรับ API ดังนี้ - -- wordnet.synsets(word) -- wordnet.synset(name_synsets) -- wordnet.all_lemma_names(pos=None, lang="tha") -- wordnet.all_synsets(pos=None) -- wordnet.langs() -- wordnet.lemmas(word,pos=None,lang="tha") -- wordnet.lemma(name_synsets) -- wordnet.lemma_from_key(key) -- wordnet.path_similarity(synsets1,synsets2) -- wordnet.lch_similarity(synsets1,synsets2) -- wordnet.wup_similarity(synsets1,synsets2) -- wordnet.morphy(form, pos=None) -- wordnet.custom_lemmas(tab_file, lang) - -**ตัวอย่าง** - -```python ->>> from pythainlp.corpus import wordnet ->>> print(wordnet.synsets('หนึ่ง')) -[Synset('one.s.05'), Synset('one.s.04'), Synset('one.s.01'), Synset('one.n.01')] ->>> print(wordnet.synsets('หนึ่ง')[0].lemma_names('tha')) -[] ->>> print(wordnet.synset('one.s.05')) -Synset('one.s.05') ->>> print(wordnet.synset('spy.n.01').lemmas()) -[Lemma('spy.n.01.spy'), Lemma('spy.n.01.undercover_agent')] ->>> print(wordnet.synset('spy.n.01').lemma_names('tha')) -['สปาย', 'สายลับ'] -``` - -#### stopword ภาษาไทย - -```python -from pythainlp.corpus import stopwords -stopwords = stopwords.words('thai') -``` - -#### ชื่อประเทศ ภาษาไทย - -```python -from pythainlp.corpus import country -country.get_data() -``` - -#### ตัววรรณยุกต์ในภาษาไทย - -```python -from pythainlp.corpus import tone -tone.get_data() -``` - -#### ตัวพยัญชนะในภาษาไทย - -```python -from pythainlp.corpus import alphabet -alphabet.get_data() -``` - -#### รายการคำในภาษาไทย - -```python -from pythainlp.corpus.thaiword import get_data # ข้อมูลเก่า -get_data() -from pythainlp.corpus.newthaiword import get_data # ข้อมูลใหม่ -get_data() -``` - -#### provinces - -สำหรับจัดการชื่อจังหวัดในประเทศไทย - -##### get_data - -รับข้อมูลชื่อจังหวัดในประเทศไทบ - -```python -get_data() -``` - -คือค่าออกมาเป็น list - -##### parsed_docs - -สำหรับใช้ Tag ชื่อจังหวัดในประเทศไทย - -```python -parsed_docs(text_list) -``` - -text_list คือ ข้อความภาษาไทยที่อยู่ใน list โดยผ่านการตัดคำมาแล้ว - -**ตัวอย่าง** - -```python ->>> d=['หนองคาย', 'เป็น', 'เมือง', 'น่าอยู่', 'อันดับ', 'ต้น', 'ๆ', 'ของ', 'โลก', 'นอกจากนี้', 'ยัง', 'มี', 'เชียงใหม่'] ->>> parsed_docs(d) -["[LOC : 'หนองคาย']", 'เป็น', 'เมือง', 'น่าอยู่', 'อันดับ', 'ต้น', 'ๆ', 'ของ', 'โลก', 'นอกจากนี้', 'ยัง', 'มี', "[LOC : 'เชียงใหม่']"] -``` - -#### ConceptNet - -เครื่องมือสำหรับ ConceptNet. - -**ค้นหา edges** - -```python -edges(word,lang='th') -``` - -return dict - -#### TNC - -สำหรับใช้จัดการกับ Thai National Corpus (http://www.arts.chula.ac.th/~ling/TNC/index.php) - -##### word_frequency - -ใช้วัดความถี่ของคำ - -```python -word_frequency(word,domain='all') -``` - -word คือ คำ - -domain คือ หมวดหมู่ของคำ - -มีหมวดหมู่ดังนี้ - -- all -- imaginative -- natural-pure-science -- applied-science -- social-science -- world-affairs-history -- commerce-finance -- arts -- belief-thought -- leisure -- others - -เขียนโดย นาย วรรณพงษ์ ภัททิยไพบูลย์ diff --git a/docs/archive/pythainlp-1-6-eng.md b/docs/archive/pythainlp-1-6-eng.md deleted file mode 100644 index df1c9f16e..000000000 --- a/docs/archive/pythainlp-1-6-eng.md +++ /dev/null @@ -1,502 +0,0 @@ -# User manual PyThaiNLP 1.6 - -[TOC] - -## API - -### tokenize - -#### word_tokenize - -word_tokenize is thai word segmatation. - -```python -from pythainlp.tokenize import word_tokenize -word_tokenize(text,engine) -``` -**text** refers to an input text string in Thai. - -**engine** refers to a thai word segmentation system; There are 6 systems to choose from. - -1. newmm (default) - Maximum Matching algorithm for Thai word segmatation. Developed by Korakot Chaovavanich (https://www.facebook.com/groups/408004796247683/permalink/431283740586455/) -2. icu - pyicu has a very poor performance. -3. dict - dictionary-based tokenizer. It returns False if the message can not be wrapped. -4. longest-matching - using Longest matching algorithm for Thai word segmentation. -5. mm - Maximum Matching algorithm for Thai word segmentation. -6. pylexto - LexTo. -7. deepcut - Deep Learning based Thai word segmentation (https://github.com/rkcosmos/deepcut) -8. wordcutpy - use wordcutpy (https://github.com/veer66/wordcutpy) for Thai word segmentation. - - -Output: ''list'' ex. ['แมว','กิน'] - -**Example** - - -```python -from pythainlp.tokenize import word_tokenize -text='ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -a=word_tokenize(text,engine='icu') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอ', 'เค', 'บ่', 'พวก', 'เรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้าน', 'เกิด'] -b=word_tokenize(text,engine='dict') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -c=word_tokenize(text,engine='mm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -d=word_tokenize(text,engine='pylexto') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -e=word_tokenize(text,engine='newmm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -g=word_tokenize(text,engine='wordcutpy') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้านเกิด'] -``` - -#### dict_word_tokenize - -```python -from pythainlp.tokenize import dict_word_tokenize -dict_word_tokenize(text,file,engine) -``` - -A command for tokenize by using user-defined information. - -text : str - -file : name file data using in tokenize. - -engine - -- newmm -- wordcutpy : using wordcutpy (https://github.com/veer66/wordcutpy) -- mm -- longest-matching - -Example https://gist.github.com/wannaphongcom/1e862583051bf0464b6ef4ed592f739c - -#### sent_tokenize - -Thai Sentence Tokenizer - -```python -sent_tokenize(text,engine='whitespace+newline') -``` - -engine : - -- whitespace - tokenizer from whitespace -- whitespace+newline - tokenizer from whitespace and newline. - -#### Thai Character Clusters (TCC) - -TCC : Mr.Jakkrit TeCho - -grammar : Wittawat Jitkrittum (https://github.com/wittawatj/jtcc/blob/master/TCC.g) - -Code : Korakot Chaovavanich - -**Example** - -```python ->>> from pythainlp.tokenize import tcc ->>> tcc.tcc('ประเทศไทย') -'ป/ระ/เท/ศ/ไท/ย' -``` - -#### Enhanced Thai Character Cluster (ETCC) - -**Example** - -```python ->>> from pythainlp.tokenize import etcc ->>> etcc.etcc('คืนความสุข') -'/คืน/ความสุข' -``` - -#### WhitespaceTokenizer - -Tokenizer by using spaces - -```python ->>> from pythainlp.tokenize import WhitespaceTokenizer ->>> WhitespaceTokenizer("ทดสอบ ตัดคำช่องว่าง") -['ทดสอบ', 'ตัดคำช่องว่าง'] -``` -#### isthai - -check - -### Thai postaggers - -```python -from pythainlp.tag import pos_tag -pos_tag(list,engine='old') -``` - -engine - -1. old is the UnigramTagger (default) -2. artagger is the RDR POS Tagger. - -### romanization - -```python -from pythainlp.romanization import romanization -romanization(str,engine='pyicu') -``` -There are 2 engines - -- pyicu -- royin - -data : - -input ''str'' - -returns ''str'' - -**Example** - -```python -from pythainlp.romanization import romanization -romanization("แมว") # 'mæw' -``` - -### keywords - -#### find_keyword - -find keywords from thai text in list. - -```python -find_keyword(list,lentext=3) -``` -lentext is minimum number of keywords words. - -return dict {words: number of keywords} - -### Spell Check - -```python -spell(word,engine='pn') -``` -engine - -- 'pn' code from Peter Norvig -- 'hunspell' using hunspell - -Before using this module, please install hunspell and hunspell-th. - -```python -from pythainlp.spell import * -a=spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` -#### pn - -```python -correction(word) -``` - -Show word possible - -**Sample usage** - -```python -from pythainlp.spell.pn import correction -a=correction("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` -### number - -```python -from pythainlp.number import * -``` -- nttn(str) - convert thai numbers to numbers. -- nttt(str) - Thai Numbers to text. -- ntnt(str) - numbers to thai numbers. -- ntt(str) - numbers to text. -- ttn(str) - text to numbers. -- numtowords(float) - Read thai numbers (Baht) input ''float'' returns 'str' - -### Sort Thai text into List - -```python -from pythainlp.collation import collation -print(collation(['ไก่','ไข่','ก','ฮา'])) # ['ก', 'ไก่', 'ไข่', 'ฮา'] -``` - -input list - -returns list - -### Get current time in Thai - -```python -from pythainlp.date import now -now() # '30 พฤษภาคม 2560 18:45:24' -``` -### Find the most frequent words. - -```python -from pythainlp.rank import rank -rank(list) -``` - -returns dict - -**Example** - -```python ->>> rank(['แมง','แมง','คน']) -Counter({'แมง': 2, 'คน': 1}) -``` - -### Incorrect input language correction - -```python -from pythainlp.change import * -``` - -- texttothai(str) - eng to thai. -- texttoeng(str) - thai to eng. - -### word_vector - -```python -from pythainlp.word_vector import thai2vec -``` - -word_vector is word vector in PyThaiNLP - -It's work using thai2vec (https://github.com/cstorm125/thai2vec) - -thai2vec developed by Charin Polpanumas - -#### thai2vec - -requirements - -- gensim -- numpy - -##### API - -- get_model() - get gensim model -- most_similar_cosmul(positive,negative) -- doesnt_match(listdata) -- similarity(word1,word2) -- sentence_vectorizer(ss,dim=300,use_mean=False) -- about() - -### Thai Soundex - -credit Korakot Chaovavanich (from https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8) - -- LK82 -- Udom83 - -**Example** - -```python ->>> from pythainlp.soundex import LK82,Udom83 ->>> print(LK82('รถ')) -ร3000 ->>> print(LK82('รด')) -ร3000 ->>> print(LK82('จัน')) -จ4000 ->>> print(LK82('จันทร์')) -จ4000 ->>> print(Udom83('รถ')) -ร800000 -``` - -### Thai meta sound - -``` -Snae & Brückner. (2009). Novel Phonetic Name Matching Algorithm with a Statistical Ontology for Analysing Names Given in Accordance with Thai Astrology. Retrieved from https://pdfs.semanticscholar.org/3983/963e87ddc6dfdbb291099aa3927a0e3e4ea6.pdf -``` - -**Example** - -```python ->>> from pythainlp.MetaSound import * ->>> MetaSound('คน') -'15' -``` - -### Thai sentiment analysis - -using data from [https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/](https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/) - -```python -from pythainlp.sentiment import sentiment -sentiment(str) -``` - -input str returns pos , neg or neutral - -### Util - -using - -```python -from pythainlp.util import * -``` - -#### ngrams - -for building ngrams - -```python -ngrams(token,num) -``` - -- token - list -- num - ngrams - -#### bigrams - -for building bigrams - -```python -bigrams(token) -``` - -- token - list - -#### trigram - -for building trigram - -```python -trigram(token) -``` - -- token - list - -#### normalize - -fix thai text - -```python -normalize(text) -``` - -**Example** - -```python ->>> print(normalize("เเปลก")=="แปลก") # เ เ ป ล ก กับ แปลก -True -``` - -### Corpus - -#### Thai stopword - -```python -from pythainlp.corpus import stopwords -stopwords = stopwords.words('thai') -``` - -#### Thai country name - -```python -from pythainlp.corpus import country -country.get_data() -``` - -#### Tone in Thai - -```python -from pythainlp.corpus import tone -tone.get_data() -``` - -#### Consonant in thai - -```python -from pythainlp.corpus import alphabet -alphabet.get_data() -``` - -#### Word list in thai - -```python -from pythainlp.corpus.thaiword import get_data # old data -get_data() -from pythainlp.corpus.newthaiword import get_data # new data -get_data() -``` - -#### ConceptNet - -Thai tool for ConceptNet. - -**find edges** - -```python -edges(word,lang='th') -``` - -return dict - -#### Thai WordNet - -import - -```python -from pythainlp.corpus import wordnet -``` - -**Use** - -It's like nltk. - -- wordnet.synsets(word) -- wordnet.synset(name_synsets) -- wordnet.all_lemma_names(pos=None, lang="tha") -- wordnet.all_synsets(pos=None) -- wordnet.langs() -- wordnet.lemmas(word,pos=None,lang="tha") -- wordnet.lemma(name_synsets) -- wordnet.lemma_from_key(key) -- wordnet.path_similarity(synsets1,synsets2) -- wordnet.lch_similarity(synsets1,synsets2) -- wordnet.wup_similarity(synsets1,synsets2) -- wordnet.morphy(form, pos=None) -- wordnet.custom_lemmas(tab_file, lang) - -**Example** - -```python ->>> from pythainlp.corpus import wordnet ->>> print(wordnet.synsets('หนึ่ง')) -[Synset('one.s.05'), Synset('one.s.04'), Synset('one.s.01'), Synset('one.n.01')] ->>> print(wordnet.synsets('หนึ่ง')[0].lemma_names('tha')) -[] ->>> print(wordnet.synset('one.s.05')) -Synset('one.s.05') ->>> print(wordnet.synset('spy.n.01').lemmas()) -[Lemma('spy.n.01.spy'), Lemma('spy.n.01.undercover_agent')] ->>> print(wordnet.synset('spy.n.01').lemma_names('tha')) -['สปาย', 'สายลับ'] -``` - -#### TNC - -Tool for Thai National Corpus (http://www.arts.chula.ac.th/~ling/TNC/index.php) - -##### word_frequency - -find word frequency - -```python -word_frequency(word,domain='all') -``` -domain - -- all -- imaginative -- natural-pure-science -- applied-science -- social-science -- world-affairs-history -- commerce-finance -- arts -- belief-thought -- leisure -- others \ No newline at end of file diff --git a/docs/archive/pythainlp-1-6-thai.md b/docs/archive/pythainlp-1-6-thai.md deleted file mode 100644 index b7e5b67a9..000000000 --- a/docs/archive/pythainlp-1-6-thai.md +++ /dev/null @@ -1,683 +0,0 @@ -# คู่มือการใช้งาน PyThaiNLP 1.6 - -[TOC] - -**เอกสารใหม่ย้ายไปที่ https://thainlp.org/pythainlp/docs/1.7/*** - -Natural language processing หรือ การประมวลภาษาธรรมชาติ โมดูล PyThaiNLP เป็นโมดูลที่ถูกพัฒนาขึ้นเพื่อพัฒนาการประมวลภาษาธรรมชาติภาษาไทยในภาษา Python และ**มันฟรี (ตลอดไป) เพื่อคนไทยและชาวโลกทุกคน !** - -> เพราะโลกขับเคลื่อนต่อไปด้วยการแบ่งปัน - -รองรับ Python 2.7 และ Python 3.4 ขึ้นไปเท่านั้น - -ติดตั้งใช้คำสั่ง - -``` -pip install pythainlp -``` - -ปัจจุบันนี้ PyThaiNLP ไม่ต้องการ PyICU ในการใช้งาน API อีกแล้ว แต่หากท่านต้องการใช้ API ที่มี PyICU ให้ทำตามคำแนะนำข้างล่างนี้ - -**วิธีติดตั้งสำหรับ Windows** - -การติดตั้ง pythainlp บน windows ต้องติดตั้ง pyicu ซึ่งทำได้ยากมาก -วิธีที่ง่ายที่สุดคือใช้ wheel - -1. [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu](http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu) แล้ว download wheel ตาม python ตัวเองเช่น - ผมใช้ python x64 3.6.1 บน Windows ก็ให้ใช้ PyICU‑1.9.7‑cp36‑cp36m‑win_amd64.whl - -2. `pip install PyICU‑1.9.7‑cp36‑cp36m‑win_amd64.whl` - -3. `pip install pythainlp` - -**ติดตั้งบน Mac** - -** แนะนำให้ใช้ icu 58.2 เนื่องจาก icu 59.1 มาปัญหากับ PyICU ** - -```sh -$ brew install icu4c --force -$ brew link --force icu4c -$ CFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib pip install pythainlp -``` - -ข้อมูลเพิ่มเติม [คลิกที่นี้](https://medium.com/data-science-cafe/install-polyglot-on-mac-3c90445abc1f#.rdfrorxjx) - -## API - -### tokenize - -#### word_tokenize - -สำหรับการตัดคำไทยนั้น ใช้ API ดังต่อไปนี้ - -```python -from pythainlp.tokenize import word_tokenize -word_tokenize(text,engine) -``` -text คือ ข้อความในรูปแบบสตริง str เท่านั้น - -engine คือ ระบบตัดคำไทย ปัจจุบันนี้ PyThaiNLP ได้พัฒนามี 6 engine ให้ใช้งานกันดังนี้ - -1. newmm - ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย โค้ดชุดใหม่ โดยใช้โค้ดคุณ Korakot Chaovavanich จาก https://www.facebook.com/groups/408004796247683/permalink/431283740586455/ มาพัฒนาต่อ (ค่าเริ่มต้น) -2. icu - engine ตัวดั้งเดิมของ PyThaiNLP (ความแม่นยำต่ำ) -3. dict - เป็นการตัดคำโดยใช้พจานุกรมจาก thaiword.txt ใน corpus (ความแม่นยำปานกลาง) **จะคืนค่า False หากข้อความนั้นไม่สามารถตัดคำได้** -4. longest-matching ใช้ Longest matching ในการตัดคำ -5. mm - ใช้ Maximum Matching algorithm ในการตัดคำภาษาไทย - API ชุดเก่า **อยู่ในหมวดบำรุงรักษาเท่านั้น** -6. pylexto ใช้ LexTo ในการตัดคำ โดยเป็น Longest matching -7. deepcut ใช้ deepcut จาก https://github.com/rkcosmos/deepcut ในการตัดคำภาษาไทย -8. wordcutpy ใช้ wordcutpy (https://github.com/veer66/wordcutpy) ในการตัดคำ - -คืนค่าเป็น ''list'' เช่น ['แมว','กิน'] - -**ตัวอย่าง** - -``` -สำหรับผู้ใช้งาน Python 2.7 ให้ทำการ encode ให้เป็น UTF-8 ก่อนใช้งานโมดูล PyThaiNLP - -เช่น text=u'ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -``` - -**การใช้งาน** - -```python -from pythainlp.tokenize import word_tokenize -text='ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -a=word_tokenize(text,engine='icu') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอ', 'เค', 'บ่', 'พวก', 'เรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้าน', 'เกิด'] -b=word_tokenize(text,engine='dict') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -c=word_tokenize(text,engine='mm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -d=word_tokenize(text,engine='pylexto') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -e=word_tokenize(text,engine='newmm') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คนไทย', 'รัก', 'ภาษาไทย', 'ภาษา', 'บ้านเกิด'] -g=word_tokenize(text,engine='wordcutpy') # ['ผม', 'รัก', 'คุณ', 'นะ', 'ครับ', 'โอเค', 'บ่', 'พวกเรา', 'เป็น', 'คน', 'ไทย', 'รัก', 'ภาษา', 'ไทย', 'ภาษา', 'บ้านเกิด'] -``` - -#### dict_word_tokenize - -```python -from pythainlp.tokenize import dict_word_tokenize -dict_word_tokenize(text,file,engine) -``` - -เป็นคำสั่งสำหรับตัดคำโดยใช้ข้อมูลที่ผู้ใช้กำหนด - -text คือ ข้อความที่ต้องการตัดคำ - -file คือ ที่ตั้งไฟล์ที่ต้องการมาเป็นฐานข้อมูลตัดคำ - -engine คือ เครื่องมือตัดคำ - -- newmm ตัดคำด้วย newmm -- wordcutpy ใช้ wordcutpy (https://github.com/veer66/wordcutpy) ในการตัดคำ -- mm ตัดคำด้วย mm -- longest-matching ตัดคำโดยใช้ longest matching - -ตัวอย่างการใช้งาน https://gist.github.com/wannaphongcom/1e862583051bf0464b6ef4ed592f739c - -``` -สำหรับผู้ใช้งาน Python 2.7 ให้ทำการ encode ให้เป็น UTF-8 ก่อนใช้งานโมดูล PyThaiNLP - -เช่น text=u'ผมรักคุณนะครับโอเคบ่พวกเราเป็นคนไทยรักภาษาไทยภาษาบ้านเกิด' -``` - -#### sent_tokenize - -ใช้ตัดประโยคภาษาไทย - -```python -sent_tokenize(text,engine='whitespace+newline') -``` - -text คือ ข้อความในรูปแบบสตริง - -engine คือ เครื่องมือสำหรับใช้ตัดประโยค - -- whitespace ตัดประโยคจากช่องว่าง -- whitespace+newline ตัดประโยคจากช่องว่างและตัดจากการขึ้นบรรทัดใหม่ - -คืนค่า ออกมาเป็น list - -#### WhitespaceTokenizer - -ใช้ตัดคำ/ประโยคจากช่องว่างในสตริง - -```python ->>> from pythainlp.tokenize import WhitespaceTokenizer ->>> WhitespaceTokenizer("ทดสอบ ตัดคำช่องว่าง") -['ทดสอบ', 'ตัดคำช่องว่าง'] -``` - -``` -สำหรับผู้ใช้งาน Python 2.7 ให้ทำการ encode ให้เป็น UTF-8 ก่อนใช้งานโมดูล PyThaiNLP - -เช่น WhitespaceTokenizer(u"ทดสอบ ตัดคำช่องว่าง") -``` - - - -#### isthai - -ใช้เช็คข้อความว่าเป็นภาษาไทยทั้งหมดกี่ % - -```python -isthai(text,check_all=False) -``` - -text คือ ข้อความหรือ list ตัวอักษร - -check_all สำหรับส่งคืนค่า True หรือ False เช็คทุกตัวอักษร - -**การส่งคืนค่า** - -```python -{'thai':% อักษรภาษาไทย,'check_all':tuple โดยจะเป็น (ตัวอักษร,True หรือ False)} -``` - -#### Thai Character Clusters (TCC) - -รองรับ Thai Character Clusters (TCC) โดยจะแบ่งกลุ่มด้วย / - -**เครดิต** - -TCC : Mr.Jakkrit TeCho - -grammar : คุณ Wittawat Jitkrittum (https://github.com/wittawatj/jtcc/blob/master/TCC.g) - -โค้ด : คุณ Korakot Chaovavanich - -**การใช้งาน** - -```python ->>> from pythainlp.tokenize import tcc ->>> tcc.tcc('ประเทศไทย') -'ป/ระ/เท/ศ/ไท/ย' -``` - -#### Enhanced Thai Character Cluster (ETCC) - -นอกจาก TCC แล้ว PyThaiNLP 1.4 ยังรองรับ Enhanced Thai Character Cluster (ETCC) โดยแบ่งกลุ่มด้วย / - -**การใช้งาน** - -```python ->>> from pythainlp.tokenize import etcc ->>> etcc.etcc('คืนความสุข') -'/คืน/ความสุข' -``` - -### tag - -เป็น Part-of-speech tagging ภาษาไทย - -```python -from pythainlp.tag import pos_tag -pos_tag(list,engine='old') -``` - -list คือ list ที่เก็บข้อความหลังผ่านการตัดคำแล้ว - -engine คือ ชุดเครื่องมือในการ postaggers มี 2 ตัวดังนี้ - -1. old เป็น UnigramTagger (ค่าเริ่มต้น) -2. artagger เป็น RDR POS Tagger ละเอียดยิ่งกว่าเดิม รองรับเฉพาะ Python 3 เท่านั้น - -### summarize - -เป็นระบบสรุปเอกสารภาษาไทยแบบง่าย ๆ - -summarize_text(text,n,engine='frequency') - - text เป็นข้อความ - n คือ จำนวนประโยคสรุป - engine ที่รองรับ - - frequency -**การใช้งาน** - -```python ->>> from pythainlp.summarize import summarize_text ->>> summarize_text(text="อาหาร หมายถึง ของแข็งหรือของเหลว ที่กินหรือดื่มเข้าสู่ร่างกายแล้ว จะทำให้เกิดพลังงานและความร้อนยเจริญเติบโต ซ่อมแซมส่วนที่สึกหรอ ควบคุมการเปลี่ยนแปลงต่างๆ ในร่างกาย ช่วยทำให้อวัยวะต่างๆ ทำงานได้อย่างปกติ อาหารจะต้องงกาย",n=1,engine='frequency') -['อาหารจะต้องไม่มีพิษและไม่เกิดโทษต่อร่างกาย'] -``` - -### word_vector - -```python -from pythainlp.word_vector import thai2vec -``` - -word_vector เป็นระบบ word vector ใน PyThaiNLP - -ปัจจุบันนี้รองรับเฉพาะ thai2vec (https://github.com/cstorm125/thai2vec) - -thai2vec พัฒนาโดยคุณ Charin Polpanumas - -#### thai2vec - -ความต้องการโมดูล - -- gensim -- numpy - -##### API - -- get_model() - รับข้อมูล model ในรูปแบบของ gensim -- most_similar_cosmul(positive,negative) -- doesnt_match(listdata) -- similarity(word1,word2) - หาค่าความคล้ายกันระหว่าง 2 คำ โดยทั้งคู่เป็น str -- sentence_vectorizer(ss,dim=300,use_mean=False) -- about() - รายละเอียด thai2vec - - - -### keywords - -ใช้หา keywords จากข้อความภาษาไทย - -#### find_keyword - -การทำงาน หาคำที่ถูกใช้งานมากกว่าค่าขั้นต่ำที่กำหนดได้ โดยจะลบ stopword ออกไป - -```python -find_keyword(word_list,lentext=3) -``` - -word_list คือ list ของข้อความที่ผ่านการตัดคำแล้ว - -lentext คือ จำนวนคำขั้นต่ำที่ต้องการหา keyword - -คืนค่าออกมาเป็น dict - -### romanization - -```python -from pythainlp.romanization import romanization -romanization(str,engine='royin') -``` -มี 2 engine ดังนี้ - -- pyicu ส่งค่า Latin -- royin ใช้หลักเกณฑ์การถอดอักษรไทยเป็นอักษรโรมัน ฉบับราชบัณฑิตยสถาน (**หากมีข้อผิดพลาด ให้ใช้คำอ่าน เนื่องจากตัว royin ไม่มีตัวแปลงคำเป็นคำอ่าน**) - -data : - -รับค่า ''str'' ข้อความ - -คืนค่าเป็น ''str'' ข้อความ - -**ตัวอย่าง** - -```python -from pythainlp.romanization import romanization -romanization("แมว") # 'maew' -``` - -### spell - -เป็น API สำหรับเช็คคำผิดในภาษาไทย - -```python -spell(word,engine='pn') -``` - -engine ที่รองรับ - -- pn พัฒนามาจาก Peter Norvig (ค่าเริ่มต้น) -- hunspell ใช้ hunspell (ไม่รองรับ Python 2.7) - -**ตัวอย่างการใช้งาน** - -```python -from pythainlp.spell import * -a=spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` -#### pn - -```python -correction(word) -``` - -แสดงคำที่เป็นไปได้มากที่สุด - -**ตัวอย่างการใช้งาน** - -```python -from pythainlp.spell.pn import correction -a=correction("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` - -ผลลัพธ์ - -``` -สี่เหลี่ยม -``` - -### pythainlp.number - -```python -from pythainlp.number import * -``` -จัดการกับตัวเลข โดยมีดังนี้ - -- thai_num_to_num(str) - เป็นการแปลงเลขไทยสู่เลข -- thai_num_to_text(str) - เลขไทยสู่ข้อความ -- num_to_thai_num(str) - เลขสู่เลขไทย -- num_to_text(str) - เลขสู่ข้อความ -- text_to_num(str) - ข้อความสู่เลข -- numtowords(float) - อ่านจำนวนตัวเลขภาษาไทย (บาท) รับค่าเป็น ''float'' คืนค่าเป็น 'str' - -### collation - -ใช้ในการเรียงลำดับข้อมูลภาษาไทยใน List - -```python -from pythainlp.collation import collation -print(collation(['ไก่','ไข่','ก','ฮา'])) # ['ก', 'ไก่', 'ไข่', 'ฮา'] -``` - -รับ list คืนค่า list - -### date - -#### now - -รับเวลาปัจจุบันเป็นภาษาไทย - -```python -from pythainlp.date import now -now() # '30 พฤษภาคม 2560 18:45:24' -``` -### rank - -#### rank - -หาคำที่มีจำนวนการใช้งานมากที่สุด - -```python -from pythainlp.rank import rank -rank(list) -``` - -คืนค่าออกมาเป็น dict - -**ตัวอย่างการใช้งาน** - -```python ->>> rank(['แมง','แมง','คน']) -Counter({'แมง': 2, 'คน': 1}) -``` - -### change - -#### แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา - -```python -from pythainlp.change import * -``` - -มีคำสั่งดังนี้ - -- texttothai(str) แปลงแป้นตัวอักษรภาษาอังกฤษเป็นภาษาไทย -- texttoeng(str) แปลงแป้นตัวอักษรภาษาไทยเป็นภาษาอังกฤษ - -คืนค่าออกมาเป็น str - -### soundex - -เดติด คุณ Korakot Chaovavanich (จาก https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8) - -กฎที่รองรับในเวชั่น 1.4 - -- กฎการเข้ารหัสซาวน์เด็กซ์ของ วิชิตหล่อจีระชุณห์กุล และ เจริญ คุวินทร์พันธุ์ - LK82 -- กฎการเข้ารหัสซาวน์เด็กซ์ของ วรรณี อุดมพาณิชย์ - Udom83 - -**การใช้งาน** - -```python ->>> from pythainlp.soundex import LK82,Udom83 ->>> print(LK82('รถ')) -ร3000 ->>> print(LK82('รด')) -ร3000 ->>> print(LK82('จัน')) -จ4000 ->>> print(LK82('จันทร์')) -จ4000 ->>> print(Udom83('รถ')) -ร800000 -``` - -### Meta Sound ภาษาไทย - -``` -Snae & Brückner. (2009). Novel Phonetic Name Matching Algorithm with a Statistical Ontology for Analysing Names Given in Accordance with Thai Astrology. Retrieved from https://pdfs.semanticscholar.org/3983/963e87ddc6dfdbb291099aa3927a0e3e4ea6.pdf -``` - -**การใช้งาน** - -```python ->>> from pythainlp.MetaSound import * ->>> MetaSound('คน') -'15' -``` - -### sentiment - -เป็น Sentiment analysis ภาษาไทย ใช้ข้อมูลจาก [https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/](https://github.com/wannaphongcom/lexicon-thai/tree/master/ข้อความ/) - -```python -from pythainlp.sentiment import sentiment -sentiment(str) -``` - -รับค่า str ส่งออกเป็น pos , neg - -### Util - -การใช้งาน - -```python -from pythainlp.util import * -``` - -#### ngrams - -สำหรับสร้าง n-grams - -```python -ngrams(token,num) -``` - -- token คือ list -- num คือ จำนวน ngrams - -#### bigrams - -สำหรับสร้าง bigrams - -```python -bigrams(token) -``` - -- token คือ list - -#### trigram - -สำหรับสร้าง trigram - -```python -trigram(token) -``` - -- token คือ list - -#### normalize - -ซ่อมข้อความภาษาไทย เช่น กี่่่ ไปเป็น กี่ - -```python -normalize(text) -``` - -**ตัวอย่าง** - -```python ->>> print(normalize("เเปลก")=="แปลก") # เ เ ป ล ก กับ แปลก -True -``` - -### Corpus - -#### WordNet ภาษาไทย - -เรียกใช้งาน - -```python -from pythainlp.corpus import wordnet -``` - -**การใช้งาน** - -API เหมือนกับ NLTK โดยรองรับ API ดังนี้ - -- wordnet.synsets(word) -- wordnet.synset(name_synsets) -- wordnet.all_lemma_names(pos=None, lang="tha") -- wordnet.all_synsets(pos=None) -- wordnet.langs() -- wordnet.lemmas(word,pos=None,lang="tha") -- wordnet.lemma(name_synsets) -- wordnet.lemma_from_key(key) -- wordnet.path_similarity(synsets1,synsets2) -- wordnet.lch_similarity(synsets1,synsets2) -- wordnet.wup_similarity(synsets1,synsets2) -- wordnet.morphy(form, pos=None) -- wordnet.custom_lemmas(tab_file, lang) - -**ตัวอย่าง** - -```python ->>> from pythainlp.corpus import wordnet ->>> print(wordnet.synsets('หนึ่ง')) -[Synset('one.s.05'), Synset('one.s.04'), Synset('one.s.01'), Synset('one.n.01')] ->>> print(wordnet.synsets('หนึ่ง')[0].lemma_names('tha')) -[] ->>> print(wordnet.synset('one.s.05')) -Synset('one.s.05') ->>> print(wordnet.synset('spy.n.01').lemmas()) -[Lemma('spy.n.01.spy'), Lemma('spy.n.01.undercover_agent')] ->>> print(wordnet.synset('spy.n.01').lemma_names('tha')) -['สปาย', 'สายลับ'] -``` - -#### stopword ภาษาไทย - -```python -from pythainlp.corpus import stopwords -stopwords = stopwords.words('thai') -``` - -#### ชื่อประเทศ ภาษาไทย - -```python -from pythainlp.corpus import country -country.get_data() -``` - -#### ตัววรรณยุกต์ในภาษาไทย - -```python -from pythainlp.corpus import tone -tone.get_data() -``` - -#### ตัวพยัญชนะในภาษาไทย - -```python -from pythainlp.corpus import alphabet -alphabet.get_data() -``` - -#### รายการคำในภาษาไทย - -```python -from pythainlp.corpus.thaiword import get_data # ข้อมูลเก่า -get_data() -from pythainlp.corpus.newthaiword import get_data # ข้อมูลใหม่ -get_data() -``` - -#### provinces - -สำหรับจัดการชื่อจังหวัดในประเทศไทย - -##### get_data - -รับข้อมูลชื่อจังหวัดในประเทศไทบ - -```python -get_data() -``` - -คือค่าออกมาเป็น list - -##### parsed_docs - -สำหรับใช้ Tag ชื่อจังหวัดในประเทศไทย - -```python -parsed_docs(text_list) -``` - -text_list คือ ข้อความภาษาไทยที่อยู่ใน list โดยผ่านการตัดคำมาแล้ว - -**ตัวอย่าง** - -```python ->>> d=['หนองคาย', 'เป็น', 'เมือง', 'น่าอยู่', 'อันดับ', 'ต้น', 'ๆ', 'ของ', 'โลก', 'นอกจากนี้', 'ยัง', 'มี', 'เชียงใหม่'] ->>> parsed_docs(d) -["[LOC : 'หนองคาย']", 'เป็น', 'เมือง', 'น่าอยู่', 'อันดับ', 'ต้น', 'ๆ', 'ของ', 'โลก', 'นอกจากนี้', 'ยัง', 'มี', "[LOC : 'เชียงใหม่']"] -``` - -#### ConceptNet - -เครื่องมือสำหรับ ConceptNet - -**ค้นหา edges** - -```python -edges(word,lang='th') -``` - -return dict - -#### TNC - -สำหรับใช้จัดการกับ Thai National Corpus (http://www.arts.chula.ac.th/~ling/TNC/index.php) - -##### word_frequency - -ใช้วัดความถี่ของคำ - -```python -word_frequency(word,domain='all') -``` - -word คือ คำ - -domain คือ หมวดหมู่ของคำ - -มีหมวดหมู่ดังนี้ - -- all -- imaginative -- natural-pure-science -- applied-science -- social-science -- world-affairs-history -- commerce-finance -- arts -- belief-thought -- leisure -- others - -เขียนโดย PyThaiNLP diff --git a/docs/archive/pythainlp-1-7.md b/docs/archive/pythainlp-1-7.md deleted file mode 100644 index 09a8b76a0..000000000 --- a/docs/archive/pythainlp-1-7.md +++ /dev/null @@ -1 +0,0 @@ -See https://thainlp.org/pythainlp/docs/1.7/ diff --git a/docs/archive/pythainlp-dev-thai.md b/docs/archive/pythainlp-dev-thai.md deleted file mode 100644 index ec7c575d1..000000000 --- a/docs/archive/pythainlp-dev-thai.md +++ /dev/null @@ -1,599 +0,0 @@ -# คู่มือการใช้งาน PyThaiNLP - -[TOC] - -โมดูล PyThaiNLP เป็นโมดูลที่ถูกพัฒนาขึ้นเพื่อประมวลภาษาไทยด้วยภาษาโปรแกรม Python และ**มันฟรี (ตลอดไป) เพื่อคนไทยและชาวโลกทุกคน!** - -> เพราะโลกขับเคลื่อนต่อไปด้วยการแบ่งปัน - -รองรับ Python 3.4 ขึ้นไปเท่านั้น - -ติดตั้งโดยใช้คำสั่ง - -``` -pip install pythainlp -``` - -ปัจจุบัน PyThaiNLP ไม่จำเป็นต้องใช้ PyICU แล้ว แต่หากท่านต้องการใช้ API ที่มี PyICU ให้ทำตามคำแนะนำข้างล่างนี้ - -**ติดตั้ง PyICU บน Windows** - -การติดตั้ง PyThaiNLP บน Windows ต้องติดตั้ง PyICU ก่อน วิธีที่ง่ายที่สุดคือใช้ wheel ที่ถูกสร้างมาก่อนแล้ว - -1. ดาวน์โหลด wheel ตามแพลตฟอร์มที่ต้องการจาก [http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu](http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyicu) เช่น Python x64 3.6 บน Windows ให้ใช้ PyICU‑2.x‑cp36‑cp36m‑win_amd64.whl - -2. `pip install PyICU‑2.1‑cp36‑cp36m‑win_amd64.whl` - -3. `pip install pythainlp` - -**ติดตั้ง PyICU บน macOS** - -```sh -brew install icu4c --force -brew link --force icu4c -CFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib pip install pythainlp -``` - -ข้อมูลเพิ่มเติมที่ https://medium.com/data-science-cafe/install-polyglot-on-mac-3c90445abc1f - -## API - -### tokenize - -#### word_tokenize - -ตัดคำภาษาไทย - -```python -from pythainlp.tokenize import word_tokenize - -word_tokenize(text, engine) -``` -text คือ ข้อความในรูปแบบสตริง str เท่านั้น - -engine คือ ระบบตัดคำ ปัจจุบันมี engine ดังนี้ - -- newmm (ค่าเริ่มต้น) - ใช้พจนานุกรม ด้วยวิธี Maximum Matching + Thai Character Cluster โค้ดชุดใหม่[โดยคุณ Korakot Chaovavanich](https://www.facebook.com/groups/408004796247683/permalink/431283740586455/) -- longest - ใช้พจนานุกรม ด้วยวิธี Longest Matching -- icu - เรียกใช้ตัวตัดคำจาก ICU ใช้พจนานุกรม (ความแม่นยำต่ำ) -- deepcut - เรียกใช้ตัวตัดคำจาก [deepcut](https://github.com/rkcosmos/deepcut) ใช้การเรียนรู้ของเครื่อง - -คืนค่าเป็น ''list'' เช่น ['แมว', 'กิน'] - -**การใช้งาน** - -```python -from pythainlp.tokenize import word_tokenize - -text = "โอเคบ่เรารักภาษาถิ่น" -word_tokenize(text, engine="newmm") # ['โอเค', 'บ่', 'เรา', 'รัก', 'ภาษาถิ่น'] -word_tokenize(text, engine="icu") # ['โอ', 'เค', 'บ่', 'เรา', 'รัก', 'ภาษา', 'ถิ่น'] -``` - -#### dict_word_tokenize - -ตัดคำโดยใช้พจนานุกรมที่ผู้ใช้กำหนด - -```python -from pythainlp.tokenize import dict_word_tokenize -dict_word_tokenize(text, filename, engine) -``` - -text คือ ข้อความที่ต้องการตัดคำ - -filename คือ ที่ตั้งไฟล์ที่ต้องการมาเป็นฐานข้อมูลตัดคำ - -engine คือ ระบบตัดคำ (ดูรายละเอียดที่ word_tokenize) -- newmm -- longest - -ตัวอย่างการใช้งาน https://gist.github.com/wannaphongcom/1e862583051bf0464b6ef4ed592f739c - - -#### sent_tokenize - -ตัดประโยคภาษาไทย - -```python -sent_tokenize(text, engine="whitespace+newline") -``` - -text คือ ข้อความในรูปแบบสตริง - -engine คือ เครื่องมือสำหรับใช้ตัดประโยค - -- whitespace ตัดประโยคจากช่องว่าง -- whitespace+newline ตัดประโยคจากช่องว่างและตัดจากการขึ้นบรรทัดใหม่ - -คืนค่าเป็น list - -#### WhitespaceTokenizer - -ใช้ตัดคำ/ประโยคจากช่องว่างในสตริง - -```python -from pythainlp.tokenize import WhitespaceTokenizer - -WhitespaceTokenizer("ทดสอบ ตัดคำช่องว่าง") # ['ทดสอบ', 'ตัดคำช่องว่าง'] -``` - - -#### isthai - -ตรวจสอบข้อความว่ามีอักษรไทยร้อยละเท่าใด - -```python -isthai(text, check_all=False) -``` - -text คือ ข้อความหรือ list ตัวอักษร - -check_all สำหรับส่งคืนค่า True หรือ False เช็คทุกตัวอักษร - -**การส่งคืนค่า** - -```python -{'thai':% อักษรภาษาไทย,'check_all':tuple โดยจะเป็น (ตัวอักษร,True หรือ False)} -``` - -#### Thai Character Clusters (TCC) - -รองรับ Thai Character Clusters (TCC) โดยจะแบ่งกลุ่มด้วย / - -**เครดิต** - -- TCC: Jakkrit TeCho -- Grammar: Wittawat Jitkrittum (https://github.com/wittawatj/jtcc/blob/master/TCC.g) -- Python code: Korakot Chaovavanich - -**การใช้งาน** - -```python -from pythainlp.tokenize import tcc - -tcc.tcc("ประเทศไทย") # 'ป/ระ/เท/ศ/ไท/ย' -``` - -#### Enhanced Thai Character Cluster (ETCC) - -นอกจาก TCC แล้ว PyThaiNLP ยังรองรับ Enhanced Thai Character Cluster (ETCC) โดยแบ่งกลุ่มด้วย / - -**การใช้งาน** - -```python -from pythainlp.tokenize import etcc - -etcc.etcc('คืนความสุข') # '/คืน/ความสุข' -``` - -### tag - -Part-of-speech tagging ภาษาไทย - -```python -from pythainlp.tag import pos_tag - -pos_tag(text, engine="unigram", corpus="orchid") -``` - -list คือ list ที่เก็บข้อความหลังผ่านการตัดคำแล้ว - -engine คือ ตัวติดป้ายกำกับคำ (pos tagger) มีดังนี้ -- unigram (ค่าเริ่มต้น) - UnigramTagger -- perceptron - PerceptronTagger -- artagger - RDR POS Tagger ละเอียดยิ่งกว่าเดิม - -corpus ที่รองรับ -- orchid ใช้ข้อมูลจากคลังคำ ORCHID โดยเนคเทค -- pud ใช้ข้อมูล Parallel Universal Dependencies (PUD) treebanks - -### summarize - -สรุปเอกสารภาษาไทยแบบง่าย ๆ - -```python -summarize(text, n, engine="frequency") -``` - -text เป็นข้อความ - -n คือ จำนวนประโยคสรุป - -engine ที่รองรับ -- frequency - -**การใช้งาน** - -```python -from pythainlp.summarize import summarize - -summarize(text="อาหาร หมายถึง ของแข็งหรือของเหลว ที่กินหรือดื่มเข้าสู่ร่างกายแล้ว จะทำให้เกิดพลังงานและความร้อนยเจริญเติบโต ซ่อมแซมส่วนที่สึกหรอ ควบคุมการเปลี่ยนแปลงต่างๆ ในร่างกาย ช่วยทำให้อวัยวะต่างๆ ทำงานได้อย่างปกติ อาหารจะต้องงกาย", n=1, engine="frequency") -# ['อาหารจะต้องไม่มีพิษและไม่เกิดโทษต่อร่างกาย'] -``` - -### word_vector - -สร้างเวกเตอร์คำ - - -#### thai2fit - -ต้องการโมดูล -- gensim -- numpy - -##### API - -- get_model() - รับข้อมูล model ในรูปแบบของ gensim -- most_similar_cosmul(positive, negative) -- doesnt_match(listdata) -- similarity(word1, word2) - หาค่าความคล้ายระหว่าง 2 คำ โดยทั้งคู่เป็น str -- sentence_vectorizer(ss, dim=300, use_mean=False) - -### keywords - -หาคำสำคัญจากข้อความภาษาไทย - -#### find_keyword - -การทำงาน หาคำที่ถูกใช้งานมากกว่าค่าขั้นต่ำที่กำหนดได้ โดยจะลบ stopword ออก - -```python -from pythainlp.util import find_keyword - -find_keyword(word_list, lentext=3) -``` - -word_list คือ list ของข้อความที่ตัดคำแล้ว - -lentext คือ จำนวนคำขั้นต่ำที่ต้องการหา keyword - -คืนค่าเป็น dict - -### transliteration - -```python -from pythainlp.transliterate import romanize, transliterate - -romanize(str, engine="royin") -transliterate(str, engine="pyicu") -``` - -มี engine ดังนี้ -- pyicu ส่งค่าสัทอักษร -- royin ใช้หลักเกณฑ์การถอดอักษรไทยเป็นอักษรโรมัน ฉบับราชบัณฑิตยสถาน (**หากมีข้อผิดพลาด ให้ใช้คำอ่าน เนื่องจากตัว royin ไม่มีตัวแปลงคำเป็นคำอ่าน**) - -รับค่า ''str'' ข้อความ - -คืนค่าเป็น ''str'' ข้อความ - -**ตัวอย่าง** - -```python -from pythainlp.transliterate import romanize, transliterate - -romanize("แมว") # 'maew' -transliterate("นก") -``` - -### spell - -ตรวจสอบคำผิดในภาษาไทย - -```python -spell(word, engine="pn") -``` - -engine ที่รองรับ -- pn (ค่าเริ่มต้น) พัฒนาจาก Peter Norvig - -**ตัวอย่างการใช้งาน** - -```python -from pythainlp.spell import spell - -a = spell("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` -#### pn - -```python -correct(word) -``` - -จะคืนค่าคำที่เป็นไปได้มากที่สุด - -**ตัวอย่างการใช้งาน** - -```python -from pythainlp.spell.pn import correct - -a = correct("สี่เหลียม") -print(a) # ['สี่เหลี่ยม'] -``` - -### pythainlp.number - -จัดการกับตัวเลข - -```python -from pythainlp.number import * -``` - -มีฟังก์ชันดังนี้ -- thai_num_to_num(str) - แปลงเลขไทยสู่เลขอารบิก -- thai_num_to_text(str) - เลขไทยสู่คำอ่านไทย -- num_to_thai_num(str) - เลขอารบิกสู่เลขไทย -- num_to_text(str) - เลขสู่ข้อความ -- text_to_num(str) - ข้อความสู่เลข -- bahttext(float) - อ่านจำนวนภาษาไทย (หน่วยเงินบาท) รับค่าเป็น ''float'' คืนค่าเป็น 'str' -- num_to_thaiword(float) - อ่านจำนวนภาษาไทย รับค่าเป็น ''float'' คืนค่าเป็น 'str' -- thaiword_to_num(List[str]) - แปลคำอ่านจำนวนไทยเป็นตัวเลขจำนวนเต็ม รับค่าเป็น ''List[str]'' คืนค่าเป็น int - -**ตัวอย่าง** - -```python -thaiword_to_num(["หกหมื่น", "หกพัน", "หกร้อย", "หกสิบ", "หก"]) # 66666 -``` - -### collation - -เรียงลำดับข้อมูลภาษาไทยใน List - -```python -from pythainlp.util import collate -print(collate(["ไก่", "ไข่", "กา", "ฮา"])) # ['กา', 'ไก่', 'ไข่', 'ฮา'] -``` - -รับ list คืนค่า list - -### date - -#### thai_strftime - -จัดรูปแบบข้อความบอกวันที่และเวลาเป็นภาษาไทยและปีพุทธศักราช - -```python -import datetime -from pythainlp.util import thai_strftime - -fmt = "%Aที่ %-d %B พ.ศ. %Y เวลา %H:%Mน. (%a %d-%b-%y)" -date = datetime.datetime(1976, 10, 6, 1, 40) -print(thai_strftime(date, fmt)) -# วันพุธที่ 6 ตุลาคม พ.ศ. 2519 เวลา 01:40น. (พ 06-ต.ค.-19) -``` -### rank - -#### rank - -หาคำที่มีจำนวนการใช้งานมากที่สุด - -```python -from pythainlp.util import rank - -rank(list) -``` - -คืนค่าออกมาเป็น dict - -**ตัวอย่างการใช้งาน** - -```python -rank(["แมง", "แมง", "คน"]) # Counter({'แมง': 2, 'คน': 1}) -``` - -### soundex - -กฎที่รองรับ -- lk82 - กฎการเข้ารหัสซาวน์เด็กซ์ของ วิชิตหล่อจีระชุณห์กุล และ เจริญ คุวินทร์พันธุ์ -- udom83 - กฎการเข้ารหัสซาวน์เด็กซ์ของ วรรณี อุดมพาณิชย์ -- metasound - กฎการเข้ารหัส MetaSound ของ Snae & Brückner (2009) - -เครดิต -- โค้ด lk82 และ udom83 - Korakot Chaovavanich https://gist.github.com/korakot/0b772e09340cac2f493868da035597e8 -- โค้ด metasound - Wannaphong Phattiyaphaibun, ปรับปรุงต่อโดย Arthit Suriyawongkul - -**การใช้งาน** - -```python -from pythainlp.soundex import lk82, metasound, udom83 - -print(lk82("รถ")) # ร3000 -print(lk82("รด")) # ร3000 -print(lk82("จัน")) # จ4000 -print(lk82("จันทร์")) # จ4000 -print(udom83("รถ")) # ร800000 -print(metasound("รัก")) # 'ร100' -``` - -### Util - -#### normalize - -ซ่อมข้อความภาษาไทย - -```python -normalize(text) -``` - -**ตัวอย่าง** - -```python -from pythainlp.util import normalize - -# เ เ ป ล ก กับ แปลก -normalize("เเปลก") == "แปลก" # True -``` - -#### แก้ไขปัญหาการลืมเปลี่ยนภาษาแป้นพิมพ์ - -```python -from pythainlp.util import eng_to_thai, thai_to_eng -``` - -มีคำสั่งดังนี้ - -- eng_to_thai(str) แปลงแป้นตัวอักษรอังกฤษเป็นไทย -- thai_to_eng(str) แปลงแป้นตัวอักษรไทยเป็นอังกฤษ - -คืนค่าออกมาเป็น str - -### Corpus - -#### WordNet ภาษาไทย - -เรียกใช้งาน - -```python -from pythainlp.corpus import wordnet -``` - -**การใช้งาน** - -API เหมือนกับ NLTK โดยรองรับ API ดังนี้ - -- wordnet.synsets(word) -- wordnet.synset(name_synsets) -- wordnet.all_lemma_names(pos=None, lang="tha") -- wordnet.all_synsets(pos=None) -- wordnet.langs() -- wordnet.lemmas(word,pos=None,lang="tha") -- wordnet.lemma(name_synsets) -- wordnet.lemma_from_key(key) -- wordnet.path_similarity(synsets1,synsets2) -- wordnet.lch_similarity(synsets1,synsets2) -- wordnet.wup_similarity(synsets1,synsets2) -- wordnet.morphy(form, pos=None) -- wordnet.custom_lemmas(tab_file, lang) - -**ตัวอย่าง** - -```python -from pythainlp.corpus import wordnet - -print(wordnet.synsets("หนึ่ง")) -# [Synset('one.s.05'), Synset('one.s.04'), Synset('one.s.01'), Synset('one.n.01')] - -print(wordnet.synsets("หนึ่ง")[0].lemma_names("tha")) -# [] - -print(wordnet.synset("one.s.05")) -# Synset('one.s.05') - -print(wordnet.synset("spy.n.01").lemmas()) -# [Lemma('spy.n.01.spy'), Lemma('spy.n.01.undercover_agent')] - -print(wordnet.synset("spy.n.01").lemma_names("tha")) -# ['สปาย', 'สายลับ'] -``` - -#### พยัญชนะในภาษาไทย - -```python -from pythainlp import thai_consonants -``` - -จะได้ str ที่มีพยัญชนะในภาษาไทยทั้งหมด - -#### วรรณยุกต์ในภาษาไทย - -```python -from pythainlp import thai_tonemarks -``` -จะได้ str ที่มีวรรณยุกต์ในภาษาไทยทั้งหมด - -#### stopword ภาษาไทย - -```python -from pythainlp.corpus import thai_stopwords - -stopwords = thai_stopwords() -``` - -#### รายการคำในภาษาไทย - -```python -from pythainlp.corpus import thai_words - -words = thai_words() -``` - -#### ชื่อประเทศ ภาษาไทย - -```python -from pythainlp.corpus import countries - -for country in countries(): - print(country) -``` - -#### provinces - -ข้อมูลชื่อจังหวัดในประเทศไทย - -```python -from pythainlp.corpus import provinces - -for province in provinces(): - print(province) -``` - -##### tag_provinces - -สำหรับใช้ติดป้ายกำกับชื่อจังหวัดในประเทศไทย - -```python -from pythainlp.tag.locations import tag_provinces - -tag_provinces(text_list) -``` - -text_list คือ ข้อความภาษาไทยที่อยู่ใน list โดยผ่านการตัดคำมาแล้ว - -**ตัวอย่าง** -```python -text = ['หนองคาย', 'น่าอยู่'] -tag_provinces(text) -# [('หนองคาย', 'B-LOCATION'), ('น่าอยู่', 'O')] -``` - -#### ConceptNet - -เครื่องมือสำหรับ ConceptNet - -**ค้นหา edges** - -```python -edges(word, lang="th") -``` - -return dict - -#### TNC - -สำหรับใช้จัดการกับ Thai National Corpus (http://www.arts.chula.ac.th/~ling/TNC/index.php) - -##### word_freq - -ใช้วัดความถี่ของคำ - -```python -word_freq(word, domain="all") -``` - -word คือ คำ - -domain คือ หมวดหมู่ของคำ - -มีหมวดหมู่ดังนี้ -- all -- imaginative -- natural-pure-science -- applied-science -- social-science -- world-affairs-history -- commerce-finance -- arts -- belief-thought -- leisure -- others diff --git a/tests/__init__.py b/tests/__init__.py index 11aa934fe..4a37baed6 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -371,7 +371,7 @@ def test_word_tokenize_mm(self): ["ฉัน", "รัก", "ภาษาไทย", "เพราะ", "ฉัน", "เป็น", "คนไทย"], ) - self.assertIsNone(multi_cut.mmcut("ทดสอบ")) + self.assertIsNotNone(multi_cut.mmcut("ทดสอบ")) self.assertIsNotNone(multi_cut.find_all_segment("รถไฟฟ้ากรุงเทพมหานครBTS")) self.assertEqual(multi_cut.find_all_segment(None), []) From eaedee2be402ffd38b9429b5efb88c411bfcb572 Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sat, 20 Apr 2019 23:43:46 +0200 Subject: [PATCH 28/30] Put version number in sphinx doc --- docs/conf.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 5c2db572b..cdb7e7fe4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,9 +1,6 @@ # -*- coding: utf-8 -*- # # Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: # http://www.sphinx-doc.org/en/master/config # -- Path setup -------------------------------------------------------------- @@ -27,9 +24,9 @@ copyright = u'2017-%s, %s (Apache Software License 2.0)' % (curyear, project) # The short X.Y version -version = '' +version = '2.0' # The full version, including alpha/beta/rc tags -release = '2.0' +release = '2.0.3' # -- General configuration --------------------------------------------------- From 7671f0e27e0fd082f2b7200f062228d7b042722a Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sun, 21 Apr 2019 00:43:33 +0200 Subject: [PATCH 29/30] Update version number to 2.0.4 --- README.md | 4 ++-- bin/pythainlp | 2 +- conda.recipe/meta.yaml | 2 +- meta.yaml | 2 +- pythainlp/__init__.py | 2 +- setup.cfg | 2 +- setup.py | 2 +- tests/__init__.py | 1 + 8 files changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bec7ab474..f78384709 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ PyThaiNLP is a Python package for text processing and linguistic analysis, simil **This is a document for development branch (post 2.0). Things will break.** -- The latest stable release is [2.0.3](https://github.com/PyThaiNLP/pythainlp/tree/master) +- The latest stable release is [2.0.4](https://github.com/PyThaiNLP/pythainlp/tree/master) - PyThaiNLP 2 supports Python 3.6+. Some functions may work with older version of Python 3, but it is not well-tested and will not be supported. See [change log](https://github.com/PyThaiNLP/pythainlp/issues/118). - [Upgrading from 1.7](https://thainlp.org/pythainlp/docs/2.0/notes/pythainlp-1_7-2_0.html) - [Upgrade ThaiNER from 1.7](https://github.com/PyThaiNLP/pythainlp/wiki/Upgrade-ThaiNER-from-PyThaiNLP-1.7-to-PyThaiNLP-2.0) @@ -106,7 +106,7 @@ PyThaiNLP เป็นไลบารีภาษาไพทอนเพื่ **เอกสารนี้สำหรับรุ่นพัฒนา อาจมีการเปลี่ยนแปลงได้ตลอด** -- รุ่นเสถียรล่าสุดคือรุ่น [2.0.3](https://github.com/PyThaiNLP/pythainlp/tree/master) +- รุ่นเสถียรล่าสุดคือรุ่น [2.0.4](https://github.com/PyThaiNLP/pythainlp/tree/master) - PyThaiNLP 2 รองรับ Python 3.6 ขึ้นไป - ผู้ใช้ Python 2.7+ ยังสามารถใช้ PyThaiNLP 1.6 ได้ diff --git a/bin/pythainlp b/bin/pythainlp index 71d2a1686..d49f9fd3d 100644 --- a/bin/pythainlp +++ b/bin/pythainlp @@ -1,7 +1,7 @@ #!python3 # -*- coding: utf-8 -*- -_VERSION = "2.0.3" +_VERSION = "2.0.4" import argparse diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index 7d493cd50..71dd45e27 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.3" %} +{% set version = "2.0.4" %} package: name: pythainlp diff --git a/meta.yaml b/meta.yaml index 78d7a4794..52ebb1d37 100644 --- a/meta.yaml +++ b/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "2.0.3" %} +{% set version = "2.0.4" %} package: name: pythainlp diff --git a/pythainlp/__init__.py b/pythainlp/__init__.py index 6ad04250e..c316fa4e9 100644 --- a/pythainlp/__init__.py +++ b/pythainlp/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -__version__ = "2.0.3" +__version__ = "2.0.4" thai_consonants = "กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮ" # 44 chars thai_vowels = "ฤฦะ\u0e31าำ\u0e34\u0e35\u0e36\u0e37\u0e38\u0e39เแโใไ\u0e45\u0e47" # 19 diff --git a/setup.cfg b/setup.cfg index 785b90fc3..4a4459102 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.0.3 +current_version = 2.0.4 commit = True tag = True diff --git a/setup.py b/setup.py index a6678cb86..7449ada24 100644 --- a/setup.py +++ b/setup.py @@ -34,7 +34,7 @@ setup( name="pythainlp", - version="2.0.3", + version="2.0.4", description="Thai Natural Language Processing library", long_description=readme, long_description_content_type="text/markdown", diff --git a/tests/__init__.py b/tests/__init__.py index 4a37baed6..3e8782c3f 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -357,6 +357,7 @@ def test_word_tokenize_deepcut(self): def test_word_tokenize_longest(self): self.assertEqual(longest.segment(None), []) self.assertEqual(longest.segment(""), []) + self.assertIsNotNone(longest.segment("กรุงเทพฯมากๆเพราโพาง BKKฯ")) self.assertEqual( word_tokenize("ฉันรักภาษาไทยเพราะฉันเป็นคนไทย", engine="longest"), ["ฉัน", "รัก", "ภาษาไทย", "เพราะ", "ฉัน", "เป็น", "คนไทย"], From 92da9e017b01726077a8e8cd898131f0c63dae9e Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Sun, 21 Apr 2019 01:03:07 +0200 Subject: [PATCH 30/30] update readme --- README-pypi.md | 4 +-- README.md | 84 +++++++++++++++++++++---------------------- docs/api/tokenize.rst | 4 +-- 3 files changed, 46 insertions(+), 46 deletions(-) diff --git a/README-pypi.md b/README-pypi.md index 05a7e2d11..51ad0707b 100644 --- a/README-pypi.md +++ b/README-pypi.md @@ -11,8 +11,8 @@ PyThaiNLP includes Thai word tokenizers, transliterators, soundex converters, pa ## What's new in 2.0 ? - Terminate Python 2 support. Remove all Python 2 compatibility code. -- Improved `word_tokenize` ("newmm" and "mm" engine) and `dict_word_tokenize` -- Improved Part-Of-Speech tagging +- Improved `word_tokenize` ("newmm" and "mm" engine), a `custom_dict` dictionary can be provided +- Improved `pos_tag` Part-Of-Speech tagging - New `NorvigSpellChecker` spell checker class, which can be initialized with custom dictionary. - New `thai2fit` (replacing `thai2vec`, upgrade ULMFiT-related code to fastai 1.0) - Updated ThaiNER to 1.0 diff --git a/README.md b/README.md index f78384709..287470aee 100644 --- a/README.md +++ b/README.md @@ -26,15 +26,15 @@ PyThaiNLP is a Python package for text processing and linguistic analysis, simil ## Capabilities -- Convenient character and word classes, like Thai consonants (```pythainlp.thai_consonants```), vowels (```pythainlp.thai_vowels```), digits (```pythainlp.thai_digits```), and stop words (```pythainlp.corpus.thai_stopwords```) -- comparable to constants like ```string.letters```, ```string.digits```, and ```string.punctuation``` -- Thai word segmentation (```word_tokenize```), including subword segmentation based on Thai Character Cluster (```subword_tokenize```) -- Thai transliteration (```transliterate```) -- Thai part-of-speech taggers (```pos_tag```) -- Read out number to Thai words (```bahttext```, ```num_to_thaiword```) -- Thai collation (sort by dictionoary order) (```collate```) -- Thai-English keyboard misswitched fix (```eng_to_thai```, ```thai_to_eng```) -- Thai spelling suggestion and correction (```spell``` and ```correct```) -- Thai soundex (```lk82```, ```udom83```, ```metasound```) +- Convenient character and word classes, like Thai consonants (`pythainlp.thai_consonants`), vowels (`pythainlp.thai_vowels`), digits (`pythainlp.thai_digits`), and stop words (`pythainlp.corpus.thai_stopwords`) -- comparable to constants like `string.letters`, `string.digits`, and `string.punctuation` +- Thai word segmentation (`word_tokenize`), including subword segmentation based on Thai Character Cluster (`subword_tokenize`) +- Thai transliteration (`transliterate`) +- Thai part-of-speech taggers (`pos_tag`) +- Read out number to Thai words (`bahttext`, `num_to_thaiword`) +- Thai collation (sort by dictionoary order) (`collate`) +- Thai-English keyboard misswitched fix (`eng_to_thai`, `thai_to_eng`) +- Thai spelling suggestion and correction (`spell` and `correct`) +- Thai soundex (`soundex`) with three engines (`lk82`, `udom83`, `metasound`) - Thai WordNet wrapper - and much more - see examples in [PyThaiNLP Get Started notebook](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb). @@ -62,20 +62,20 @@ For some advanced functionalities, like word vector, extra packages may be neede $ pip install pythainlp[extra1,extra2,...] ``` -where ```extras``` can be - - ```artagger``` (to support artagger part-of-speech tagger)* - - ```deepcut``` (to support deepcut machine-learnt tokenizer) - - ```icu``` (for ICU, International Components for Unicode, support in transliteration and tokenization) - - ```ipa``` (for IPA, International Phonetic Alphabet, support in transliteration) - - ```ml``` (to support fastai 1.0.22 ULMFiT models) - - ```ner``` (for named-entity recognizer) - - ```thai2fit``` (for Thai word vector) - - ```thai2rom``` (for machine-learnt romanization) - - ```full``` (install everything) +where `extras` can be + - `artagger` (to support artagger part-of-speech tagger)* + - `deepcut` (to support deepcut machine-learnt tokenizer) + - `icu` (for ICU, International Components for Unicode, support in transliteration and tokenization) + - `ipa` (for IPA, International Phonetic Alphabet, support in transliteration) + - `ml` (to support fastai 1.0.22 ULMFiT models) + - `ner` (for named-entity recognizer) + - `thai2fit` (for Thai word vector) + - `thai2rom` (for machine-learnt romanization) + - `full` (install everything) -* Note: standard ```artagger``` package from PyPI will not work on Windows, please ```pip install https://github.com/wannaphongcom/artagger/tarball/master#egg=artagger``` instead. +* Note: standard `artagger` package from PyPI will not work on Windows, please ```pip install https://github.com/wannaphongcom/artagger/tarball/master#egg=artagger``` instead. -** see ```extras``` and ```extras_require``` in [```setup.py```](https://github.com/PyThaiNLP/pythainlp/blob/dev/setup.py) for package details. +** see `extras` and `extras_require` in [`setup.py`](https://github.com/PyThaiNLP/pythainlp/blob/dev/setup.py) for package details. ## Documentation @@ -114,15 +114,15 @@ PyThaiNLP เป็นไลบารีภาษาไพทอนเพื่ ## ความสามารถ -- ชุดค่าคงที่ตัวอักษระและคำไทยที่เรียกใช้ได้สะดวก เช่น พยัญชนะ (```pythainlp.thai_consonants```), สระ (```pythainlp.thai_vowels```), ตัวเลขไทย (```pythainlp.thai_digits```), และ stop word (```pythainlp.corpus.thai_stopwords```) -- เหมือนกับค่าคงที่อย่าง ```string.letters```, ```string.digits```, และ ```string.punctuation``` -- ตัดคำภาษาไทย (```word_tokenize```) และรองรับการตัดระดับต่ำกว่าคำโดยใช้ Thai Character Clusters (```subword_tokenize```) -- ถอดเสียงภาษาไทยเป็นอักษรละตินและสัทอักษร (```transliterate```) -- ระบุชนิดคำ (part-of-speech) ภาษาไทย (```pos_tag```) -- อ่านตัวเลขเป็นข้อความภาษาไทย (```bahttext```, ```num_to_thaiword```) -- เรียงลำดับคำตามพจนานุกรมไทย (```collate```) -- แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา (```eng_to_thai```, ```thai_to_eng```) -- ตรวจคำสะกดผิดในภาษาไทย (```spell```, ```correct```) -- soundex ภาษาไทย (```lk82```, ```udom83```, ```metasound```) +- ชุดค่าคงที่ตัวอักษระและคำไทยที่เรียกใช้ได้สะดวก เช่น พยัญชนะ (`pythainlp.thai_consonants`), สระ (`pythainlp.thai_vowels`), ตัวเลขไทย (`pythainlp.thai_digits`), และ stop word (`pythainlp.corpus.thai_stopwords`) -- เหมือนกับค่าคงที่อย่าง `string.letters`, `string.digits`, และ `string.punctuation` +- ตัดคำภาษาไทย (`word_tokenize`) และรองรับการตัดระดับต่ำกว่าคำโดยใช้ Thai Character Clusters (`subword_tokenize`) +- ถอดเสียงภาษาไทยเป็นอักษรละตินและสัทอักษร (`transliterate`) +- ระบุชนิดคำ (part-of-speech) ภาษาไทย (`pos_tag`) +- อ่านตัวเลขเป็นข้อความภาษาไทย (`bahttext`, `num_to_thaiword`) +- เรียงลำดับคำตามพจนานุกรมไทย (`collate`) +- แก้ไขปัญหาการพิมพ์ลืมเปลี่ยนภาษา (`eng_to_thai`, `thai_to_eng`) +- ตรวจคำสะกดผิดในภาษาไทย (`spell`, `correct`) +- soundex ภาษาไทย (`soundex`) 3 วิธีการ (`lk82`, `udom83`, `metasound`) - Thai WordNet wrapper - และอื่น ๆ ดูตัวอย่างได้ใน [PyThaiNLP Get Started notebook](https://github.com/PyThaiNLP/pythainlp/blob/dev/notebooks/pythainlp-get-started.ipynb) @@ -146,20 +146,20 @@ $ pip install https://github.com/PyThaiNLP/pythainlp/archive/dev.zip $ pip install pythainlp[extra1,extra2,...] ``` -โดยที่ ```extras``` คือ - - ```artagger``` (สำหรับตัวติดป้ายกำกับชนิดคำ artagger)* - - ```deepcut``` (สำหรับตัวตัดคำ deepcut) - - ```icu``` (สำหรับการถอดตัวสะกดเป็นสัทอักษรและการตัดคำด้วย ICU) - - ```ipa``` (สำหรับการถอดตัวสะกดเป็นสัทอักษรสากล (IPA)) - - ```ml``` (สำหรับการรองรับโมเดล ULMFiT) - - ```ner``` (สำหรับการติดป้ายชื่อเฉพาะ (named-entity)) - - ```thai2fit``` (สำหรับ word vector) - - ```thai2rom``` (สำหรับการถอดตัวสะกดเป็นอักษรละติน) - - ```full``` (ติดตั้งทุกอย่าง) +โดยที่ `extras` คือ + - `artagger` (สำหรับตัวติดป้ายกำกับชนิดคำ artagger)* + - `deepcut` (สำหรับตัวตัดคำ deepcut) + - `icu` (สำหรับการถอดตัวสะกดเป็นสัทอักษรและการตัดคำด้วย ICU) + - `ipa` (สำหรับการถอดตัวสะกดเป็นสัทอักษรสากล (IPA)) + - `ml` (สำหรับการรองรับโมเดล ULMFiT) + - `ner` (สำหรับการติดป้ายชื่อเฉพาะ (named-entity)) + - `thai2fit` (สำหรับ word vector) + - `thai2rom` (สำหรับการถอดตัวสะกดเป็นอักษรละติน) + - `full` (ติดตั้งทุกอย่าง) -* หมายเหตุ: แพคเกจ ```artagger``` มาตรฐานจาก PyPI อาจมีปัญหาการถอดรหัสข้อความบน Windows กรุณาติดตั้ง artagger รุ่นแก้ไขด้วยคำสั่ง ```pip install https://github.com/wannaphongcom/artagger/tarball/master#egg=artagger``` แทน ก่อนจะติดตั้ง PyThaiNLP +* หมายเหตุ: แพคเกจ `artagger` มาตรฐานจาก PyPI อาจมีปัญหาการถอดรหัสข้อความบน Windows กรุณาติดตั้ง artagger รุ่นแก้ไขด้วยคำสั่ง ```pip install https://github.com/wannaphongcom/artagger/tarball/master#egg=artagger``` แทน ก่อนจะติดตั้ง PyThaiNLP -** นักพัฒนาสามารถดู ```extras``` และ ```extras_require``` ใน [```setup.py```](https://github.com/PyThaiNLP/pythainlp/blob/dev/setup.py) สำหรับรายละเอียดแพคเกจของเสริม +** สามารถดู `extras` และ `extras_require` ใน [`setup.py`](https://github.com/PyThaiNLP/pythainlp/blob/dev/setup.py) สำหรับรายละเอียดแพคเกจของเสริม ## เอกสารการใช้งาน diff --git a/docs/api/tokenize.rst b/docs/api/tokenize.rst index dee8cda94..93cb11d97 100644 --- a/docs/api/tokenize.rst +++ b/docs/api/tokenize.rst @@ -8,10 +8,10 @@ The :class:`pythainlp.tokenize` contains multiple functions for tokenizing a chu Modules ------- +.. autofunction:: sent_tokenize .. autofunction:: word_tokenize -.. autofunction:: dict_word_tokenize +.. autofunction:: syllable_tokenize .. autofunction:: subword_tokenize -.. autofunction:: sent_tokenize .. autofunction:: dict_trie .. autoclass:: Tokenizer :members: word_tokenize, set_tokenize_engine