我是靠谱客的博主 酷炫豌豆,最近开发中收集的这篇文章主要介绍百度开源 FAQ 问答系统(AnyQ)|问题分析模块(Analysis)1.句子分词添加2.词向量表示的添加,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在AnyQ问答系统中,问题分析模块(Analysis)是整个系统中对输入问题进行解析的第一个模块。该模块所完成的主要功能有:
1. 对句子进行分词;
2. 对分词后的每个单词进行词性标注(POS);
3. 将每个单词进行词向量表示;
4. 命名实体识别(NER)。参考文章:https://www.jianshu.com/p/c36974c8aa7d
但是,在最初的AnyQ系统中,其仅实现了句子分词及词向量表示功能,并提供了相应功能插件的配置。其他,例如POS和NER的功能需要用户自行实现并添加(详解:待续)。下面将依次介绍,句子分词及词向量表示功能的配置方法。
1.句子分词添加
1.1 用户字典
当一个问题输入到分析模块后,要想实现对问题的分词,首先需要为该模块进行词典的配置,词典的配置文件路径为AnyQ/build/example/dict.conf
。在AnyQ系统中,所提供的字典类型有以下几种:
- 哈希词典:HashAdapter<TYPE1, TYPE2>
- 干预词典:String2RetrievalItemAdapter
- 切词词典: WordsegAdapter
- Paddle SimNet匹配模型词典: PaddleSimAdapter
- Tensorflow模型词典:TFModelAdapter
配置方式如下所示:
# 干预词典
dict_config {
name: "rank_weights"
type: "String2FloatAdapter"
path: "./rank_weights"
}
# 切词词典
dict_config {
name: "lac"
type: "WordsegAdapter"
path: "./wordseg_utf8"
}
# paddle SimNet匹配模型词典
dict_config{
name: "fluid_simnet"
type: "PaddleSimAdapter"
path: "./simnet"
}
1.2 句子分词的配置
词典配置完毕以后,即可在AnyQ/build/example/analysis.conf
配置文件中添加具有分词功能的插件,其格式如下所示:
# 切词
analysis_method {
name: "method_wordseg"
type: "AnalysisWordseg"
using_dict_name: "lac"
}
2.词向量表示的添加
句子分词功能添加完毕后,要实现会分好词的每个单词进行词向量的表示,需要在解析模块的配置文件中(AnyQ/build/example/analysis.conf
)添加相应功能插件,其格式如下
# 语义向量
analysis_method {
name: "method_simnet_emb"
type: "AnalysisSimNetEmb"
using_dict_name: "fluid_simnet"
dim: 128
query_feed_name: "left"
cand_feed_name: "right"
embedding_fetch_name: "tanh.tmp"
}
至此,整个解析模块基本配置完毕,其他需要用户自定义添加的功能,如POS,NER会在后面博客进行讲解。
最后
以上就是酷炫豌豆为你收集整理的百度开源 FAQ 问答系统(AnyQ)|问题分析模块(Analysis)1.句子分词添加2.词向量表示的添加的全部内容,希望文章能够帮你解决百度开源 FAQ 问答系统(AnyQ)|问题分析模块(Analysis)1.句子分词添加2.词向量表示的添加所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复