IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(3) -> 正文阅读

[人工智能]【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(3)

目录

任务

Just Do It!?

1.TF-IDF

2.管道构建(make_pipeline)

?3.模型预测


任务

  • 任务3:TFIDF与文本分类

    • 步骤1:学习TFIDF的使用,提取语料的TFIDF特征;
    • 步骤2:使用逻辑回归结合TFIDF进行训练(所有的语言语料),并对测试集的意图进行分类;
    • 步骤3:将步骤2预测的结果文件提交到比赛,截图分数;

Just Do It!?

1.TF-IDF

此处使用了Sklearn版的TF-IDF实现,当然也可以用nltk或者纯Python版本实现。

TF-IDF的实现可以参考:TF-IDF算法介绍及实现_Asia-Lee的博客-CSDN博客_tf-idf

【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(2)中已经得到了训练集和测试集分词之后的dataframe了。下面就用sklearn中的Pipeline将TF-IDF和逻辑回归这两个估计器打包,再打训练集的日语和英文拼起来(这是一种很棒的处理方式)传入Pipeline进行fit。

#训练TFIDF和逻辑回归
pipeline = make_pipeline(TfidfVectorizer(),LogisticRegression())
pipeline.fit(
    train_jp['words'].tolist() + train_eg['words'].tolist(),
    train_jp['意图'].tolist() + train_eg['意图'].tolist()
             )

这里值得一提的是TF-IDF的实现用了 TfidfVectorizer ,我注意到sklearn的官方文档中不止这一个方法去实现TF-IDF,还有下图的feature_extraction.text.TfidfTransformer(*)。

那他俩有啥区别呢?

我们来看一下官方文档时如何描述的。

可以清楚的看到,TfidfVectorizer其实就相当于先将文本通过feature_extraction.text.CountVectorizer转化为词频共现矩阵,再将共现矩阵传入TfidfTransformer。而我这个懒人怎么可能分两步去做,果断选择了TfidfVectorizer,一步到位!

举个例子看一下tf-idf的过程:

给定训练集corpus和测试集corpus_test,使用tf-idf算法得到对应语料的tf-idf值。

from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
    'This is the first document.',
    'This document is the second document.',
    'And this is the third one.',
    'Is this the first document?',
]
corpus_test = [
    'This is a test.',
    'This is a super man.',
    'I will be stronger.',
    'What is your name?',
]
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(corpus)
print('tf-idf得到的特征有:',vectorizer.get_feature_names())
print('tf-idf得到的形状为:',X.shape)
print(X)
#转换为矩阵形式
x_train_tfidf = X.toarray()
print('tf-idf矩阵为:\n',x_train_tfidf)
#使用上面训练的tf-idf估计器拟合测试集
x_test_tfidf = vectorizer.transform(corpus_test).toarray()
print('测试集的tf-idf矩阵为:\n',x_test_tfidf)

2.管道构建(make_pipeline)

另外一个值得说的点是管道构建,我Python基础一般,管道构建之前很少遇到,这次算是get到了。

简单来说就是将多个操作打包,可以批量执行。减少了代码量,更重要的是,可以在网格化搜索中使用pipline。

参考:《Python机器学习基础教程》构建管道(make_pipeline)_elma_tww的博客-CSDN博客

在机器学习中要多尝试去用它,能提升开发效率。

?3.模型预测

根据比赛描述,提交的是一个excel文件(.xlsx后缀),包含2个sheet(日语和英文)。

每个sheet包含4列,原始文本、意图、槽值1、槽值2 。

对应代码如下:

#模型预测
test_jp['意图'] = pipeline.predict(test_jp['words'])
test_eg['意图'] = pipeline.predict(test_eg['words'])
test_eg['槽值1'] = np.nan 
test_eg['槽值2'] = np.nan 
test_jp['槽值1'] = np.nan 
test_jp['槽值2'] = np.nan 

得到的test_jp结果如下:?

英文也是一样的形式

?但我们words这一列是不需要提交的,所以生成提交文件的代码为:

writer = pd.ExcelWriter('../result/submit_tfidf_logistic1.xlsx')
test_eg.drop('words',axis=1).to_excel(writer,sheet_name='英文_testA',index=False)
test_jp.drop('words',axis=1).to_excel(writer,sheet_name='日语_testA',index=False)
writer.save()
writer.close()

OK,Fine!?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:51:13  更:2022-07-20 18:54:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:54:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计