Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ndthuan/vi-word-segmenter
HTTP wrapper of the VnCoreNLP library - A Vietnamese natural language processing toolkit
https://github.com/ndthuan/vi-word-segmenter
docker-image java natural-language-processing pos-tagger spring-boot vietnamese vietnamese-nlp vietnamese-nlp-service vietnamese-tokenizer word-segmentation word-segmenter
Last synced: about 12 hours ago
JSON representation
HTTP wrapper of the VnCoreNLP library - A Vietnamese natural language processing toolkit
- Host: GitHub
- URL: https://github.com/ndthuan/vi-word-segmenter
- Owner: ndthuan
- License: gpl-3.0
- Created: 2020-04-04T18:05:51.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-03T08:18:13.000Z (10 months ago)
- Last Synced: 2024-11-16T23:14:43.871Z (2 months ago)
- Topics: docker-image, java, natural-language-processing, pos-tagger, spring-boot, vietnamese, vietnamese-nlp, vietnamese-nlp-service, vietnamese-tokenizer, word-segmentation, word-segmenter
- Language: Java
- Size: 82 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Word Segmentation Service
HTTP wrapper of the excellent VnCoreNLP library.
# Build Instruction
```shell script
docker build -t [your:tag] .
```# Docker
Prebuilt Docker images can be found at https://hub.docker.com/r/ndthuan/vi-word-segmenter.
Usage example:
```shell script
docker run --rm -p8080:8080 ndthuan/vi-word-segmenter:0.0.3
```# Client Libraries
## Golang
* https://github.com/ndthuan/go-vi-wordseg-client# Limitations
The underlying library is not thread safe and it's quite big to make improvements myself. For now the workaround is limiting number of threads to 1 in server config. In this case, it's `server.tomcat.max-threads=1` in Spring Boot's application.properties.
If you want to serve concurrent requests, just launch multiple Docker containers and use some load balancer.
# API Usage Examples
## Segmentation without tagging
Set `skipPunct=0` or remove it to include punctuations.
```shell script
curl -s -H 'Content-Type: application/json' -XPOST -d'{"text": "\"Bệnh nhân 83\", nữ, 50 tuổi, quốc tịch Mỹ trú tại Bình Thạnh, TP HCM. Trong 14 ngày trước nhập cảnh, bệnh nhân đi Phuket, Thái Lan và từ Istanbul, Thổ Nhĩ Kỳ về TP HCM ngày 15/3 và xét nghiệm dương tính. Bệnh nhân âm tính 3 lần liên tiếp trong 3 ngày 31/3 đến 2/4."}' 'http://localhost:8080/v1/segmenting?skipPunct=1' | jq{
"sentences": [
"Bệnh_nhân 83 nữ 50 tuổi quốc_tịch Mỹ trú tại Bình_Thạnh TP HCM",
"Trong 14 ngày trước nhập_cảnh bệnh_nhân đi Phuket Thái_Lan và từ Istanbul Thổ_Nhĩ_Kỳ về TP HCM ngày 15/3 và xét_nghiệm dương_tính",
"Bệnh_nhân âm_tính 3 lần liên_tiếp trong 3 ngày 31/3 đến 2/4"
]
}
```## Segmentation with POS/NER/DEP tagging
```shell script
curl -s -H 'Content-Type: application/json' -XPOST -d'{"text": "\"Bệnh nhân 83\", nữ, 50 tuổi, quốc tịch Mỹ trú tại Bình Thạnh, TP HCM. Trong 14 ngày trước nhập cảnh, bệnh nhân đi Phuket, Thái Lan và từ Istanbul, Thổ Nhĩ Kỳ về TP HCM ngày 15/3 và xét nghiệm dương tính. Bệnh nhân âm tính 3 lần liên tiếp trong 3 ngày 31/3 đến 2/4."}' 'http://localhost:8080/v1/tagging' | jq{
"sentences": [
[
{
"form": "\"",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "Bệnh_nhân",
"pos": "N",
"ner": "O",
"dep": "sub"
},
{
"form": "83",
"pos": "M",
"ner": "O",
"dep": "det"
},
{
"form": "\"",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": ",",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "nữ",
"pos": "N",
"ner": "O",
"dep": "nmod"
},
{
"form": ",",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "50",
"pos": "M",
"ner": "O",
"dep": "det"
},
{
"form": "tuổi",
"pos": "N",
"ner": "O",
"dep": "nmod"
},
{
"form": ",",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "quốc_tịch",
"pos": "N",
"ner": "O",
"dep": "nmod"
},
{
"form": "Mỹ",
"pos": "Np",
"ner": "B-LOC",
"dep": "nmod"
},
{
"form": "trú",
"pos": "V",
"ner": "O",
"dep": "root"
},
{
"form": "tại",
"pos": "E",
"ner": "O",
"dep": "loc"
},
{
"form": "Bình_Thạnh",
"pos": "Np",
"ner": "B-LOC",
"dep": "pob"
},
{
"form": ",",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "TP",
"pos": "Ny",
"ner": "B-LOC",
"dep": "pob"
},
{
"form": "HCM",
"pos": "Ny",
"ner": "I-LOC",
"dep": "nmod"
},
{
"form": ".",
"pos": "CH",
"ner": "O",
"dep": "punct"
}
],
[
{
"form": "Trong",
"pos": "E",
"ner": "O",
"dep": "tmp"
},
{
"form": "14",
"pos": "M",
"ner": "O",
"dep": "det"
},
{
"form": "ngày",
"pos": "N",
"ner": "O",
"dep": "pob"
},
{
"form": "trước",
"pos": "A",
"ner": "O",
"dep": "nmod"
},
{
"form": "nhập_cảnh",
"pos": "V",
"ner": "O",
"dep": "nmod"
},
{
"form": ",",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "bệnh_nhân",
"pos": "N",
"ner": "O",
"dep": "sub"
},
{
"form": "đi",
"pos": "V",
"ner": "O",
"dep": "root"
},
{
"form": "Phuket",
"pos": "Np",
"ner": "B-LOC",
"dep": "loc"
},
{
"form": ",",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "Thái_Lan",
"pos": "Np",
"ner": "B-LOC",
"dep": "nmod"
},
{
"form": "và",
"pos": "Cc",
"ner": "O",
"dep": "coord"
},
{
"form": "từ",
"pos": "E",
"ner": "O",
"dep": "loc"
},
{
"form": "Istanbul",
"pos": "Np",
"ner": "B-LOC",
"dep": "pob"
},
{
"form": ",",
"pos": "CH",
"ner": "O",
"dep": "punct"
},
{
"form": "Thổ_Nhĩ_Kỳ",
"pos": "Np",
"ner": "B-LOC",
"dep": "nmod"
},
{
"form": "về",
"pos": "E",
"ner": "O",
"dep": "pmod"
},
{
"form": "TP",
"pos": "Ny",
"ner": "B-LOC",
"dep": "pob"
},
{
"form": "HCM",
"pos": "Ny",
"ner": "I-LOC",
"dep": "nmod"
},
{
"form": "ngày",
"pos": "N",
"ner": "O",
"dep": "pob"
},
{
"form": "15/3",
"pos": "M",
"ner": "O",
"dep": "det"
},
{
"form": "và",
"pos": "Cc",
"ner": "O",
"dep": "coord"
},
{
"form": "xét_nghiệm",
"pos": "V",
"ner": "O",
"dep": "conj"
},
{
"form": "dương_tính",
"pos": "A",
"ner": "O",
"dep": "vmod"
},
{
"form": ".",
"pos": "CH",
"ner": "O",
"dep": "punct"
}
],
[
{
"form": "Bệnh_nhân",
"pos": "N",
"ner": "O",
"dep": "root"
},
{
"form": "âm_tính",
"pos": "N",
"ner": "O",
"dep": "nmod"
},
{
"form": "3",
"pos": "M",
"ner": "O",
"dep": "det"
},
{
"form": "lần",
"pos": "N",
"ner": "O",
"dep": "nmod"
},
{
"form": "liên_tiếp",
"pos": "A",
"ner": "O",
"dep": "nmod"
},
{
"form": "trong",
"pos": "E",
"ner": "O",
"dep": "tmp"
},
{
"form": "3",
"pos": "M",
"ner": "O",
"dep": "det"
},
{
"form": "ngày",
"pos": "N",
"ner": "O",
"dep": "pob"
},
{
"form": "31/3",
"pos": "M",
"ner": "O",
"dep": "det"
},
{
"form": "đến",
"pos": "E",
"ner": "O",
"dep": "pmod"
},
{
"form": "2/4",
"pos": "M",
"ner": "O",
"dep": "dep"
},
{
"form": ".",
"pos": "CH",
"ner": "O",
"dep": "punct"
}
]
]
}
```