## 智能营销项目
### 目录
### 1.项目介绍
### 2.数据说明
### 3.开发环境
### 4.文件结构
### 5.模型说明
***
### 1.项目介绍
本项目为京东NLP高阶实战训练营二期的第二个项目。
```
(1)项目内容:利用京东商城商品的说明信息(标题、属性标签和OCR)生成相应的营销文案。
(2)使用模型:seq2seq、attention、pointer networks
(3)项目目的:掌握seq2seq+attention的基本制作方法与套路,掌握pointer networks的搭建方 法,掌握评估指标如Rouge、BLEU的计算逻辑,掌握Beam Search的搜索逻辑
```
### 2.数据说明
```
(1)数据为Json格式,内容是每件商品的编号、标题(title)、属性标签(kb)、ocr信息及参考文案(reference);
(2)模型的输入为标题(title)、属性标签(kb)、ocr信息;
(3)参考文案(reference)作为ground truth;
```
```
{
"20": {
"title": "奢侈品 皮带 男 鳄鱼皮 评价 黑色 鳄鱼皮",
"kb": {
"材质": "鳄鱼皮",
"包装": "礼盒",
"带扣": "平滑扣/板扣",
"风格": "商务休闲",
"适用人群": "中年",
},
"ocr": "商城搜索,整皮裁剪,匠心手工制作,细腻的钢扣头,电镀钢扣头,定制优质五金,优质牛皮背面,辅料标准,内部定型层,质感油亮,骨刺饱满,产品展示,钢扣头,产品细,黑色,臊鱼皮选,高档耐磨,头层牛皮,扣头材质,中间夹层的优质材料...",
"reference": "男鳄鱼皮真皮腰带优先选用骨刺丰满立体的鳄鱼皮制作,内部使用优质皮糠纸作为中间夹层,是各种高奢皮带的中间夹层的优质材料。背面侧面采用牛皮包边,皮质柔软,质感舒适,更有档次。"
},
"21": {
"title": "凯乐石 男女 款 攀岩 弹力 快干 长裤 秋冬 版 男 藏蓝 修身 版型",
"kb": {
"尺码": "XXL",
"功能": "耐磨",
"适用人群": "男士",
"裤长": "长裤"
},
"ocr": "颜色展示,产品展示,男女款攀岩弹力快干长裤9a,商品档案,臀部、膝盖立体有型,外挂挂环,男款裤脚口左右暗扣调节设计,可折叠固定裤脚,透气斜式插手袋,立体剪裁技术,修身合体版型,女款同样裤脚口左右暗扣调节设计...",
"reference": "选取抗撕式混合型织物用作裤身的打造主材,直面户外尖锐小物的刮蹭,耐磨不易划破,裤头的后幅位置采用松紧设计,动态服帖着腰身,并添加了织物挂环,可用于悬挂攀岩装备,便于户外运动穿着。"
},
}
```
### 3.开发环境
Python环境:本地anaconda-python3.6.10,
(注:因为需要使用pycharm开发,且本地GPU资源够使用,未在京东云平台部署)
主要依赖包:
```
torch==1.5.1
gensim==3.8.3
jieba==0.42.1
numpy==1.19.0
pandas==1.0.5
```
### 4.文件结构
```
│ README.md
│
├─configs # 配置文件位置
│ │ settings.py # 配置信息
│ │ __init__.py
│
├─processed_data # 处理后的数据集
│
├─saved_models # 模型存档
│ │
│ │
│ └─torch # 神经网络模型存档
│ │
│ └─checkpoints
│ │
│ └─attn # 带有attention机制的网络
│ │
│ └─cov # 添加coverage机制的网络
│ │
│ └─ptn # ptn网络
│
├─site_packages # 工具库
│ │ __init__.py
│ │
│ ├─ml_libs # 机器学习工具库
│ │ │ __init__.py
│ │ │
│ │ ├─nlp # 自然语言处理工具库
│ │ │ │ baidu.py # 百度翻译模块
│ │ │ │ base.py # 基础组件(如字典)
│ │ │ │ sampling.py # EDA数据增强和tfidf-embedding词替换
│ │ │ │ metrics.py # 模型评估指标(本次为Rouge)
│ │ │ │ settings.py # nlp工具库配置文件
│ │ │ │ stopwords.py # 停用词处理
│ │ │ │ __init__.py
│ │ │ │
│ │ │ ├─data # 停用词数据集
│ │ │ │ └─stopwords-master
│ │ │ │ baidu_stopwords.txt
│ │ │ │ cn_stopwords.txt
│ │ │ │ hit_stopwords.txt
│ │ │ │ punctuation.txt
│ │ │ │ README.md
│ │ │ │ scu_stopwords.txt
│ │ │ │ symbols.txt
│ │
│ ├─utils # 通用工具库
│ │ │ dataframe.py # DataFrame操作
│ │ │ decorators.py # 装饰器
│ │ │ job.py # 数据、模型读取与存储
│ │ │ math.py # 数学工具
│ │ │ unzip.py # 解压工具
│ │ │ __init__.py
│
├─src # 模型相关文件
│ │ augmentation.py # 数据增强
│ │ datasets.py # 数据集读取
│ │ evalution.py # 模型评估
│ │ features.py # 特征抽取
│ │ models.py # 模型定义
│ │ preprocess.py # 数据清洗
│ │ train.py # 训练过程
│ │ __init__.py
```
### 5.模型说明
最大特点:自己实现,纯手敲。自已结合课程、网上教程和原理解读的文章等,逐步探索、纠错,逐步实现encoder、decoder、seq2seq、
attention、BeamSearch、Rouge评估等内容,最后组装成为目前的基线模型。
第一次作业:搭建seq2seq + attention的基线模型
> + GRU内核:本次采用GRU作为encoder和decoder的内核,然后将两者联合起来整合成为seq2seq模型;
> + seq2seq模型:在训练过程中直接调用seq2seq2模型,而不是分别训练encoder和decoder,简化了训练过程代码;
> + attention采用Luong论文中的定义,分别实现了其中的dot、general和concat的实现方法;
> + 特征提取部分,因为encoder中使用pack_padded_sequence需要输入是排过序的。为了提升GPU利用效率,提前将数据集按批次排序好,而不是在模型训练过程中排序;
> + 词嵌入:采用gensim提前训练好词嵌入保存使用,而不是用nn.Embedding层。这样可以提升GPU利用效率,并且因为embedding固定,模型训练结果更加稳定;
下图为30个epoch,loss的下降情况
![avatar](records/images/epoch30.png)
第二次作业:搭建pointer network + coverage基线模型
在第一次作业的基础上,对整体代码进行改动。可以在settings.py设置MODEL_CONF字典中的pointer为True,以执行ptn网络,也可以设置is_coverage为True,添加coverage;
第一次作业采用的batch_size=64,本次ptn网络采用的batch_size=32,可以从图中观察到batch_size=32的损失曲线,抖动更大一些。
loss: 2.0754
![avatar](records/images/ptn网络.png)
第三次作业:对模型进行优化
(1)添加weight_tying:共享encoder embedding层权重矩阵、decoder embedding层权重�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
<项目介绍> (1)项目内容:利用京东商城商品的说明信息(标题、属性标签和OCR)生成相应的营销文案。 (2)使用模型:seq2seq、attention、pointer networks (3)项 智能营销项目 目录 1.项目介绍 2.数据说明 3.开发环境 4.文件结构 5.模型说明 1.项目介绍 2.数据说明 3.开发环境 4.文件结构 5.模型说明 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
marketing-doc-generation-master.zip (63个子文件)
marketing-doc-generation-master
src
evaluation.py 4KB
__init__.py 0B
augmentation.py 3KB
preprocess.py 6KB
features.py 14KB
models.py 27KB
datasets.py 4KB
train.py 8KB
LICENSE 11KB
configs
__init__.py 0B
settings.py 2KB
site_packages
ml_libs
__init__.py 0B
nlp
__init__.py 1B
metrics.py 4KB
stopwords.py 2KB
data
stopwords-master
cn_stopwords.txt 5KB
punctuation.txt 1KB
symbols.txt 99B
scu_stopwords.txt 7KB
hit_stopwords.txt 5KB
baidu_stopwords.txt 9KB
README.md 447B
baidu.py 2KB
sampling.py 7KB
settings.py 143B
__pycache__
base.cpython-36.pyc 2KB
stopwords.cpython-36.pyc 2KB
settings.cpython-36.pyc 339B
eda.cpython-36.pyc 6KB
__init__.cpython-36.pyc 215B
base.py 2KB
__pycache__
__init__.cpython-36.pyc 211B
__init__.py 0B
utils
__init__.py 0B
math.py 194B
job.py 1KB
dataframe.py 654B
unzip.py 1KB
decorators.py 461B
__pycache__
decorators.cpython-36.pyc 948B
math.cpython-36.pyc 529B
dataframe.cpython-36.pyc 1KB
__init__.cpython-36.pyc 209B
.idea
vcs.xml 180B
misc.xml 185B
inspectionProfiles
Project_Default.xml 16KB
profiles_settings.xml 174B
modules.xml 294B
SmartMarketingProject.iml 552B
.gitignore 295B
processed_data
服饰_50k.pkl 62.91MB
records
scatter_add_test.py 921B
annoy_test.py 1KB
tree.txt 4KB
test.ann 222KB
images
返回值为pad.png 17KB
ptn网络.png 24KB
epoch30.png 22KB
高频词逐步替代问题.png 31KB
空格字符进入字典索引.png 25KB
高频词逐步替代问题2.png 14KB
项目过程问题记录.md 3KB
README.md 9KB
共 63 条
- 1
资源评论
奋斗奋斗再奋斗的ajie
- 粉丝: 1178
- 资源: 2761
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功