用Python掌握长短期记忆:释放LSTM在自然语言处理中的力量
玩转Python:探索长短期记忆(LSTM)在自然语言处理中的魅力
全面理解和实现使用Python进行自然语言处理的LSTM层的综合指南
这篇文章是我关于使用Python进行RNN和NLP的文章的延续。深度学习网络中简单循环层的自然演化是具有Long Short Term Memory(简称LSTM)层的深度学习网络。
与RNN和NLP一样,我将尽量详细地解释LSTM层,并从头编写该层的前向传递代码。
所有代码可以在此处查看:https://github.com/Eligijus112/NLP-python
我们将使用与先前文章中相同的数据集¹:
- 产品和工程领导者亲身体验GenAI技术
- Microsoft研究员提出的PIT(排列不变转换) 用于动态稀疏的深度学习编译器
- 伦理苏黎世研究人员推出UltraFastBERT:一种使用0.3%的神经元进行推理,并在性能上与类似的BERT模型相媲美的BERT变体
# 数据清洗import pandas as pd# 读取数据 d = pd.read_csv('input/Tweets.csv', header=None)# 添加列名 d.columns = ['INDEX', 'GAME', "SENTIMENT", 'TEXT']# 仅保留正面和负面情感的数据 d = d[d['SENTIMENT'].isin(['Positive', 'Negative'])]# 对情感进行编码,负面为1,正面为0d['SENTIMENT'] = d['SENTIMENT'].apply(lambda x: 0 if x == 'Positive' else 1)# 删除缺失值d = d.dropna()

请记住,SENTIMENT=1表示负面情感,SENTIMENT=0表示正面情感。
我们需要将文本数据转换为整数序列。不同于之前的文章,我们现在将创建一个字符序列,而不是单词序列。
例如,文本“Nice Game”可以转换为以下示例向量:
[1, 2, 3, 4, 5, 6, 7, 8, 3]
每个字符,包括空格和标点符号,都会有一个索引。
def create_word_index( x: str, shift_for_padding: bool = False, char_level: bool = False) -> Tuple[dict, dict]: """ 函数扫描给定的文本并创建两个字典: - word2idx:将单词映射到整数的字典...