douzujun

1. Emoji表情生成器

下面,我们要使用词向量(word vector)来构建一个表情生成器。

  • 你将实现一个模型:输入一句话 (如 "Let\'s go see the baseball game tonight!") 然后找到使用在这句话上最合适的表情(⚾️).

使用单词向量来改进表情符号查找

  • 在许多表情符号界面中,你需要记住,❤是“heart”符号,而不是“love”符号。

    • 换句话说,你必须记住输入“heart”来找到想要的表情符号,而输入“love”不会带来这个符号。
  • 我们可以使用文字向量来制作更灵活的表情符号接口!

  • 当使用单词向量时,您将看到,即使您的训练集显式地将几个单词与特定的表情符号关联起来,您的算法也将能够将测试集中的额外单词泛化并关联到相同的表情符号。

    • 即使这些额外的单词甚至没有出现在训练集中,这也是有效的。

    • 这允许您构建从句子到表情符号的精确分类器映射,甚至使用一个小的训练集。

需要实现的:

  1. 你将从使用 word embeddings 的 baseline model(Emojifier-V1) 开始。

  2. 然后,你将构建一个更加复杂的模型(Emojifier-V2),该模型进一步结合了LSTM

1.1 导入包

import numpy as np
from emo_utils import *
import emoji
import matplotlib.pyplot as plt

%matplotlib inline

2. 基础模型(Baseline model: Emojifier-V1)

2.1 数据集(Dataset EMOJISET)

我们来构建一个简单的分类器,首先是数据集(X,Y):

  • X:包含了127个字符串类型的短句

  • Y:包含一个0到4之间的整数标签,对应于每个句子的表情符号

导入数据集,127个训练集样本,56个测试集样本 (???输出明明是132个训练样本)

X_train, Y_train = read_csv(\'data/train_emoji.csv\')
X_test, Y_test = read_csv(\'data/tesss.csv\')

print(X_train.shape, Y_train.shape)
print(X_test.shape, Y_test.shape)

(132,) (132,)
(56,) (56,)

print(max(X_train, key=len).split())
print(len(max(X_train, key=len).split()))   # 最长句子的单词长度

maxLen = len(max(X_train, key=len).split())

[\'I\', \'am\', \'so\', \'impressed\', \'by\', \'your\', \'dedication\', \'to\', \'this\', \'project\']
10

运行以下单元格,从 X_train 打印句子,从 Y_train 打印相应的标签。

  • 更改 idx 来查看不同的示例.
for idx in range(10):
    print(X_train[idx], label_to_emoji(Y_train[idx]))

never talk to me again

分类:

技术点:

相关文章: