fastext 中文文本分类
2017-06-17 19:27
155 查看
1. 输入文本预处理, 通过jieba分词, 空格" "拼接文本串. 每行一个样本, 最后一个单词为双下划线表明label, __label__'xxx' . eg:
2. pip install fasttext, 利用fasttext 的python 包进行分类.
简单高效, 结果也不差. good luck~
参考:
https://pypi.python.org/pypi/fasttext/
http://www.41443.com/HTML/Python/20160909/449360.html
http://www.360doc.com/content/17/0427/02/20558639_648968041.shtml
邱县 继刚 家庭 农场 小麦 、 玉米 、 棉花 、 大豆 、 蔬菜 、 苗木 种植 、 销售 ( 依法 须 经 批准 的 项目 , 经 相关 部门 批准 后方 可 开展 经营 活动 ) __label__A 江苏 嘉利欣 农业 科技 有限公司 农业 科技 研发 、 转让 、 咨询服务 展览 展示 服务 现代农业 休闲 观光 种植 、 销售 粮食 、 果蔬 、花卉 、 苗木 种植 中草药 销售 本 公司 种植 的 中草药 ( 特殊 中草药 除外 ) 养殖 、 销售 鱼 、 虾 、 螃蟹 ( 依法 须 经 批准 的 项 目 , 经 相关 部门 批准 后方 可 开展 经营 活动 ) __label__B 赞皇县 和谐 家庭 农场 农作物 果树 蔬菜 种植 销售 需 有关 部门 审批 的 审批 后 经营 __label__C 深圳市 修元 农业 开发 有限公司 农业 开发 、 绿化 工程 、 苗圃 种植 __label__A
# 文本预处理 df2 = pd.read_csv('./industry_dalei_train.txt', encoding='utf-8') df3 = pd.read_excel('./industry_standard.xlsx', encoding='utf-8') # 映射转换 dalei2label_dict = dict((x, y) for x, y in zip(df3[u'大类名称'], df3[u'大类编号'])) df2['dalei_label'] = df2['sub_industry_name'].apply(lambda x: dalei2label_dict[x]) # 切割 df2['cut_name'] = df2['name'].apply(lambda x: ' '.join(jieba.cut(x))) df2['cut_business'] = df2['business'].apply(lambda x: ' '.join(jieba.cut(x))) df2['cut_train'] = df2['cut_name'] + ' ' + df2['cut_business'] + ' __label__' + df2['dalei_label'] df2['cut_train'].to_csv('industry_dalei_train.txt', index=None, header=None, encoding='utf-8')
2. pip install fasttext, 利用fasttext 的python 包进行分类.
# 训练和保存模型 da_clf = fasttext.supervised('./industry_dalei_train.txt', 'models/dalei_clf') # 加载模型 da_clf = fasttext.load_model('./models/dalei_clf.bin') # 测试 res = da_clf.test('./industry_dalei_test.txt') print res.precision print res.recall # 预测使用, data为['cut document1' ,'cut document2'] da_clf.predict(data ,k=1) # 预测标签 da_clf.predict_proba(da_df.iloc[:5],k=3) # 预测标签概率
简单高效, 结果也不差. good luck~
参考:
https://pypi.python.org/pypi/fasttext/
http://www.41443.com/HTML/Python/20160909/449360.html
http://www.360doc.com/content/17/0427/02/20558639_648968041.shtml
相关文章推荐
- 自然语言处理课程作业 中文文本情感分类
- CNN在中文文本分类的应用
- 基于svm的中文文本自动分类系统
- 【文本分类】最强中文分词系统ICTCLAS
- Spark2.0 特征提取、转换、选择之二:特征选择、文本处理,以中文自然语言处理(情感分类为例)
- 基于svm的中文文本自动分类系统
- cnn、rnn实现中文文本分类(基于tensorflow)
- 如何用Python和机器学习训练中文文本情感分类模型?
- 基于svm的中文文本自动分类系统
- 用scikit-learn和jieba支持中文文本特征提取和分类的测例
- 个基于概念的中文文本分类模型
- Spark MLlib实现的中文文本分类–Native Bayes
- 利用TFIDF策略和朴素贝叶斯算法进行中文文本分类
- 基于SVM的中文文本分类方法
- 基于svm的中文文本自动分类系统
- 新闻上的文本分类:机器学习大乱斗 王岳王院长 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处
- Spark MLlib实现的中文文本分类–Naive Bayes
- keras实现aspect level中文文本情感分类-源自EMNLP2016
- 自然语言处理课程作业 中文文本情感分类
- 中文文本分类的关键技术