summaryrefslogtreecommitdiff
path: root/src/lib/calls/thainlp.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/calls/thainlp.ts')
-rw-r--r--src/lib/calls/thainlp.ts106
1 files changed, 106 insertions, 0 deletions
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<ThaiNLPRes[]> {
+ const [head, tail] = await Promise.all([
+ analyzeTHWord(word),
+ segmentateThai(word),
+ ]);
+ return [head, ...tail];
+}
+
+export async function analyzeTHWord(word: string): Promise<ThaiNLPRes> {
+ 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<ThaiNLPRes[]> {
+ 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<number> {
+ 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<string[]> {
+ 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<string[]> {
+ 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<string[]> {
+ 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<string[]> {
+ 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;
+}