- 作者:老汪软件技巧
- 发表时间:2024-08-29 17:02
- 浏览量:
使用示例下载并部署服务浏览器访问
http://127.0.0.1:8080/tag?statement=我有糖尿病,在吃格华止,可以同时吃奥利司他来减肥吗?
查看JSON返回结果
{
"code": 1,
"msg": "",
"result": {
"奥利司他": {
"keyword": "奥利司他",
"positions": [
{
"start": 17,
"end": 20
}
],
"dictwords": {
"medicine": [
{
"dict": "medicine",
"word": "奥利司他胶囊",
"index": [
"奥利司他",
"奥利司他胶囊"
],
"data": {
"category": "西药",
"categoryId": 0,
"isControl": true,
"isHighRisk": true,
"medicineType": 0
}
},
{
"dict": "medicine",
"word": "奥利司他片",
"index": [
"奥利司他",
"奥利司他片"
],
"data": {
"category": "西药",
"categoryId": 0,
"isControl": true,
"isHighRisk": true,
"medicineType": 0
}
}
]
}
},
"格华止": {
"keyword": "格华止",
"positions": [
{
"start": 8,
"end": 10
}
],
"dictwords": {
"brand": [
{
"dict": "brand",
"word": "格华止",
"index": [
"格华止"
],
"data": {
"category": "西药"
}
}
]
}
},
"糖尿": {
"keyword": "糖尿",
"positions": [
{
"start": 2,
"end": 3
}
],
"dictwords": {
"symptom": [
{
"dict": "symptom",
"word": "糖尿",
"index": [
"糖尿"
],
"data": {
"symptomId": 0
}
}
]
}
},
"糖尿病": {
"keyword": "糖尿病",
"positions": [
{
"start": 2,
"end": 4
}
],
"dictwords": {
"disease": [
{
"dict": "disease",
"word": "糖尿病",
"index": [
"糖尿病"
],
"data": {
"diseaseId": 0
}
}
]
}
}
},
"micros": 672
}
执行效率:一般办公电脑 500 ~ 1000微秒,一般服务器在100 ~ 200微秒实现原理定义字典和词条一个json文件即一个字典,文件名称为字典名称,如:medicine.json,即为药品字典;字典文件中每一行为一个词条,每个词条是一个json对象词条结构如下字段数据类型必须说明
word
字符串
是
词条名称
index
字符串数组
是
该词条的索引词,语句中包含该索引词时才能搜索到本词条
data
JSON对象
是
该词条的附属信息,比如id、分类等
构建索引树
将全部字典的全部词条,根据其索引词构建前缀索引树例如以下索引词
糖尿病足
糖尿病皮肤感染
糖尿病性神经病
糖尿病性胃轻瘫
糖尿病性并结核病
糖尿病性周围神经病
糖原贮积病
糖原贮积病Ⅰ型
糖原贮积病Ⅱ型
可构建前缀树如下
按字切分输入语句
自然语句按字切分成搜索词,并记录其起始位置例如:我有糖尿病,在吃格华止,可以同时吃奥利司他来减肥吗?切分成以下搜索词
我有糖尿病,在吃格华止,可以同时吃奥利司他来减肥吗?
有糖尿病,在吃格华止,可以同时吃奥利司他来减肥吗?
糖尿病,在吃格华止,可以同时吃奥利司他来减肥吗?
尿病,在吃格华止,可以同时吃奥利司他来减肥吗?
...
格华止,可以同时吃奥利司他来减肥吗?
...
奥利司他来减肥吗?
...
并发搜捕索引树用搜索词遍历索引树,收集走过的每个节点上附属的词条按搜索词、字典名称合并词条并返回用途
该服务可用于命令词提取、搜索意图识别、机器学习数据标注等领域