智能問答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')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章