File size: 1,631 Bytes
59fb62a
9dbb134
 
59fb62a
 
 
97cd79a
 
59fb62a
 
 
 
 
c1c8471
 
 
9dbb134
 
737b250
9dbb134
 
59fb62a
 
 
c1c8471
 
 
9dbb134
 
737b250
9dbb134
 
59fb62a
 
 
c1c8471
 
 
9dbb134
 
737b250
9dbb134
97cd79a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# -*- coding: utf-8 -*-
import json
from fastapi import APIRouter, Response
from pythainlp.util import (
    bahttext as py_bahttext,
    normalize as py_normalize,
    tone_detector as py_tone_detector,
    thaiword_to_num as py_thaiword_to_num
)
router = APIRouter()

@router.post('/bahttext')
def bahttext(number: float):
    """
    This api converts a number to Thai text and adds a suffix “บาท” (Baht). 
    """
    return Response(
        json.dumps({"bahttext": py_bahttext(number)}, ensure_ascii=False),
        media_type="application/json; charset=utf-8",
    )


@router.post('/normalize')
def normalize(text: str):
    """
    Normalize and clean Thai text
    """
    return Response(
        json.dumps({"text": py_normalize(text)}, ensure_ascii=False),
        media_type="application/json; charset=utf-8",
    )


@router.post('/tone_detector')
def tone_detector(syllable: str):
    """
    Thai tone detector for word.
    """
    return Response(
        json.dumps({"tone": py_tone_detector(syllable)}, ensure_ascii=False),
        media_type="application/json; charset=utf-8",
    )


@router.post("/thaiword_to_num")
def thaiword_to_num(text: str):
    """
    Converts the spelled-out numerals in Thai scripts into an actual integer.

    Example: 'สองล้านสามแสนหกร้อยสิบสอง' => 2300612, 'ศูนย์' => 0

    ## Input

    - **text**:  Spelled-out numerals in Thai scripts
    """
    return Response(
        json.dumps({"number": py_thaiword_to_num(text)}, ensure_ascii=False),
        media_type="application/json; charset=utf-8",
    )