input().split()

a1,a2,…,an = input().split()
用在接收多个用户输入的时候。(空格分开)

import pandas as pd data = pd.read_csv(C:\Users\Administrator\Desktop\pythonsjwj\weibo_senti_100k.csv') data = data.dropna(); data.shape data.head() import jieba data['data_cut'] = data['review'].apply(lambda x: list(jieba.cut(x))) data.head() with open('stopword.txt','r',encoding = 'utf-8') as f: stop = f.readlines() import re stop = [re.sub(' |\n|\ufeff','',r) for r in stop] data['data_after'] = [[i for i in s if i not in stop] for s in data['data_cut']] data.head() w = [] for i in data['data_after']: w.extend(i) num_data = pd.DataFrame(pd.Series(w).value_counts()) num_data['id'] = list(range(1,len(num_data)+1)) a = lambda x:list(num_data['id'][x]) data['vec'] = data['data_after'].apply(a) data.head() from wordcloud import WordCloud import matplotlib.pyplot as plt num_words = [''.join(i) for i in data['data_after']] num_words = ''.join(num_words) num_words= re.sub(' ','',num_words) num = pd.Series(jieba.lcut(num_words)).value_counts() wc_pic = WordCloud(background_color='white',font_path=r'C:\Windows\Fonts\simhei.ttf').fit_words(num) plt.figure(figsize=(10,10)) plt.imshow(wc_pic) plt.axis('off') plt.show() from sklearn.model_selection import train_test_split from keras.preprocessing import sequence maxlen = 128 vec_data = list(sequence.pad_sequences(data['vec'],maxlen=maxlen)) x,xt,y,yt = train_test_split(vec_data,data['label'],test_size = 0.2,random_state = 123) import numpy as np x = np.array(list(x)) y = np.array(list(y)) xt = np.array(list(xt)) yt = np.array(list(yt)) x=x[:2000,:] y=y[:2000] xt=xt[:500,:] yt=yt[:500] from sklearn.svm import SVC clf = SVC(C=1, kernel = 'linear') clf.fit(x,y) from sklearn.metrics import classification_report test_pre = clf.predict(xt) report = classification_report(yt,test_pre) print(report) from keras.optimizers import SGD, RMSprop, Adagrad from keras.utils import np_utils from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.layers.embeddings import Embedding from keras.layers.recurrent import LSTM, GRU model = Sequential() model.add(Embedding(len(num_data['id'])+1,256)) model.add(Dense(32, activation='sigmoid', input_dim=100)) model.add(LSTM(128)) model.add(Dense(1)) model.add(Activation('sigmoid')) model.summary() import matplotlib.pyplot as plt import matplotlib.image as mpimg from keras.utils import plot_model plot_model(model,to_file='Lstm2.png',show_shapes=True) ls = mpimg.imread('Lstm2.png') plt.imshow(ls) plt.axis('off') plt.show() model.compile(loss='binary_crossentropy',optimizer='Adam',metrics=["accuracy"]) model.fit(x,y,validation_data=(x,y),epochs=15)
06-10
这段代码的作用是: 1. 读取一个csv文件(weibo_senti_100k.csv),并将其中的空值删除。 2. 对csv文件中的review列进行分词处理,并过滤掉停用词。 3. 用词频统计生成词云图。 4. 将数据集划分为训练集和测试集,分别使用SVM和LSTM模型进行分类预测,并输出分类报告。 具体流程如下: 1. 首先,使用pandas读取csv文件,并将其中的空值删除。 2. 然后,使用jieba对csv文件中的review列进行分词处理,并过滤掉停用词,得到分词后的结果。 3. 用词频统计生成词云图,可以通过WordCloud库实现。 4. 将分词后的结果转换成向量,并将数据集划分为训练集和测试集。使用SVM和LSTM模型进行分类预测,并输出分类报告。 其中,使用SVM模型的代码如下: ``` from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import classification_report # 将数据集划分为训练集和测试集 x, xt, y, yt = train_test_split(vec_data, data['label'], test_size=0.2, random_state=123) # 训练SVM模型 clf = SVC(C=1, kernel='linear') clf.fit(x, y) # 使用测试集进行预测 test_pre = clf.predict(xt) # 输出分类报告 report = classification_report(yt, test_pre) print(report) ``` 使用LSTM模型的代码如下: ``` from keras.optimizers import Adam from keras.utils import np_utils from keras.models import Sequential from keras.layers.core import Dense, Dropout, Activation from keras.layers.embeddings import Embedding from keras.layers.recurrent import LSTM # 将数据集划分为训练集和测试集 x, xt, y, yt = train_test_split(vec_data, data['label'], test_size=0.2, random_state=123) # 将标签进行one-hot编码 y = np_utils.to_categorical(y, 2) yt = np_utils.to_categorical(yt, 2) # 构建LSTM模型 model = Sequential() model.add(Embedding(len(num_data['id'])+1, 256)) model.add(LSTM(128)) model.add(Dense(1)) model.add(Activation('sigmoid')) # 编译LSTM模型 model.compile(loss='binary_crossentropy', optimizer='Adam', metrics=["accuracy"]) # 训练LSTM模型 model.fit(x, y, validation_data=(xt, yt), epochs=15) ``` 最后,需要注意的是,代码中有一些缺失的部分,比如数据集的读取和停用词的来源等,需要根据实际情况进行补充。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值