智能問答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')