python中运用SVM对新闻标题进行分类

在用jieba对新闻标题进行分词后,把这些标题都存入一个1.txt文档中,我之前所用的分类方法是导入四个词典然后分类,分成政治类、社会类、经济类和娱乐类,显然这是暴力法。。。现在想试一试svm算法能不能也实现这样的分类,网上看了很多svm的案例,大多都是对数据进行分类的,有一些是针对中文文本进行情感分类,所以我一直很迷。。而且我也一直搞不懂svm里训练集和测试集的概念。。。有没有大佬能针对这个分成四类的问题给点头绪呢?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SVM对纯数据进行分类,分类公式怎么得到?
![图片说明](https://img-ask.csdn.net/upload/201905/09/1557397868_476010.png) ![图片说明](https://img-ask.csdn.net/upload/201905/09/1557397920_863442.png) 这是训练样本数据,麻烦大神们,使用SVM算法对各个地区进行分类,分类的那条线的公式是什么,麻烦各位了
求帮忙看一个python的SVM程序改主成分维度改哪里
从zouxy大神那里拷贝来的程序 # 源程序在这里 ``` from numpy import * import time import matplotlib.pyplot as plt # calulate kernel value def calcKernelValue(matrix_x, sample_x, kernelOption): kernelType = kernelOption[0] numSamples = matrix_x.shape[0] kernelValue = mat(zeros((numSamples, 1))) if kernelType == 'linear': kernelValue = matrix_x * sample_x.T elif kernelType == 'rbf': sigma = kernelOption[1] if sigma == 0: sigma = 1.0 for i in xrange(numSamples): diff = matrix_x[i, :] - sample_x kernelValue[i] = exp(diff * diff.T / (-2.0 * sigma**2)) else: raise NameError('Not support kernel type! You can use linear or rbf!') return kernelValue # calculate kernel matrix given train set and kernel type def calcKernelMatrix(train_x, kernelOption): numSamples = train_x.shape[0] kernelMatrix = mat(zeros((numSamples, numSamples))) for i in xrange(numSamples): kernelMatrix[:, i] = calcKernelValue(train_x, train_x[i, :], kernelOption) return kernelMatrix # define a struct just for storing variables and data class SVMStruct: def __init__(self, dataSet, labels, C, toler, kernelOption): self.train_x = dataSet # each row stands for a sample self.train_y = labels # corresponding label self.C = C # slack variable self.toler = toler # termination condition for iteration self.numSamples = dataSet.shape[0] # number of samples self.alphas = mat(zeros((self.numSamples, 1))) # Lagrange factors for all samples self.b = 0 self.errorCache = mat(zeros((self.numSamples, 2))) self.kernelOpt = kernelOption self.kernelMat = calcKernelMatrix(self.train_x, self.kernelOpt) # calculate the error for alpha k def calcError(svm, alpha_k): output_k = float(multiply(svm.alphas, svm.train_y).T * svm.kernelMat[:, alpha_k] + svm.b) error_k = output_k - float(svm.train_y[alpha_k]) return error_k # update the error cache for alpha k after optimize alpha k def updateError(svm, alpha_k): error = calcError(svm, alpha_k) svm.errorCache[alpha_k] = [1, error] # select alpha j which has the biggest step def selectAlpha_j(svm, alpha_i, error_i): svm.errorCache[alpha_i] = [1, error_i] # mark as valid(has been optimized) candidateAlphaList = nonzero(svm.errorCache[:, 0].A)[0] # mat.A return array maxStep = 0; alpha_j = 0; error_j = 0 # find the alpha with max iterative step if len(candidateAlphaList) > 1: for alpha_k in candidateAlphaList: if alpha_k == alpha_i: continue error_k = calcError(svm, alpha_k) if abs(error_k - error_i) > maxStep: maxStep = abs(error_k - error_i) alpha_j = alpha_k error_j = error_k # if came in this loop first time, we select alpha j randomly else: alpha_j = alpha_i while alpha_j == alpha_i: alpha_j = int(random.uniform(0, svm.numSamples)) error_j = calcError(svm, alpha_j) return alpha_j, error_j # the inner loop for optimizing alpha i and alpha j def innerLoop(svm, alpha_i): error_i = calcError(svm, alpha_i) ### check and pick up the alpha who violates the KKT condition ## satisfy KKT condition # 1) yi*f(i) >= 1 and alpha == 0 (outside the boundary) # 2) yi*f(i) == 1 and 0<alpha< C (on the boundary) # 3) yi*f(i) <= 1 and alpha == C (between the boundary) ## violate KKT condition # because y[i]*E_i = y[i]*f(i) - y[i]^2 = y[i]*f(i) - 1, so # 1) if y[i]*E_i < 0, so yi*f(i) < 1, if alpha < C, violate!(alpha = C will be correct) # 2) if y[i]*E_i > 0, so yi*f(i) > 1, if alpha > 0, violate!(alpha = 0 will be correct) # 3) if y[i]*E_i = 0, so yi*f(i) = 1, it is on the boundary, needless optimized if (svm.train_y[alpha_i] * error_i < -svm.toler) and (svm.alphas[alpha_i] < svm.C) or\ (svm.train_y[alpha_i] * error_i > svm.toler) and (svm.alphas[alpha_i] > 0): # step 1: select alpha j alpha_j, error_j = selectAlpha_j(svm, alpha_i, error_i) alpha_i_old = svm.alphas[alpha_i].copy() alpha_j_old = svm.alphas[alpha_j].copy() # step 2: calculate the boundary L and H for alpha j if svm.train_y[alpha_i] != svm.train_y[alpha_j]: L = max(0, svm.alphas[alpha_j] - svm.alphas[alpha_i]) H = min(svm.C, svm.C + svm.alphas[alpha_j] - svm.alphas[alpha_i]) else: L = max(0, svm.alphas[alpha_j] + svm.alphas[alpha_i] - svm.C) H = min(svm.C, svm.alphas[alpha_j] + svm.alphas[alpha_i]) if L == H: return 0 # step 3: calculate eta (the similarity of sample i and j) eta = 2.0 * svm.kernelMat[alpha_i, alpha_j] - svm.kernelMat[alpha_i, alpha_i] \ - svm.kernelMat[alpha_j, alpha_j] if eta >= 0: return 0 # step 4: update alpha j svm.alphas[alpha_j] -= svm.train_y[alpha_j] * (error_i - error_j) / eta # step 5: clip alpha j if svm.alphas[alpha_j] > H: svm.alphas[alpha_j] = H if svm.alphas[alpha_j] < L: svm.alphas[alpha_j] = L # step 6: if alpha j not moving enough, just return if abs(alpha_j_old - svm.alphas[alpha_j]) < 0.00001: updateError(svm, alpha_j) return 0 # step 7: update alpha i after optimizing aipha j svm.alphas[alpha_i] += svm.train_y[alpha_i] * svm.train_y[alpha_j] \ * (alpha_j_old - svm.alphas[alpha_j]) # step 8: update threshold b b1 = svm.b - error_i - svm.train_y[alpha_i] * (svm.alphas[alpha_i] - alpha_i_old) \ * svm.kernelMat[alpha_i, alpha_i] \ - svm.train_y[alpha_j] * (svm.alphas[alpha_j] - alpha_j_old) \ * svm.kernelMat[alpha_i, alpha_j] b2 = svm.b - error_j - svm.train_y[alpha_i] * (svm.alphas[alpha_i] - alpha_i_old) \ * svm.kernelMat[alpha_i, alpha_j] \ - svm.train_y[alpha_j] * (svm.alphas[alpha_j] - alpha_j_old) \ * svm.kernelMat[alpha_j, alpha_j] if (0 < svm.alphas[alpha_i]) and (svm.alphas[alpha_i] < svm.C): svm.b = b1 elif (0 < svm.alphas[alpha_j]) and (svm.alphas[alpha_j] < svm.C): svm.b = b2 else: svm.b = (b1 + b2) / 2.0 # step 9: update error cache for alpha i, j after optimize alpha i, j and b updateError(svm, alpha_j) updateError(svm, alpha_i) return 1 else: return 0 # the main training procedure def trainSVM(train_x, train_y, C, toler, maxIter, kernelOption = ('rbf', 1.0)): # calculate training time startTime = time.time() # init data struct for svm svm = SVMStruct(mat(train_x), mat(train_y), C, toler, kernelOption) # start training entireSet = True alphaPairsChanged = 0 iterCount = 0 # Iteration termination condition: # Condition 1: reach max iteration # Condition 2: no alpha changed after going through all samples, # in other words, all alpha (samples) fit KKT condition while (iterCount < maxIter) and ((alphaPairsChanged > 0) or entireSet): alphaPairsChanged = 0 # update alphas over all training examples if entireSet: for i in xrange(svm.numSamples): alphaPairsChanged += innerLoop(svm, i) print '---iter:%d entire set, alpha pairs changed:%d' % (iterCount, alphaPairsChanged) iterCount += 1 # update alphas over examples where alpha is not 0 & not C (not on boundary) else: nonBoundAlphasList = nonzero((svm.alphas.A > 0) * (svm.alphas.A < svm.C))[0] for i in nonBoundAlphasList: alphaPairsChanged += innerLoop(svm, i) print '---iter:%d non boundary, alpha pairs changed:%d' % (iterCount, alphaPairsChanged) iterCount += 1 # alternate loop over all examples and non-boundary examples if entireSet: entireSet = False elif alphaPairsChanged == 0: entireSet = True print 'Congratulations, training complete! Took %fs!' % (time.time() - startTime) return svm # testing your trained svm model given test set def testSVM(svm, test_x, test_y): test_x = mat(test_x) test_y = mat(test_y) numTestSamples = test_x.shape[0] supportVectorsIndex = nonzero(svm.alphas.A > 0)[0] supportVectors = svm.train_x[supportVectorsIndex] supportVectorLabels = svm.train_y[supportVectorsIndex] supportVectorAlphas = svm.alphas[supportVectorsIndex] matchCount = 0 for i in xrange(numTestSamples): kernelValue = calcKernelValue(supportVectors, test_x[i, :], svm.kernelOpt) predict = kernelValue.T * multiply(supportVectorLabels, supportVectorAlphas) + svm.b if sign(predict) == sign(test_y[i]): matchCount += 1 accuracy = float(matchCount) / numTestSamples return accuracy # show your trained svm model only available with 2-D data def showSVM(svm): if svm.train_x.shape[1] != 2: print "Sorry! I can not draw because the dimension of your data is not 2!" return 1 # draw all samples for i in xrange(svm.numSamples): if svm.train_y[i] == -1: plt.plot(svm.train_x[i, 0], svm.train_x[i, 1], 'or') elif svm.train_y[i] == 1: plt.plot(svm.train_x[i, 0], svm.train_x[i, 1], 'ob') # mark support vectors supportVectorsIndex = nonzero(svm.alphas.A > 0)[0] for i in supportVectorsIndex: plt.plot(svm.train_x[i, 0], svm.train_x[i, 1], 'oy') # draw the classify line w = zeros((2, 1)) for i in supportVectorsIndex: w += multiply(svm.alphas[i] * svm.train_y[i], svm.train_x[i, :].T) min_x = min(svm.train_x[:, 0])[0, 0] max_x = max(svm.train_x[:, 0])[0, 0] y_min_x = float(-svm.b - w[0] * min_x) / w[1] y_max_x = float(-svm.b - w[0] * max_x) / w[1] plt.plot([min_x, max_x], [y_min_x, y_max_x], '-g') plt.show() ``` # 测试代码在这里 ``` from numpy import * import SVM ################## test svm ##################### ## step 1: load data print ("step 1: load data...") dataSet = [] labels = [] fileIn = open('D:\Python33\SVM\testSet.txt') for line in fileIn.readlines(): lineArr = line.strip().split('\t') dataSet.append([float(lineArr[0]), float(lineArr[1])]) labels.append(float(lineArr[2])) dataSet = mat(dataSet) labels = mat(labels).T train_x = dataSet[0:81, :] train_y = labels[0:81, :] test_x = dataSet[80:101, :] test_y = labels[80:101, :] ## step 2: training... print ("step 2: training...") C = 0.6 toler = 0.001 maxIter = 50 svmClassifier = SVM.trainSVM(train_x, train_y, C, toler, maxIter, kernelOption = ('linear', 0)) ## step 3: testing print ("step 3: testing...") accuracy = SVM.testSVM(svmClassifier, test_x, test_y) ## step 4: show the result print ("step 4: show the result...") print ('The classify accuracy is: %.3f%%' % (accuracy * 100)) SVM.showSVM(svmClassifier) ``` # 测试的数据在这里 3.542485 1.977398 -1 3.018896 2.556416 -1 7.551510 -1.580030 1 2.114999 -0.004466 -1 8.127113 1.274372 1 7.108772 -0.986906 1 8.610639 2.046708 1 2.326297 0.265213 -1 3.634009 1.730537 -1 0.341367 -0.894998 -1 3.125951 0.293251 -1 2.123252 -0.783563 -1 0.887835 -2.797792 -1 .......... # 现在我想把这个二维主成分的SVM改成分类五维主成分的 就是把测试的数据改成比如 3.125951 0.293251 2.123252 -0.783563 0.887835 -1 0.887835 -2.797792 3.634009 1.730537 -2.797792 -1 但还是二分类, 请问源程序代码和测试代码应该改哪里?
SVM在文本分类中的使用
现在在研究自然语言处理,要用SVM对文本进行分类。但是SVM的训练与测试文件都是数据格式的,而我要处理的是纯文本文件,有没有人知道如何将纯文本文件转化为要求的数据格式呢?
lua+torch7安装svm包出错:/usr/bin/ld: cannot find -lluajit
``` [ 13%] Building C object CMakeFiles/svmutil.dir/util.c.o [ 18%] Linking C shared module libsvmutil.so /usr/bin/ld: cannot find -lluajit collect2: error: ld returned 1 exit status CMakeFiles/svmutil.dir/build.make:114: recipe for target 'libsvmutil.so' failed make[2]: *** [libsvmutil.so] Error 1 CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/svmutil.dir/all' failed make[1]: *** [CMakeFiles/svmutil.dir/all] Error 2 Makefile:129: recipe for target 'all' failed make: *** [all] Error 2 ``` 使用命令luarocks install svm安装后就提示上面的错误了。 以为是lua安装的问题,但是不导入svm的包时,lua代码运行没有问题。 查看lua版本是: ``` (base) mashuo@hri_four:~/work/paper/soundnet$ luajit -v LuaJIT 2.1.0-beta1 -- Copyright (C) 2005-2015 Mike Pall. http://luajit.org/ ``` 所以想请问一下,是哪里出现的问题呢,是需要重新安装lua吗,还是哪里有问题呢。。。 我的账号里没有悬赏用的币。。。 解决问题后,可以私我,发个50块红包略表谢意哈,谢谢大家
svm对输入数据的顺序是否敏感?
svm对输入数据的顺序是否敏感? 一组相同的训练数据,只是顺序不同,训练出来的超平面是否一定相同? 可以以opencv 中的svm或者vlfeat中svm讲解原因。
Python里SVM权值调整class_weight是怎样用的?
clf = svm.SVC(C=1, kernel='rbf', class_weight={0: 1, 1: 10}) 请问这个class_weight={0: 1, 1: 10}表示的是什么意思?
python类内部的方法调用
class Adaboosting中demo_train方法中要调用同个类中的loadDataSet方法,但是根本没进到程序之中,求教是什么原因,谢谢大佬们了 demo_train的代码如下 ``` def demo_train(self): print("已进入到了内部函数") print(self.model) if self.model==None: self.model="test.txt" dataArr, LabelArr = self.loadDataSet(self.model) weakClassArr, aggClassEst = Adaboosting.adaBoostTrainDS(dataArr, LabelArr) # from my_adaboosting_SVM_ROC import adaClassify print("正在训练模型...") predictions = self.adaClassify(dataArr, weakClassArr) errArr = np.mat(np.ones((len(dataArr), 1))) number=1-float(errArr[predictions != np.mat(LabelArr).T].sum() / len(dataArr) * 100) print('训练集的错误率:%.3f%%' % float(errArr[predictions != np.mat(LabelArr).T].sum() / len(dataArr) * 100)) # print("33333333") print(self.train) if self.train==None: self.train="test6.txt" # print("444444444") print(self.train) # train = "test6.txt" testArr, testLabelArr = self.loadDataSet(self.train) predictions = self.adaClassify(testArr, weakClassArr) print(predictions) errArr = np.mat(np.ones((len(testArr), 1))) number1=1-float(errArr[predictions != np.mat(testLabelArr).T].sum() / len(testArr) * 100) print('测试集的错误率:%.3f%%' % float(errArr[predictions != np.mat(testLabelArr).T].sum() / len(testArr) * 100)) from my_adaboosting_SVM_ROC import plotROC plotROC(aggClassEst.T, LabelArr) return number ,number1 ``` loadDataSet的代码如下 ``` # 导入数据 def loadDataSet(fileName): print("hhhhhhhhhhhhhhhhh") numFeat = len((open(fileName).readline().split('\t'))) dataMat = []; labelMat = [] fr = open(fileName) for line in fr.readlines(): lineArr = [] curLine = line.strip().split('\t') for i in range(numFeat - 1): lineArr.append(float(curLine[i])) dataMat.append(lineArr) labelMat.append(float(curLine[-1])) return dataMat, labelMat ``` 运行结果: ![图片说明](https://img-ask.csdn.net/upload/202001/12/1578831845_541963.png)
pyqt+Python两个类之间传值
class Ui_MainWindow的某个代码段 ``` def massage(self): print("按了啊") dir_choose, filetype = QFileDialog.getOpenFileName(self.model, "选取文件", "./", "All Files (*);;Excel Files (*.xls)") # 起始路径 if dir_choose == "": print("\n取消选择") return print("\n你选择的文件夹为:") print(dir_choose) self.model.setText(dir_choose) adaboost = Adaboosting() result=adaboost.demo(dir_choose) self.text1.setText("训练完成") self.model_result.setText(result) ``` 然后调用另一个类class Adaboosting的方法 ``` def demo(result): print("已进入到了内部函数") # result="text1.txt" from my_adaboosting_SVM_ROC import loadDataSet dataArr, LabelArr = loadDataSet(result) from my_adaboosting_SVM_ROC import adaBoostTrainDS weakClassArr, aggClassEst = adaBoostTrainDS(dataArr, LabelArr) from my_adaboosting_SVM_ROC import adaClassify predictions = adaClassify(dataArr, weakClassArr) errArr = np.mat(np.ones((len(dataArr), 1))) number=float(errArr[predictions != np.mat(LabelArr).T].sum() / len(dataArr) * 100) print('训练集的错误率:%.3f%%' % float(errArr[predictions != np.mat(LabelArr).T].sum() / len(dataArr) * 100)) return number ``` 但是这两类之间传值没实现,报错如下 Process finished with exit code -1073740791 (0xC0000409)
python中sklearn.svm.SVR,模型预测得出的结果都是一个值,请高手指点迷津。
部分代码如下: feature_set_train=feature_set[:6000] result_set_train=result_set[:6000] svr_model=SVR(C=1024,gamma=0.5) svr_model.fit(feature_set_train,result_set_train) feature_set_=feature_set[5900:6020] result_set_ = result_set[5900:6020] result_set_predict=svr_model.predict(feature_set_) 得出的拟合结果是对训练数据部分数据进行预测,则预测效果很好,对测试数据进行预测部分则得出的结果都为一个值,不明白是为什么?画图如下:![图片说明](https://img-ask.csdn.net/upload/201606/08/1465394589_872267.png) 图中0-100为训练数据预测情况,100-120为测试数据预测情况。 模型中的数据为20维输入,1维输出 其中只有训练点输入模型进行预测才能得出有效值,其他点输入模型进行预测都得到的是同一个值。
windows下OpenCV-python如何用GPU加速,求解答,谢谢了!
最近用OpenCV进行视频行人检测,发现用HOG+SVM处理每一帧太慢了,想到深度学习pytorch中 ``` model.cuda() ```就可以用GPU加速,就想知道windows下OpenCV-python如何用GPU加速,具体怎么用,如果有知道的请帮帮我,感谢大家!
sklearn中svm支持向量机做人脸识别,fetch_lfw_people无法下载lfw数据库
我用sklearn中的svm支持向量机做人脸识别时,在python中用fetch_lfw_people下载lfw数据库,出错无法下载,而自己手动下载放在指定目录下还是没用,运行程序时还是自动下载数据库,而不是加载
用不同特征训练两个SVM分类器检测同一种目标容易实现吗?
比如说分别用HOG特征和LBP特征,在SVM下训练两个分类器,检测的时候用两个分类器同时检测图片中的行人,容易实现吗?
LBP和HOG两种特征融合训练svm分类器,进行目标检测
如题,进行目标检测,比如在一幅图中找到一辆汽车,并将目标区域用矩形框标记,该怎样检测,如何编程呢?
图像分类OpenCV中svm使用报错
参考代码:https://blog.csdn.net/xq920831/article/details/85052318 第123行 用我自己的图片集的时候会报错: cv2.error: OpenCV(3.4.1) C:\projects\opencv-python\opencv\modules\ml\src\data.cpp:298: error: (-215) (layout == ROW_SAMPLE && responses.rows == nsamples) || (layout == COL_SAMPLE && responses.cols == nsamples) in function cv::ml::TrainDataImpl::setData 有人能帮帮我吗
如何让opencv中的SVM返回值为概率而不是1,-1之类的标签
如何让opencv中的SVM返回值:svm.predict(testFeatureMat)为概率而不是1,-1之类的标签。需要改什么参数?谢谢。
关机SVM分类时,数据点维度不一致的情况
SVM分类完成后,新进入一维度更高的数据点,可以在此基础上继续通过调整支持向量来进行分类吗(即前后两部分数据维度不同,是否可以分类)?
svm分类,类的数量对最后分类的准确率有影响吗
比如说原本分20类,每类提供n个样本,训练得到的结果有个准确率,可是如果分一百个类,每个类也提供n个样本,那准确率与之前相比会有大幅的变化吗,没有试验过,求问
SVM分类器在车型识别上的应用(真诚感谢)
svm分类器相对于其他分类器在车型识别上的优势?相对于神经网络,朴素贝叶斯,决策树等分类器,支持向量机的优势是什么?
MATLAB的LS-SVM工具对数据进行建模预测分析
对于MATLAB的LS-SVM工具的使用不是很清楚,希望有过经验的能教教我,有偿!
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
五年程序员记流水账式的自白。
不知觉已中码龄已突破五年,一路走来从起初铁憨憨到现在的十九线程序员,一路成长,虽然不能成为高工,但是也能挡下一面,从15年很火的android开始入坑,走过java、.Net、QT,目前仍处于android和.net交替开发中。 毕业到现在一共就职过两家公司,目前是第二家,公司算是半个创业公司,所以基本上都会身兼多职。比如不光要写代码,还要写软著、软著评测、线上线下客户对接需求收集...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
一文详尽系列之模型评估指标
点击上方“Datawhale”,选择“星标”公众号第一时间获取价值内容在机器学习领域通常会根据实际的业务场景拟定相应的不同的业务指标,针对不同机器学习问题如回归、分类、排...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
程序员该看的几部电影
1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦!!
去年,阿里云发布了本地 IDE 插件 Cloud Toolkit,仅 IntelliJ IDEA 一个平台,就有 15 万以上的开发者进行了下载,体验了一键部署带来的开发便利。时隔一年的今天,阿里云正式发布了 Visual Studio Code 版本,全面覆盖前端开发者,帮助前端实现一键打包部署,让开发提速 8 倍。 VSCode 版本的插件,目前能做到什么? 安装插件之后,开发者可以立即体验...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
2019年除夕夜的有感而发
天气:小雨(加小雪) 温度:3摄氏度 空气:严重污染(399) 风向:北风 风力:微风 现在是除夕夜晚上十点钟,再有两个小时就要新的一年了; 首先要说的是我没患病,至少现在是没有患病;但是心情确像患了病一样沉重; 现在这个时刻应该大部分家庭都在看春晚吧,或许一家人团团圆圆的坐在一起,或许因为某些特殊原因而不能团圆;但不管是身在何处,身处什么境地,我都想对每一个人说一句:新年快乐! 不知道csdn这...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了掌握好Android打下基础。
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
相关热词 c# 时间比天数 c# oracle查询 c# 主动推送 事件 c# java 属性 c# 控制台 窗体 c# 静态类存值 c#矢量作图 c#窗体调用外部程式 c# enum是否合法 c# 如何卸载引用
立即提问