讯飞大数据竞赛2022 汽车领域多语种迁移学习 打卡博客

import  pandas as pd
import numpy as np
# 打开数据 (任务一)
train_zh= pd.read_excel("data/中文_trian.xlsx")
train_zh.head()
原始文本 意图 槽值1 槽值2
0 16.5度 adjust_ac_temperature_to_number offset:16.5 NaN
1 16度 adjust_ac_temperature_to_number offset:16 NaN
2 16空调开到16度 adjust_ac_temperature_to_number offset:16 NaN
3 16温度16度 adjust_ac_temperature_to_number offset:16 NaN
4 17度 adjust_ac_temperature_to_number offset:17 NaN
train_en = pd.read_excel("data/英文_train.xlsx")
train_en.head()
原始文本 中文翻译 意图 槽值1 槽值2
0 open aircon please 请打开空调 open_ac NaN NaN
1 I want to activate the AC 我想打开空调 open_ac NaN NaN
2 I want to turn on the air conditioner 我想打开空调 open_ac NaN NaN
3 switch on the AC please 请打开空调 open_ac NaN NaN
4 Help me open the AC 帮我打开空调 open_ac NaN NaN
train_ja = pd.read_excel("data/日语_train.xlsx")
train_ja.head()
原始文本 中文翻译 意图 槽值1 槽值2
0 エアコンのスイッチONに 打开空调开关 open_ac NaN NaN
1 エアコン入れる 打开空调 open_ac NaN NaN
2 エアコンのスイッチを 打开空调开关 open_ac NaN NaN
3 エアコンのスイッチ入れる 打开空调开关 open_ac NaN NaN
4 エアコンのスイッチON 打开空调开关 open_ac NaN NaN
test_ja = pd.read_excel("data/testA.xlsx",sheet_name="日语_testA")
test_en = pd.read_excel("data/testA.xlsx",sheet_name="英文_testA")
test_ja.head()
原始文本
0 エアコンをつける
1 エアコン付ける
2 エアコンをつけてください
3 エアコンをONに
4 エアコン
test_en.head()
原始文本
0 switch on the AC
1 air conditioner open
2 Turn on the AC please
3 I wanna switch on aircon please
4 Help me switch on aircon
# 分词(任务二)
import jieba
import jieba.posseg as pseg
import nagisa  # 日语分词包
[dynet] random seed: 1234
[dynet] allocating memory: 32MB
[dynet] memory allocation done.
# 测试日语分词
text = 'Pythonで簡単に使えるツールです'
words = nagisa.tagging(text)
print(words.words)
['Python', 'で', '簡単', 'に', '使える', 'ツール', 'です']
# 测试中文分词
words = jieba.lcut("查看训练集和测试集字段类型,并将数据读取代码写到博客;")
print(words)
['查看', '训练', '集', '和', '测试', '集字段', '类型', ',', '并', '将', '数据', '读取', '代码', '写', '到', '博客', ';']
words = pseg.lcut("查看训练集和测试集字段类型,并将数据读取代码写到博客;")
print(words)
[pair('查看', 'v'), pair('训练', 'vn'), pair('集', 'q'), pair('和', 'c'), pair('测试', 'vn'), pair('集字段', 'n'), pair('类型', 'n'), pair(',', 'x'), pair('并', 'c'), pair('将', 'd'), pair('数据', 'n'), pair('读取', 'v'), pair('代码', 'n'), pair('写', 'v'), pair('到', 'v'), pair('博客', 'nr'), pair(';', 'x')]
# 使用tf_idf 抽取特征 使用逻辑回归进行意图分类
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.pipeline import make_pipeline
train_ja["words"] = train_ja["原始文本"].apply(lambda x: " ".join(nagisa.tagging(x).words))
train_en["words"] = train_en["原始文本"].apply(lambda x: x.lower())
test_ja['words'] = test_ja['原始文本'].apply(lambda x: ' '.join(nagisa.tagging(x).words))
test_en['words'] = test_en['原始文本'].apply(lambda x: x.lower())
# 构建模型
pipline = make_pipeline(TfidfVectorizer(),LogisticRegression())
pipline.fit(train_ja["words"].to_list() + train_en["words"].to_list(),
           train_ja["意图"].to_list() + train_en["意图"].to_list())
test_ja["意图"] = pipline.predict(test_ja['words'])
test_en["意图"] = pipline.predict(test_en['words'])
test_en['槽值1'] = np.nan
test_en['槽值2'] = np.nan
test_ja['槽值1'] = np.nan
test_ja['槽值2'] = np.nan
writer = pd.ExcelWriter("submit_LR.xlsx")
test_en.drop(["words"],axis=1).to_excel(writer, sheet_name='英文_testA', index=None)
test_ja.drop(["words"],axis=1).to_excel(writer,sheet_name="日语_testA",index=None)
writer.save()
writer.close()

提交结果:
讯飞大数据竞赛2022 汽车领域多语种迁移学习 打卡博客_第1张图片

你可能感兴趣的:(人工智能,机器学习,数据分析,大数据,汽车,迁移学习)