From 2b80f7950df34f2a160135d7e20220a9b2ec3352 Mon Sep 17 00:00:00 2001 From: polwex Date: Tue, 3 Jun 2025 01:36:36 +0700 Subject: got thai working but this is a bit too specific i think --- src/lib/calls/thainlp.ts | 106 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 src/lib/calls/thainlp.ts (limited to 'src/lib/calls/thainlp.ts') diff --git a/src/lib/calls/thainlp.ts b/src/lib/calls/thainlp.ts new file mode 100644 index 0000000..662e984 --- /dev/null +++ b/src/lib/calls/thainlp.ts @@ -0,0 +1,106 @@ +import { SyllableRes } from "../types/cards"; + +export type ThaiNLPRes = { + word: string; + normalized: string; + realSyls: string[]; + syllables: string[]; + syllablesIpa: string[]; + ipa: string; + pos: string; +}; + +export async function thaiData(word: string): Promise { + const [head, tail] = await Promise.all([ + analyzeTHWord(word), + segmentateThai(word), + ]); + return [head, ...tail]; +} + +export async function analyzeTHWord(word: string): Promise { + const opts = { + method: "POST", + headers: { "Content-type": "application/json" }, + body: JSON.stringify({ word }), + }; + const r1 = await fetch("http://localhost:8001" + "/analyze", opts); + // const r2 = await fetch(`http://192.168.1.110:8000/analyze`, opts); + const jj = await r1.json(); + return jj; +} +export async function segmentateThai(sentence: string): Promise { + const opts = { + method: "POST", + headers: { "Content-type": "application/json" }, + body: JSON.stringify({ word: sentence }), + }; + // const r1 = await fetch(`http://localhost:8000/segmentate`, opts); + const r2 = await fetch("http://localhost:8001" + `/segmentate`, opts); + const jj = await r2.json(); + return jj; +} +export async function getThaiFreq(word: string): Promise { + const opts = { + method: "POST", + headers: { "Content-type": "application/json" }, + body: JSON.stringify({ word }), + }; + // const r1 = await fetch(`http://localhost:8000/segmentate`, opts); + const r2 = await fetch("http://localhost:8001" + `/freq`, opts); + const jj = await r2.json(); + return jj; +} +export async function getThaiNext(word: string): Promise { + const opts = { + method: "POST", + headers: { "Content-type": "application/json" }, + body: JSON.stringify({ word }), + }; + // const r1 = await fetch(`http://localhost:8000/segmentate`, opts); + const r2 = await fetch("http://localhost:8001" + `/next`, opts); + const jj = await r2.json(); + return jj; +} + +export async function getThaiPrev(word: string): Promise { + const opts = { + method: "POST", + headers: { "Content-type": "application/json" }, + body: JSON.stringify({ word }), + }; + // const r1 = await fetch(`http://localhost:8000/segmentate`, opts); + const r2 = await fetch("http://localhost:8001" + `/prev`, opts); + const jj = await r2.json(); + return jj; +} + +export async function getThaiNext_bi( + word1: string, + word2: string, +): Promise { + const opts = { + method: "POST", + headers: { "Content-type": "application/json" }, + body: JSON.stringify({ word1, word2 }), + }; + // const r1 = await fetch(`http://localhost:8000/segmentate`, opts); + const r2 = await fetch("http://localhost:8001" + `/next_bi`, opts); + const jj = await r2.json(); + return jj; +} + +export async function getThaiPrev_bi( + word1: string, + word2: string, +): Promise { + const opts = { + method: "POST", + headers: { "Content-type": "application/json" }, + body: JSON.stringify({ word1, word2 }), + }; + // const r1 = await fetch(`http://localhost:8000/segmentate`, opts); + const r2 = await fetch("http://localhost:8001" + `/prev_bi`, opts); + const jj = await r2.json(); + return jj; +} -- cgit v1.2.3