精华内容
下载资源
问答
  • 将txt多行文本合并成一行

    千次阅读 2015-01-23 10:02:00
    1、用word打开txt文本2、打开“替换”功能,查找内容“^p”,替换内容为“,”(均无双引号)。即可把多列文字合并一行。 转载于:https://www.cnblogs.com/coolbear/p/4243394.html...
    1、用word打开txt文本
    2、打开“替换”功能,查找内容“^p”,替换内容为“,”(均无双引号)。即可把多列文字合并为一行。

    转载于:https://www.cnblogs.com/coolbear/p/4243394.html

    展开全文
  • 单元格内容提取。 使用在网上下载好的宏文件,将之加载到excel文件中。在对应单元格中填写相应的公式,...将一行数据转换成多行,将几列数据打印转换多几列数据打印(如图)。 ‘ 合并多个工作表,工作薄。 ...

    单元格内容提取。

    使用在网上下载好的宏文件,将之加载到excel文件中。在对应单元格中填写相应的公式,提取单元格内容。
    1:加载宏的方式。

    excel使用宏加载

    2:使用宏提取表格中的文字。
    p_pinyin:将汉字转换成拼音存储到单元格中。
    p_num:提取表格中的数字。
    p_phone:将单元格中的电话号提取出来。


    将一行数据转换成多行,将几列数据打印转换成多几列数据打印(如图)。


    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    视频:

    单行或列转换成多行或列

    合并多个工作表,工作薄。

    excel多个工作薄合并,多个表格合并

    展开全文
  • 链式编程的好处:链式编程可以把原来的多行代码合并成一行代码,极大地提高了开发效率,所以链式编程受到了许多小伙伴的喜爱如果才能进行链式编程呢? 首先你需要看代码返回的结果是不是对象,是对象才可以进行链式...

    今天为各位小伙伴讲解一下JQuery里面的链式编程
    链式编程的好处:链式编程可以把原来的多行代码合并成一行代码,极大地提高了开发效率,所以链式编程受到了许多小伙伴的喜爱
    如果才能进行链式编程呢?
    首先你需要看代码返回的结果是不是对象,是对象才可以进行链式编程,不是对象则不能进行链式编程
    下面通过一个案例,演示一下链式编程
    要求:通过点击页面中的按钮,修改div元素的颜色并且在div中插入一段文字,利用链式编程的方式来实现,代码示例如下

    下面是点击按钮前在浏览器中呈现的样子

    接下来是点击按钮后再浏览器中呈现的样式

    此时我们可以很明显的看到div的背景颜色被改变了,而且在后侧的console中打印出来的也是一个对象,这表示返回的结果是一个对象,那么我们就可以放心的进行链式编程了,代码示例如下

    效果截图如下

    有的小伙伴说为什么上面的例子写的这么简单呢,在这里主要是为了照顾初学者小伙伴的感受,例子虽然很简单,但是能够把链式编程的过程讲解清楚就可以了。

    接下来来一个深入的例子

    获取列表中每个li,然后当鼠标进入后,当前进入的li有高亮显示效果,点击的时候可以改变当前li的字体大小和颜色

    代码截图如下

    接着讲解JQuery中获取兄弟元素的一些方法

    next():表示当前元素之后的第一个兄弟元素

    nextAll():表示当前元素之后的所有的兄弟元素

    prev():表示当前元素之前的第一个兄弟元素

    prveAll():表示当前元素之前的所有的兄弟元素

    siblings():表示当前元素的所有兄弟元素

    断链:表示的是当前元素返回的不是对象,那么此时我们边不能进行链式编程了

    解决断链:找到是在哪里断链的,那么就在哪里修复断链,只需要给断链的地方添加上一个end()方法,就可以修复断链了

    修复完断链之后,我们就可以继续的在后面进行链式编程了

    JQuery的链式编程就讲解到这里哈,谢谢大家的支持,如果觉得写的还不错的话,记得点赞呦。

    希望大家积极发表建议哈!谢谢大家的支持

     

     

    展开全文
  • 表格固定左序列、顶部序列、第一行、列标题、统计行; 自动统计,排序(自定义统计规则); 表格图文、序列号、列标题格式化; 表格各组成背景、文字、网格、padding等配置; 表格批注; 表格内容、列标题点击事件;...
  • Step 1: 文本读取 ...处理方法是建立个save列表,每次遇到文字就储存进去,遇到当前行包含review的就把这些文字合并成字符串添加到train_pos_comments中。 def process_file(path,list): save=

    Step 1: 文本读取

    1、读取数据

    文本读取:数据分为三份:pos_train,neg_train和test。
    首先对pos和neg的data读取,将内容取出来
    这里的一个难度是,对于同一组样本,有的以多行的形式展示,还有某些样本被多行之间还有空格。
    如以下情况:
    在这里插入图片描述

    在这里插入图片描述
    处理方法是建立一个save列表,每次遇到文字就储存进去,遇到当前行包含review的行就把这些文字合并成字符串添加到train_pos_comments中。

    def process_file(path,list):
    
    
        save=[]#建立储存列表
        f=open(path,"r",encoding="utf-8").readlines()#打开路径
        for line in f:#遍历每一行
    
            if "review"  in line:#如果当前行的文字含有review
                if len(save)!=0:#且save里不为空
                    list.append("".join(save))#更新一次train_pos_comments
                    save=[]#清空save
                continue#继续下一个循环
            if "review" not in line and line.rstrip():#如果当前行是文字
                save.append(line.rstrip())#把该行加入save中
    
    process_file(train_pos_file,train_pos_comments)#分别对pos和neg进行处理
    process_file(train_neg_file,train_neg_comments)
    

    2、建立label

    pos中有5000个,neg有3065个,pos的标签值定为1,neg的标签值定位0,建立与data相同长度的labels

    # print(len(train_comments))#5000
    # print(len(test_comments))#3065
    
    pos_labels=["1"]*5000
    neg_labels=["0"]*3065
    

    3、将pos和neg拼接

    将data和label分别拼接起来

    '''拼接训练集的pos和neg样本'''
    train_set=train_pos_comments+train_neg_comments
    train_label=pos_labels+neg_labels
    # print(len(train_set))#8065
    # print(len(train_label))#8065
    

    4、测试集的文本读取

    这里和训练集不同的是每一个回答都自带label,那么在自定义函数中需要返回test_comments和对应的label值

    '''测试集文本读取'''
    
    def process_test_file(path):
    
        list=[]#建立空列表储存每一个comment
        save=[]#建立save储存每一个子comment
        labels=[]#建立labels储存标签值
        f=open(path,"r",encoding="utf-8").readlines()#打开路径
        for line in f:#遍历每一行
            if "review"  in line:#如果review出现在里面
                if len(save)!=0:#且save的长度不为0
                    list.append("".join(save))#释放save到list中
                    save=[]#清空save
            if "review" not in line and line.rstrip():#如果当前行有文字
                save.append(line.rstrip())#将子文本添加到save中
            if 'label="0"' in line:#如果当前行出现0,label append进去
                labels.append(0)
            if 'label="1"' in line:#如果当前行出现1,label append 进去
                labels.append(1)
        return list,labels #返回test_comments和test_labels
    
    
    test_set,test_label=process_test_file(test_cob_file)
    

    Step 2: 简单的可视化

    对于每一个用户的回答,统计这个回答的长度,使用Counter返回一个字典,key是回答的长度,values是出现这个长度的回答的数量。
    再使用matplotlib画图。

    '''简单的可视化:对于训练数据中的正负样本,分别画出一个histogram,x轴是评价的字符数量,y轴是这个长度的比例'''
    
    pos_size=[len(i) for i in train_pos_comments]#统计每个回答的长度
    neg_size=[len(j) for j in train_neg_comments]
    #统计个数
    pos_counter=Counter(pos_size)#返回一个字典
    pos_counter=sorted(pos_counter.items(),key=lambda item:item[0],reverse=False)#根据字典的key进行排序
    neg_counter=Counter(neg_size)
    neg_counter=sorted(neg_counter.items(),key=lambda item:item[0],reverse=False)
    # print(pos_counter)
    
    '''
    #画表
    fig,ax=plt.subplots(1,2)
    ax[0].bar([i[0] for i in pos_counter],[j[1]/5000 for j in pos_counter])
    ax[1].bar([i[0] for i in neg_counter],[j[1]/3065 for j in neg_counter])
    ax[0].set_title=("pos")
    ax[0].set_xlabel=("length")
    ax[0].set_ylabel=("freq")
    ax[1].set_title=("neg")
    plt.show()
    '''
    
    '''
    

    Step 3:文本处理

    • jieba分词处理
    • 停用词处理
    • 去除标点符号
    • 去除数字
    '''
    文本处理
    停用词过滤
    去掉特殊符号
    去掉数字
    '''
    
    #分词
    train_set=[jieba.lcut(line) for line in train_set]#使用jieba分词对train_set中的每一个回答进行分词
    test_set=[jieba.lcut(line) for line in test_set]#返回的是list of list
    # print(test_set)
    #停用词表
    stopwords=list(stopwords.words("english"))#建立一个停用词表
    
    #2、对停用词过滤
    train_set=[ [w for w in line if w not in stopwords] for line in train_set]#返回list of list
    test_set=[[w for w in line if w not in stopwords]for line in test_set]
    
    # print(len(train_set2))
    
    #3、去掉非单词符号
    pc="[\W+]"#去掉标点符号
    train_set=[[re.sub(pc,"",w) for w in line] for line in train_set]#大list代表train_set,小list代表每一个回答的分词结果
    test_set=[[re.sub(pc,"",w) for w in line ]for line in test_set]#将出现非单词符号转换成""
    # print(test_set)
    
    #4、去掉数字
    pc2=r"\d+\.?\d*"
    train_set=[[re.sub(pc2,"",w)for w in line]for line in train_set]#去掉数字
    test_set=[[re.sub(pc2,"",w)for w in line]for line in test_set]
    # print(train_set[36])
    
    #5、把空格的地方去掉
    train_set=[[w for w in line if w]for line in train_set]#此时之前是数字和标点符号的地方都是" ”
    #过滤掉
    test_set=[[w for w in line if w] for line in test_set]
    # print(train_set[:20])
    

    Step 4:tf-idf 处理

    经过文本处理后返回的是list of list的格式,需要把每个小list合并为一个字符串

    #list of list,每一个小list必须返回一个str
    train_set_str=[" ".join(line) for line in train_set]
    test_set_str=[" ".join(line) for line in test_set]
    # print(train_set_str)
    
    

    再对train_set和test_set做tf-idf处理

    '''
    feature extraction
    使用tf-idf提取特征并写到数组里面
    '''
    vector=TfidfVectorizer()#建立一个模型
    #将每一个label做tf-idf
    x_train=vector.fit_transform(train_set_str).toarray()#要返回numpy格式
    x_test=vector.transform(test_set_str).toarray()
    train_label=[int(one) for one in train_label]#将label的值从str转为int类型
    test_label=[int(one) for one in test_label]
    
    

    可以查看一下set和label的shape

    # print(x_train.shape)#(8065, 26558)
    # print(x_test.shape)#(2500, 26558)
    # print(np.shape(train_label))#(8065,)
    # print(np.shape(test_label))#(2500,)
    

    shape一致后需要打乱train_set,为了模型更好的学习要将标签为0和1的值在数组中打乱。
    这里用的方法可能比较笨,
    具体的是将data和label使用np.hstack拼接到一起,然后使用np.random.shuffle将每一行打乱。再把data和label拆开。

    '''将train 和test转换为numpy格式'''
    train_label=np.array(train_label).reshape(-1,1)#为了拼接先要reshape
    test_label=np.array(test_label)#test_label也要转换为numpy格式,方便后续计算acc
    # print(test_label)
    
    #拼接train和test
    train_db=np.hstack((x_train,train_label))#拼接data和label
    # print(train_db)
    #打乱第一行
    np.random.shuffle(train_db)#将每一行打乱
    # print(train_db)
    
    #分割训练集
    x_train=train_db[:,:26558]#前26558是data
    y_train=train_db[:,-1]#最后一行是label
    print(x_train.shape)
    print(y_train.shape)
    

    Step 5:使用logistic 回归进行训练

    5.1 超参数调优

    这里需要调参的是选择l1还是l2正则,以及超参数c。对于超参数调优使用Gridsearch的方法,但是不要使用训练集的数据。

    '''训练模型超参数调优,使用l1还是l2,超参数c选择多少?'''
    '''
    lr=LogisticRegression(solver="liblinear",random_state=1)#建立一个lr模型
    param={"penalty":["l1","l2"],"C":np.logspace(0.01,10,10)}#设定参数的字典,取10个可能的c
    clf=GridSearchCV(lr,param_grid=param,cv=5,scoring=make_scorer(f1_score))#建立Gridsearch,cv=5
    clf.fit(x_train,y_train)#使用训练集进行调参
    print(clf.best_params_)#打印最好的参数 #{'C': 1.023292992280754, 'penalty': 'l2'}
    print(clf.best_score_)#打印最好的f1-score #0.8262900218828907#根据f1-score的大小选择合适的C
    '''
    
    

    经过网格搜索,发现C=1.023时,f1-score最大为0.826
    此处要注意的是y_train的格式是(8065,)不是(8065,1)

    5.2 使用找到的超参数进行模型训练

    '''使用训练好的超参数进行预测'''
    lr=LogisticRegression(solver="liblinear",penalty="l2",C=1.023,random_state=1)#建立lr
    model=lr.fit(x_train,y_train)#建立模型,喂训练集data和label
    pred=model.predict(x_test)#使用模型预测x_test
    
    #打印mse
    mse=np.average((pred-test_label)**2)# 计算mse,rmse,打印
    rmse=np.sqrt(mse)
    print("rmse:",rmse)#0.52
    
    #打印准确率
    acc=100*np.mean(pred==test_label)#判断预测正确的数量取平均为acc
    print("acc:",acc) #72.88
    
    

    对于准确率的计算,如果pred=test_label,返回1,否则返回0,计算平均值可以得到准确率
    也可以使用model.score(x_test,test_label)直接计算准确率。

    5.3 Result

    经过计算,rmse=0.52,acc=72.88%
    准确率很一般,unigram 下的tf-idf只考虑了每个单词 对于pos/neg做的贡献。

    5.4 可能的优化方案:

    • 1、更好的模型,选择SVM
    • 2、使用biagram:加入上下词的关联性
    • 3、对文本使用word-embedding
    • 3、使用深度学习 RNN,LSTM,可以考虑到上下文的关系。

    Step 6:使用svm模型

    6.1 svm的超参数调优

    可以被调整的:

    • 1、核函数类型:运行时间太长,只能选择linear
    • 2、C,惩罚因子的参数项
    • 3、Gamma:对于高斯核函数,收敛的速度

    使用对于超参数量较大的模型,使用贝叶斯优化会更好一点。

    6.2 svm模型预测

    选定线性核函数,C=" "

    # '''使用训练好的超参数进行预测'''
    model=SVC(kernel="linear",C="10")
    model.fit(x_train,y_train)
    # 预测
    pred=model.predict(x_test)
    #计算准确率
    acc=np.mean(pred==test_label)
    print("acc:",acc)
    print("score_acc:",model.score(x_test,test_label))
    #计算rmse
    rmse=np.sqrt(np.average((pred-test_label)**2))
    print("rmse",rmse)
    

    计算rmse和acc做,acc:70.36%,rmse:0.544
    可能超参数没选对,gridsearch用的时间太久了,随便给了个c。

    Step 7: 添加n-gram特征

    只需要在建立tf-idf 时
    给定

    vector=TfidfVectorizer(ngram_range=(1,2))
    

    选择unigram和bigram两种情况可能会提高准确率。bigram相当于考虑了每两个词同时出现对于情感分析的影响。

    电脑虚拟内存不够跑不出来了,,,,,

    展开全文
  • 25.多行合并成一行 26.将多个文档按列合并 27.在每行首添加时间标记 28.不做改动重新保存 29.批量提取电子邮件地址 30.用源文件行内容添加到目标中来 31.批量递增替换特定内容 32.批量删除文档中的日期时间 ...
  •  实例014 快速对多行代码进行注释 17  实例015 使用“///”标记给代码段添加说明 18 2.2 运算符的使用 20  实例016 使用引号运算符进行赋值 20  实例017 使用算术运算符开发简单计算器 21  实例018 使用...
  • 25.多行合并成一行 26.将多个文档按列合并 27.在每行首添加时间标记 28.不做改动重新保存 29.批量提取电子邮件地址 30.用源文件行内容添加到目标中来 31.批量递增替换特定内容 32.批量删除文档中的日期时间 33.批量...
  • /* C,C++风格多行注释 */ // C++风格单行注释 # Unix风格单行注释 Hello,World! 通过我们已经学过的知识,你可以编写个最简单的程序输出个也许是程序世界中最有名的词语: echo "Hello World!"; ?> ...
  • 假设你返回的数据格式化之后该列附近数据有相同,则会自动合并成一个单元格,默认不开启合并。 autoCount table 开启显示统计,设置autoCount为true,则该列可以自动统计,默认为false。 fixed fixed设置为...
  • smartTable-2.2.0.zip

    2019-05-30 17:11:07
    表格固定左序列、顶部序列、第一行、列标题、统计行; 自动统计,排序(自定义统计规则); 表格图文、序列号、列标题格式化; 表格各组成背景、文字、网格、padding等配置; 表格批注; 表格内容、列标题点击事件;...
  • 表格固定左序列、顶部序列、第一行、列标题、统计行; 自动统计,排序(自定义统计规则); 表格图文、序列号、列标题格式化; 表格各组成背景、文字、网格、padding等配置; 表格批注; 表格内容、列标题点击事件;...
  • 多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号中的小写字母变成大写字母 让姓名左右对齐 数字居中而小数点又对齐 计算指定单元格编号组中非空单元格的数量 比较两个单元格内容是否一致 怎么样...
  • Excel新增工具集

    2011-12-20 09:30:27
    例如,当前工作表或当前工作簿中的若干工作表中A列有张三、李四、王五、李四,有相同列字段“送货”,则本命令把A列中的两个李四行合并成一行,同时将每个人在所有表中列字段为“送货”的数量相加。 6、比较两表...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号中的小写字母变成大写字母 让姓名左右对齐 数字居中而小数点又对齐 计算指定单元格编号组中非空单元格的数量 比较两个单元格内容是否一致 怎么样...
  • 合并与合计】:可以任意指定两列,对其中列的数据合并同类项,而另列对应的数值则求合计,合计结果存放在合并区域中 【建立图片目录】:对指定文件夹下所有图片(GIF、PNG、JPG,JPEG)建立目录,并批量导入 ...
  • 合并与合计】:可以任意指定两列,对其中列的数据合并同类项,而另列对应的数值则求合计,合计结果存放在合并区域中 【建立图片目录】:对指定文件夹下所有图片(GIF、PNG、JPG,JPEG)建立目录,并批量导入 ...
  • 【取消合并还原合并数据】对列中合并后的单元格取消合并,且恢复合并前所有数据 【合并数据并复制】可以将个区域的数据直接复制到个单元格中 【建立图片目录】对指定文件夹下所有图片(GIF、PNG、JPG、JPEG四...
  • 能将最多三个任意区域存储格(或列)的内容按自定的分隔符号连接成一个字符串写入指定的存储格或新工作表中。可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 ...
  • EXCEL百宝箱8.0终极版

    2011-11-05 16:48:02
    【取消合并还原合并数据】:对列中合并后的单元格取消合并,且恢复合并前所有数据 【合并数据并复制】:可以将个区域的数据直接复制到个单元格中 【合并区域自动换行】:可以让具有合并单元格的区域在自动换行...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    【公农双历查询】【高级定位】【选区背景着色】【修改文件建立时间】【工作表环境设置】【按颜色合计】【根据工资计算钞票】【隔行插入】【折分工作簿(工作表)】【工作表折分】【合并工作簿】【文本与数值互换】...
  • Excel VBA实用技巧大全 附书源码

    热门讨论 2010-10-08 18:59:24
    04046引用输入了任何内容的最后一行单元格(多列情况之一) 04047引用输入了公式或值的最后一行单元格(多列情况之二) 04048引用输入了任何内容的最后一列单元格(单行情况之一) 04049引用输入了公式或值的最后一...
  • 能将最多三个任意区域存储格(或列)的内容按自定的分隔符号连接成一个字符串写入指定的存储格或新工作表中。可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 【隔行...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    能将最多三个任意区域存储格(或列)的内容按自定的分隔符号连接成一个字符串写入指定的存储格或新工作表中。可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 ...
  • 能将最多三个任意区域存储格(或列)的内容按自定的分隔符号连接成一个字符串写入指定的存储格或新工作表中。可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 ...
  • C#微软培训资料

    2014-01-22 14:10:17
    3.3 运 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    3.3 运 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量...
  • 73. 在个单元格中显示多行文字 43 74. 将网页上的数据引入到EXCEL表格 43 75. 取消超级链接 44 76. 编辑单元格内容 44 77. 设置单元格边框 45 78. 设置单元格文本对齐方式 45 79. 输入公式 46 80. 输入人名时使用...
  • 能将最多三个任意区域存储格(或列)的内容按自定的分隔符号连接成一个字符串写入指定的存储格或新工作表中。可以生成含重复值与不含重复值并可选是否排序的连接字符串。连接上万个字符只需短短1分钟即完成。 ...
  • 73. 在个单元格中显示多行文字 43 74. 将网页上的数据引入到EXCEL表格 43 75. 取消超级链接 44 76. 编辑单元格内容 44 77. 设置单元格边框 45 78. 设置单元格文本对齐方式 45 79. 输入公式 46 80. 输入人名时使用...

空空如也

空空如也

1 2 3 4 5
收藏数 90
精华内容 36
关键字:

多行文字合并成一行