本文主要是介绍机器学习第六篇----FastText实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近在做对话机器人,使用了调研之后使用了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属于无监督学习),有监督学习首先需要进行文本标注
# 前面是__label__ + 标签,然后后面跟tab, 后面是分词之后的文本
__label__1 内容1
__label__2 内容2
__label__3 内容3
__label__4 内容4
(3)有了分类文本之后,开始训练模型,训练过程非常快
这篇关于机器学习第六篇----FastText实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!