- 自己训练模型
- 准备好语料,命名为data.txt,格式为__label__{类别} , {分词}
- 训练模型,详见
train_fasttext.py
- 进入本项目下,执行docker镜像打包
cd qasystem-ai
docker build --rm -t jsrdxzw/qaaisystem:v1 .
docker run -itd --name qaaisystem --restart always -p 5000:5000 jsrdxzw/qaaisystem:v1
- 默认运行在5000端口
- 也可以直接pull 已经打包好的镜像
docker pull jsrdxzw/qaaisystem:v2
docker run -itd --name qaaisystem --restart always -p 5000:5000 jsrdxzw/qaaisystem:v2
本接口采用textrank算法,分词并计算有向图,计算词语的权重
POST /qasystem_ai/extract_keywords
// request
{
"content": "一段文本",
"size": "返回的关键词个数", // 默认为10
"min_len": "最小单词长度" // 默认为2
}
// response
{
"code": "200",
"message": "ok",
"data": [
{
"score": "0.12", // 分数,越高则越重要
"word": "人工智能" // 关键词
}
]
}
POST /qasystem_ai/extract_phrase
// request
{
"content": "一段内容",
"keywords_num": "10", // 表示可能的组合,默认最大为20
"min_occur_num": "2" // 表示关键词出现的次数,默认为2
}
// response
{
"code": "200",
"message": "ok",
"data": [
{
"pharse": "人工智能的应用" // 关键短语
}
]
}
POST /qasystem_ai/extract_abstract
// request
{
"content": "一段内容",
"sentence_num": "10", // 返回的语句个数,默认3
"sentence_min_len": "6" // 表示语句的最小长度,默认6个字
}
// response
{
"code": "200",
"message": "ok",
"data": [
{
"index": "6", // 在愿文本中出现的位置
"sentence": "生成的语句",
"score": "0.12" // 得分
}
]
}
POST /qasystem_ai/filter
// request
{
"content": "一段内容" // 要过滤的文本你
}
// response
{
"code": "200",
"message": "ok",
"data": "过滤后的内容" // **你*
}
采用fastText
算法,并且加上了softmax层,对30w篇新闻进行训练,测试准确度约为95%
目前支持以下的自动分类:
{
'Finance': '财经',
'Lottery': '彩票',
'Property': '房产',
'Shares': '股票',
'Furnishing': '家居',
'Education': '教育',
'Technology': '科技',
'Sociology': '社会',
'Fashion': '时尚',
'Affairs': '时政',
'Sports': '体育',
'Constellation': '星座',
'Game': '游戏',
'Entertainment': '娱乐'
}
POST /qasystem_ai/category
// request
{
"content": "文章内容"
}
// response
{
"code": "200",
"message": "ok",
"data": {
"tag": "Entertainment",
"category": "娱乐"
}
}
当然也可以自己准备好语料,使用train_fasttext.py
里面的训练代码进行训练