![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python文本处理
NLP中会用到常见的python操作,小白也能会。
#温室里的土豆
学习追星两不误
展开
-
去除值为0的行
在文本细粒度分析时,往往一句话中提及的实体并不相同,一旦指标多了以后,就会存在很多0行,如果不加以处理则会影响分析结果,因此尽量地保留信息量较多的短文本。情形一:即每个指标都不能为0,即任何一个为0都不行(类似于and,要求较高)这种情形一般适用于对因变量的处理,比如满意度、忠诚度为0的较多,那么被解释变量就没有信息量了。y_data=y_data[(y_data!=0).all(axis=1)]情形二:去除全部为0的行,保留不全为零的行(类似于or,要求较宽)all_data=y[原创 2022-04-25 22:13:15 · 3263 阅读 · 0 评论 -
变量的离散化——自然断点法
在数据的离散化中有很多方法,如聚类分析、均值划分等等。自然断点法也是一种常用方法,在空间计量中可能都是现成的软体如Arcgis、geoda等点一下就出来了,但对于一般数据的划分应该怎么办呢?今天基于python的jenkspy库记录一下~step1:自然断点import pandas as pdimport jenkspyimport numpy as npdf = pd.read_excel('amos数据.xlsx')ret={}for col_name in df......原创 2022-04-24 16:44:43 · 7790 阅读 · 10 评论 -
遍历筛选核心关键词与文档
在文本处理的过程中,有时我们并不是需要所有的数据,而实需要包含某些关键词的文本,因此可以通过for循环进行遍历筛选。具体流程:读取数据 — 分词 — 遍历筛选 — 拼接还原step1:导入所需要的包和数据集import pandas as pdimport jieba#数据分割data = pd.read_excel('不止武汉.xlsx')['内容']#读取需要筛选的内容列other = pd.read_excel('不止武汉.xlsx').iloc[:,1]#读取其他列keys=原创 2022-04-06 11:03:11 · 1694 阅读 · 0 评论 -
python合并多个txt文件
如题:将文件夹c_b下的多个txt文件合并为1个:代码如下:import osfilepath=r'c:\Users\64884\Desktop\combine\c_b'filenames=[file for file in os.walk(filepath)]ds=[]lis=[]for each in filenames[0][-1]: with open(filenames[0][0]+'\\'+each,mode='r',encoding='utf-8') as.原创 2022-03-16 22:05:47 · 2865 阅读 · 1 评论 -
分类变量编码python处理
当变量为分类变量,又可称定性变量时,文字时无法进行数学运算的,需要将其转化。分类变量可以分为有序分类与无序分类,如奖学金的等级、疫情的风险区等属于有序分类,而省份、国家、地区等是没有优劣之分的,属于无序变量。此外,分类变量还可以分为为二分类与多分类,如性别、是否为“XX”等为二分类,可以直接转化为0-1变量,其余即为多分类。在处理上,二分类可以转化为0-1变量或虚拟变量直接用于数学运算,而多分类变量如果是等距有序的同样可以直接运算,若是无序的或非等距的...原创 2022-03-16 15:32:47 · 3708 阅读 · 0 评论 -
解决“excel复制到txt行数增多问题”
1 问题描述很多时候我们从一个excel中赋值内容到txt中时行数会无缘无故的增多,如图xlsx文件中共14823行,按理复制到txt里行数应该保持不变才对。但事实却是无故地增加了数行:2 原因及对应解决2.1 excel单元格被隐藏解决方式为让隐藏的单元格显示出来即可,可以参考以下链接:隐藏起来的单元格如何全部再显示出来_百度知道https://zhidao.baidu.com/question/383637798.html2.2 每行中存在空格当第...原创 2022-03-16 15:09:56 · 2106 阅读 · 0 评论 -
python 去除文本空行
在读取数据或者进行去除停用词后常常短句会没有剩下,这时就需要去除空行,直接放代码data = open('2022情人节.txt', 'r', encoding='utf-8').readlines()result=[]for line in data: line = line.strip() if len(line)!=0: result.append(line)...原创 2022-02-12 23:24:09 · 2228 阅读 · 0 评论 -
对指定关键词进行词频统计
过往的词频统计都是针对整个文档进行的,而如果研究中需要知道单条评论或某个研究单元内某些词的词频,那么就需要进行额外的处理。原理非常的简单,就是遍历筛选,具体做法为去除停用词的逆运算。Step1:分词最基本的处理的就不做多余的赘述,直接上码:def seg_word(data): seg_result=[] stop_list = open('哈工大停用词表.txt','r',encoding='utf-8').read() for sentence in data:原创 2022-03-11 19:23:35 · 2171 阅读 · 0 评论 -
去除list of list中的引号与括号
a = [['我要发','SCI'],['然后','去','四川大学'],['读博士']]result=[]for i in a: result.append(' '.join(i))原创 2022-03-09 13:27:01 · 999 阅读 · 0 评论 -
pandas 按日期对数据进行分组归类及其问题
在处理分析数据时经常会进行分组分类,如样本有很多条,每一条样本都是具体到每一天多少时分,但我们可能只想获得每个月的情况,这就需要进行一个归类与分组。演示数据:代码段:import pandas as pddata = pd.read_excel('data.xlsx')#读取数据data['time']=data['时间'].dt.strftime('%y%m')#将数据中的时间列按照“年-月”的格式输出但这样会报错,报错提示为:AttributeError: Can onl原创 2022-03-08 14:02:20 · 4889 阅读 · 0 评论 -
pandas 文本分类聚合
在NLP的情感分析过程中,往往是对评论逐条处理分析,但有时也会进行分组分析,如以商家、省份、某个场景为研究单元。这时能最直接的方法就是逐个进行计算,如果场景比较多,那么肯定是不能逐个挨着挨着算的,但由于每个场景他的样本量都是不同的,因此数据集是一个非平衡的,即在10000条数据中,第一个场景的数据是[1,100],第二个场景的范围是[101,230]....以此类推因此若我们要使用for循环则需要将其进行处理,即以场景数为循环单位。这里可以分为几种处理情况:case1:基于词典的情感分析 ..原创 2022-03-08 14:30:56 · 1608 阅读 · 0 评论