智能问答API中文文档
1、NER实体抽取
实体抽取模块的目的是根据词典识别出自然语言问句中的实体。其步骤包括:
1、引入NER模块:
import tfkbqa.NER as NER
2、加载词典:
#加载用户自定义词典(输入所在文件夹即可,api会自动扫描文件夹下的所有词典)
NER.load_dict("E://NLP//test_api//dict//userdict")
#加载同义词词典(输入所在文件夹即可,api会自动扫描文件夹下的所有词典)
NER.load_synonym_dict("E://NLP//test_api//dict//sysnonym_dict")
#加载关键词映射词典(输入所在文件夹即可,api会自动扫描文件夹下的所有词典)
NER.load_key_value_dict('E://NLP//tfkbqa//dict//key_dict')
3、定义实体词性:
应与自定义词典中的词性保持一致。
POS=['mmmm','mmd','mmw']
POS_KEY=['month','day','year']
4、获取实体与其词性:
#获取抽取出的实体与其词性
print(NER.get_entity("你好呀tfkg",POS))
[('tfkg', 'mmmm')]
#获取将词性替换实体后的抽象语句(其中还包括同义词替换)
print(NER.get_abstract_str("hello呀tfkg"))
hello呀mmmm
4、关键词抽取与映射转换
print(NER.get_key_value('近三月你好呀tfkg',POS_KEY))
[('month', 3)]
2、向量化
1、引入向量化VEC_term_freq模块
import VEC_term_freq
2、加载问句语义库(计算词频文档)
VEC_term_freq.load_questions_dict('E://NLP//tf_kg//questions_0107.txt')
3、问句向量化
feature=VEC_term_freq.vectorized_str('今天天气怎么样')
print(feature)
[[1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1
0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0]]
3、关系抽取
1、引入关系抽取Classify模块
import Classify
2、加载预测模型
Classify.load_model('E://NLP//tf_kg//forest_0107')
3、关系抽取
print(Classify.predict(feature))
4、自动训练
1、一键训练随机森林模型:
Network.autoTrain('E://NLP//tf_kg//questions_0107.txt')
autoautoTrain方法参数:
1、path:问句文档地址
2、test_size:默认为0.1,代表测试集的大小。
问题集合格式:
classes questions
0 今天天气怎么样
0 今天多少度
0 今天是晴天吗
2、保存模型文件:
Network.save_model('E://NLP//tfkbqa//forest')