最近在做对话机器人,使用了调研之后使用了fasttext,主要考虑对话机器人主要是短文本,而且与基于神经网络的文本分类算法相比它主要由两个优点
(1)首先FastText在保持高精度的同时极大地加快了训练速度和测试速度。
(2)再有就是不需要使用预先训练好的词向量,因为FastText会自己训练词向量
1.fasttext 安装:
pip install fasttext
2.fasttext 使用过程:
(1)中文对话不同于英文,英文的单词之间有空格,天然的分词。但是中文就不同,需要首先分词(这里不展开分词,后面写个专题吧)
# 使用的hanlp分词,去掉停用词(具体参考pyhanlp的用法)
NotionalTokenizer = JClass("com.hankcs.hanlp.tokenizer.NotionalTokenizer")
words = NotionalTokenizer.segment(text)
(2)fasttext 数据标注,fasttext 分类属于有监督学习(word2vec属于无监督学习),有监督学习首先需要进行文本标注