pythainlp.wangchanberta
The pythainlp.wangchanberta module is built upon the WangchanBERTa base model, specifically the wangchanberta-base-att-spm-uncased model, as detailed in the paper by Lowphansirikul et al. [1].
This base model is utilized for various natural language processing tasks in the Thai language, including named entity recognition, part-of-speech tagging, and subword tokenization.
If you intend to fine-tune the model or explore its capabilities further, please refer to the thai2transformers repository.
Speed Benchmark
Function |
Named Entity Recognition |
Part of Speech |
|---|---|---|
PyThaiNLP basic function |
89.7 ms |
312 ms |
pythainlp.wangchanberta (CPU) |
9.64 s |
9.65 s |
pythainlp.wangchanberta (GPU) |
8.02 s |
8 s |
For a comprehensive performance benchmark, the following notebooks are available:
Modules
- class pythainlp.wangchanberta.NamedEntityRecognition(model: str = 'pythainlp/thainer-corpus-v2-base-model', revision: str | None = None)[source]
Recognize named entities in Thai text using WangchanBERTa.
The NamedEntityRecognition class is a fundamental component for identifying named entities in Thai text. It allows you to extract entities such as names, locations, and organizations from text data.
- __init__(model: str = 'pythainlp/thainer-corpus-v2-base-model', revision: str | None = None) None[source]
Initialize a named entity tagger in IOB format.
Powered by WangchanBERTa from the VISTEC-depa AI Research Institute of Thailand.
- tokenizer: PreTrainedTokenizerBase
- model: PreTrainedModel
- get_ner(text: str, pos: bool = False, tag: bool = False) list[tuple[str, str]] | str[source]
Tag named entities in text in IOB format.
Powered by WangchanBERTa from the VISTEC-depa AI Research Institute of Thailand.
- Parameters:
- Returns:
list of tuples (word group, named entity tag), or a string with HTML-like tags if tag is True
- Return type:
- class pythainlp.wangchanberta.ThaiNameTagger(dataset_name: str = 'thainer', grouped_entities: bool = True)[source]
Tag named entities in Thai text using WangchanBERTa.
The ThaiNameTagger class is designed for tagging Thai names within text. This is essential for tasks such as entity recognition, information extraction, and text classification.
- __init__(dataset_name: str = 'thainer', grouped_entities: bool = True) None[source]
Initialize a named entity tagger in IOB format.
Powered by WangchanBERTa from the VISTEC-depa AI Research Institute of Thailand.
- classify_tokens: TokenClassificationPipeline
- get_ner(text: str, pos: bool = False, tag: bool = False) list[tuple[str, str]] | str[source]
Tag named entities in text in IOB format.
Powered by WangchanBERTa from the VISTEC-depa AI Research Institute of Thailand.
- Parameters:
- Returns:
list of tuples (word group, named entity tag), or a string with HTML-like tags if tag is True
- Return type:
- pythainlp.wangchanberta.segment(text: str) list[str][source]
Tokenize text into subwords with the WangchanBERTa tokenizer.
The tokenizer is a SentencePiece model.
The segment function is a subword tokenization tool that breaks down text into subword units, offering a foundation for further text processing and analysis.