nlp之加载电商评论集
最佳答案 问答题库688位专家为你答疑解惑
目录
- 代码
- 代码解读
代码
import pandas as pddf = pd.read_csv("../data/Clothing Reviews.csv")
print(df.info())df['Review Text'] = df['Review Text'].astype(str)
x_train = df['Review Text']
y_train = df['Rating']from tensorflow.keras.preprocessing.text import Tokenizer# 创建词典的索引,默认词典大小20000
dict_size = 20000
tokenizer = Tokenizer(num_words=dict_size)
# jieba: 停用词,标点符号,词性.....
tokenizer.fit_on_texts(x_train)
print(len(tokenizer.word_index), tokenizer.index_word)# 把评论的文本转化序列编码
x_train_tokenized = tokenizer.texts_to_sequences(x_train)
print(x_train_tokenized)
for v in x_train_tokenized[:10]:print(v, len(v))# 可以通过可视化方式展示评论的长度
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.use('TkAgg')word_per_comment = [len(comment) for comment in x_train_tokenized]
plt.hist(word_per_comment, bins=np.arange(0, 200, 10))
plt.show()# 通过指定长度,把不等长list转化为等长
from tensorflow.keras.preprocessing.sequence import pad_sequencesmax_comment_length = 120
x_train = pad_sequences(x_train_tokenized, maxlen=max_comment_length)for v in x_train[:10]:print(v, len(v))
代码解读
逐行解读这段代码。
import pandas as pd
引入了pandas
库,并以pd
为别名。
df = pd.read_csv("../data/Clothing Reviews.csv")
使用pandas的read_csv
函数读取一个CSV文件,并将其保存到变量df
中。
print(df.info())
打印数据框df
的信息,包括列名、非空值数量和数据类型。
<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 23486 entries, 0 to 23485
Data columns (total 11 columns):
Column Non-Null Count Dtype
0 Unnamed: 0 23486 non-null int64
1 Clothing ID 23486 non-null int64
2 Age 23486 non-null int64
3 Title 19676 non-null object
4 Review Text 22641 non-null object
5 Rating 23486 non-null int64
6 Recommended IND 23486 non-null int64
7 Positive Feedback Count 23486 non-null int64
8 Division Name 23472 non-null object
9 Department Name 23472 non-null object
10 Class Name 23472 non-null object
df['Review Text'] = df['Review Text'].astype(str)
将数据框df
中的Review Text
列的数据类型转换为字符串。
x_train = df['Review Text']
y_train = df['Rating']
将Review Text
列分配给x_train
,将Rating
列分配给y_train
。
from tensorflow.keras.preprocessing.text import Tokenizer
从tensorflow.keras.preprocessing.text
模块导入Tokenizer
类。
dict_size = 20000
tokenizer = Tokenizer(num_words=dict_size)
设置词典大小为20,000,并创建一个Tokenizer
对象。
tokenizer.fit_on_texts(x_train)
在x_train
上调用fit_on_texts
方法,这样tokenizer
就可以根据x_train
中的文本构建词典。
print(len(tokenizer.word_index), tokenizer.index_word)
打印词典中的词数量和词到索引的映射。
x_train_tokenized = tokenizer.texts_to_sequences(x_train)
使用texts_to_sequences
方法将x_train
中的文本转化为整数序列,并保存到x_train_tokenized
。
print(x_train_tokenized)
打印转化后的整数序列。
for v in x_train_tokenized[:10]:print(v, len(v))
打印x_train_tokenized
中前10个序列及其长度。
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
导入了matplotlib.pyplot
,matplotlib
和numpy
库。
matplotlib.use('TkAgg')
设置matplotlib
使用的后端为TkAgg
。
word_per_comment = [len(comment) for comment in x_train_tokenized]
计算每个评论的词数,并保存到word_per_comment
列表中。
plt.hist(word_per_comment, bins=np.arange(0, 200, 10))
绘制一个直方图,显示评论的词数分布。直方图的分箱范围是0到200,每10个单位一个分箱。
plt.show()
显示上面绘制的直方图。
from tensorflow.keras.preprocessing.sequence import pad_sequences
从tensorflow.keras.preprocessing.sequence
模块导入pad_sequences
函数。
max_comment_length = 120
设置评论的最大长度为120。
x_train = pad_sequences(x_train_tokenized, maxlen=max_comment_length)
使用pad_sequences
函数将x_train_tokenized
中的序列填充或截断到长度为120。
for v in x_train[:10]:print(v, len(v))
打印填充或截断后的前10个序列及其长度。
print('ok')
打印ok
,表示代码运行完毕。
总之,这段代码的主要目的是从CSV文件中读取文本评论,然后使用Tokenizer
将文本转化为整数序列,并对这些序列进行填充或截断,以确保它们都有相同的长度。
99%的人还看了
相似问题
- 【Django-DRF用法】多年积累md笔记,第3篇:Django-DRF的序列化和反序列化详解
- 【Java 进阶篇】JavaScript JSON 语法入门:轻松理解数据的序列化和反序列化
- 【python学习】基础篇-常用模块-pickle模块:序列化和反序列化
- ZC序列理论学习及仿真
- 时间序列预测实战(十七)PyTorch实现LSTM-GRU模型长期预测并可视化结果(附代码+数据集+详细讲解)
- 代码随想录算法训练营第二十九天| 491 递增子序列 46 全排列
- 最长递增子序列
- 深入解析序列模型:全面阐释 RNN、LSTM 与 Seq2Seq 的秘密
- c#Nettonsoft.net库常用的方法json序列化反序列化
- 基于C#实现最长公共子序列
猜你感兴趣
版权申明
本文"nlp之加载电商评论集":http://eshow365.cn/6-27527-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: HLS直播协议详解
- 下一篇: 【Flutter】Flutter 中的图片管理 图片优化的最佳实践