文本分类问题汇总

最近在做文本分类方面的项目,前前后后也遇到很多问题并去寻找解决办法,现在记录一下。

用的开发工具是VS code,语言是python。

  • 无法在VS code的控制台输入内容:
    打开设置,输入run in terminal
    勾选

  • 保存分类器训练好的模型和训练好的tfidf词典:
    from sklearn.externals import joblib
    joblib.dump(model,filename)#保存
    joblib.load(filename)#调用

  • 中文乱码:
    import sys,io
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
    或先解码再编码

  • 字符串与列表相互转换:
    list=str.split("分割符")
    str="分割符".join(list)

  • jibea分词中添加规则,如禁止某些词拆分或拆分某些词:
    jieba.suggest_freq('不拆分词',True)
    jieba.suggest_freq('拆分','词',True)

  • LDA模型聚类步骤:(无监督学习)
    1.将数据转换为list of list的结构
    2.将数据构造为字典:dictionary=corpora.Dictionary(result) corpora属于gensim库
    3.将数据的每一部分转换为稀疏向量:corpus=[dictionary.doc2bow(sentence) for sentence in result]
    4.转换为tfidf指数
    5.确定聚类数目,输入tfidf特征矩阵,调用LDA模型

  • CountVectorizer和TfidfVectorizer的对比:
    前者单纯考虑词频,后者考虑tfidf指数:即在本文出现的频率(词频)和在其他文本出现的频率(逆文本频率)。当tf高,idf低时该词区分度高。

暂时写下这些,还有问题暂未记录

原文地址:https://www.cnblogs.com/lfz1211/p/10746134.html