Skip to main content

เริ่มต้นใช้งาน

kham v0.5.0 — เลือกแพลตฟอร์มที่ต้องการและเริ่มใช้งานได้ภายในไม่กี่นาที

🦀

Rust

Native crate — zero-copy, no_std core

ติดตั้ง

[dependencies]
kham-core = "0.5"

การใช้งาน

use kham_core::Tokenizer;

fn main() {
    let tok = Tokenizer::new();
    let tokens = tok.segment("กินข้าวกับปลา");
    println!("{:?}", tokens);
    // ["กิน", "ข้าว", "กับ", "ปลา"]
}
คู่มือการใช้งานแบบเต็ม →
🐍

Python

PyO3 bindings — segment() และ segment_tokens()

ติดตั้ง

pip install kham

การใช้งาน

import kham

words = kham.segment("กินข้าวกับปลา")
print(words)
# ['กิน', 'ข้าว', 'กับ', 'ปลา']

for tok in kham.segment_tokens("Hello กรุงเทพ 2024"):
    print(tok.text, tok.kind, tok.char_start, tok.char_end)
คู่มือการใช้งานแบบเต็ม →
🌐

WebAssembly / npm

ทำงานในเบราว์เซอร์และ Node.js — ไม่ต้องใช้เซิร์ฟเวอร์

ติดตั้ง

npm install kham-wasm

การใช้งาน

import init, { segment, segment_tokens } from 'kham-wasm';
await init();

const words = segment("กินข้าวกับปลา");
console.log(words);
// ["กิน", "ข้าว", "กับ", "ปลา"]
คู่มือการใช้งานแบบเต็ม →
💻

CLI

โปรแกรมตัดคำจาก command line

ติดตั้ง

cargo install kham-cli

การใช้งาน

# ตัดคำภาษาไทย
kham "กินข้าวกับปลา"
# กิน|ข้าว|กับ|ปลา

# โหมด FTS
kham --fts "กินข้าวกับปลา"

# FTS + phonetic code
kham --fts --soundex lk82 "กินข้าวกับปลา"
🐘

PostgreSQL FTS

extension ค้นหาข้อความแบบ Full-Text สำหรับ PostgreSQL 14+

ติดตั้ง

cargo build -p kham-pg --release
make -C kham-pg install

การใช้งาน

LOAD 'kham';
CREATE TEXT SEARCH CONFIGURATION kham_cfg (PARSER = kham);
ALTER TEXT SEARCH CONFIGURATION kham_cfg
  ADD MAPPING FOR thai WITH simple;

UPDATE docs SET tsv = to_tsvector('kham_cfg', body);
SELECT id FROM docs WHERE tsv @@ to_tsquery('kham_cfg', 'ข้าว');
คู่มือการใช้งานแบบเต็ม →
🗃️

SQLite FTS5

Loadable tokenizer extension สำหรับ SQLite FTS5

ติดตั้ง

cargo build -p kham-sqlite --release
# macOS: brew install sqlite

การใช้งาน

.load ./target/release/libkham_sqlite

CREATE VIRTUAL TABLE docs USING fts5(body, tokenize = 'kham');
INSERT INTO docs VALUES ('กินข้าวกับปลา');
SELECT * FROM docs WHERE docs MATCH 'ปลา';
คู่มือการใช้งานแบบเต็ม →