python用户评论标签匹配的解决方法
我们观察用户评论发现:属性词往往和情感词伴随出现,原因是用户通常会在描述属性时表达情感,属性是情感表达的对象。还发现:属性词和专用情感词基本都是名词或形容词(形谓词)。
算法流程图如下:
评论数据如下:
代码如下:
#encoding=utf-8 ############################# # # 功能:给定一些中文的产品评论,希望从中找到评价对象及评价词。 # # @author:licl # ############################## fdata = open('JD_DFB_comments_out.txt','r') Output = open('Pattern_Result.txt','a') try: data = fdata.readlines() listline = [] for line in data: listline = line.replace(" ","/") listline = listline.split("/") i = 1 while i < len(listline): if listline[i] != "名词": i = i+2 else: new_list = ["","",""] new_list[0] = listline[i-1] a = i-1 i = i+2 while i < len(listline): if listline[i] == "标点": i = i+2 break else: if listline[i-1]=='不' or listline[i-1]=='不怎么样' or listline[i-1]=='不怎么' or listline[i-1]=='不太': new_list[1] = listline[i-1] if listline[i] == "形容词" or listline[i] == "形谓词": new_list[1] += listline[i-1] b = i-1 t = (b-a)/2 new_list[2] = str(t) for line in new_list: Output.write(line + " ") Output.write("\n") break else: i = i+2 except: print "‘文件不存在'或者‘文件无法打开'" finally: fdata.close() Output.close()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python实现括号匹配的思路详解
1.用一个栈[python中可以用List]就可以解决,时间和空间复杂度都是O(n) # -*- coding: utf8 -*- # 符号表 SYMBOLS = {'}': '{', ']': '[', ')': '(', '>': '<'} SYMBOLS_L, SYMBOLS_R = SYMBOLS.values(), SYMBOLS.keys() def check(s): arr = [] for c in s: if c in SYMBOLS_L: # 左符号入栈 arr.appe
-
python正则表达式中的括号匹配问题
问题: m = re.findall('[0-9]*4[0-9]*', '[4]') 可以匹配到4. m = re.findall('([0-9])*4([0-9])*', '[4]') 匹配不到4. 这是为什么呢?PS,这个是一个简化的说明,我要用的正则比这个复杂,所以要用到(),表示一个序列的匹配. 补充一点,我放在notepad++中用的时候,两种写法都能匹配出来,不知道为什么python中就不行了. 答案: python的正则中用()会进行匹配,所以返回结果是['',''],就是两个()
-
Python正则表达式实现截取成对括号的方法
本文实例讲述了Python正则表达式实现截取成对括号的方法.分享给大家供大家参考,具体如下: strs = '1(2(3(4(5(67)6)7)8)9)0' reg1 = re.compile('([()])∗') #一对括号 reg2 = re.compile('([()]|\([()]∗)*\)') #两对括号 reg3 = re.compile('([()]|\([()]∗|([()]|\([()]∗)*\))*\)') #三层 函数 #匹配成对括号正则表达式 def getReg(sel
-
Python实现的括号匹配判断功能示例
本文实例讲述了Python实现的括号匹配判断功能.分享给大家供大家参考,具体如下: 1.用一个栈[python中可以用List]就可以解决,时间和空间复杂度都是O(n) # -*- coding: utf8 -*- # 符号表 SYMBOLS = {'}': '{', ']': '[', ')': '(', '>': '<'} SYMBOLS_L, SYMBOLS_R = SYMBOLS.values(), SYMBOLS.keys() def check(s): arr = [] for c
-
Python 匹配任意字符(包括换行符)的正则表达式写法
想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现正则表达式中,"."(点符号)匹配的是除了换行符"\n"以外的所有字符. 以下为正确的正则表达式匹配规则: ([\s\S]*) 同时,也可以用 "([\d\D]*)"."([\w\W]*)" 来表示. Web技术之家_www.waweb.cn 在文本文件里, 这个表达式可以匹配所有的英文
-
Python实现求解括号匹配问题的方法
本文实例讲述了Python实现求解括号匹配问题的方法.分享给大家供大家参考,具体如下: 这个在本科学习数据结构的时候已经接触很多了,主流的思想是借助栈的压入.弹出来进行匹配,至于python的话可以使用列表来完成这个操作,因为列表的append方法相当于栈的push方法,列表的pop方法相当于栈的pop方法. 主要的思路: 首先设置两个列表分别存放的是各种括号的开括号和闭括号,然后遍历给定的字符串,分如下几种情况: 1.字符串首字符出现在闭括号列表中,直接结束,输出错误 2.字符串长度不为偶数,
-
使用Python实现一个栈判断括号是否平衡
栈(Stack)在计算机领域是一个被广泛应用的集合,栈是线性集合,访问都严格地限制在一段,叫做顶(top). 举个例子,栈就想一摞洗干净的盘子,你每次取一个新盘子,都是放在这一摞盘子的最上头,当你往里面添加盘子的时候,也是放在最上面,处在底部的盘子,你可能永远也用不到. 栈的最常见操作,有如下两个: push(a) # 压入,将a压入的栈中 pop() # 弹出,将栈的最后一个元素弹出 可是使用Python的列表数据结构,来模拟栈的操作,使用 append 来模拟 push ,使用列表的 pop
-
python使用正则表达式替换匹配成功的组
正则表达式简介 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 许多程序设计语言都支持利用正则表达式进行字符串操作.例如,在Perl中就内建了一个功能强大的正则表达式引擎.正则表达式这个概念最初是由Unix中的工
-
python用户评论标签匹配的解决方法
我们观察用户评论发现:属性词往往和情感词伴随出现,原因是用户通常会在描述属性时表达情感,属性是情感表达的对象.还发现:属性词和专用情感词基本都是名词或形容词(形谓词). 算法流程图如下: 评论数据如下: 代码如下: #encoding=utf-8 ############################# # # 功能:给定一些中文的产品评论,希望从中找到评价对象及评价词. # # @author:licl # ############################## fdata = ope
-
python安装cx_Oracle模块常见问题与解决方法
本文实例讲述了python安装cx_Oracle模块常见问题与解决方法.分享给大家供大家参考,具体如下: 安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclntsh.so.10.1,否则会有各种各样的错误信息. 安装Oracle Instant Client就可得到这个链接库,避免安装几百兆之巨的Oracle Client. 软件下载地址: cx_Oracle的主页:http://cx-oracle.sourceforge.net/ 必需的Oracle链接库的下载地址:h
-
Python中MYSQLdb出现乱码的解决方法
本文实例讲述了Python中MYSQLdb出现乱码的解决方法,分享给大家供大家参考.具体方法如下: 一般来说,在使用mysql最麻烦的问题在于乱码. 查看mysql的编码: 命令: 复制代码 代码如下: show variables like 'character_set_%'; 可以看到如下结果: character_set_client为客户端编码方式: character_set_connection为建立连接使用的编码: character_set_database数据库的编码: ch
-
Linux禁止普通用户su至root的解决方法
一.概述 为禁止普通用户su至root,需要分别修改/etc/pam.d/su和/etc/login.defs两个配置文件. 二.详细配置 (1)去除/etc/pam.d/su文件中如下行的注释: #auth required pam_wheel.so use_uid (2)在/etc/login.defs文件中加入如下配置项: SU_WHEEL_ONLY yes 经过上述配置后,普通用户将被禁止su至root,如果希望指定普通用户su至root,可以执行如下命令将该用户添加至wheel组中:
-
ubuntu 14.04 忘记用户登录密码的图文解决方法
1.在VMware Workstatiom中点击"开启此虚拟机",注意,进入系统自启时随即先点击一下屏幕,目的是让鼠标从VM切换到ubuntu启动(否则下面长按shift时可能不会进入GNU GRUN界面): 2.点击屏幕后随即长按shift,系统会进入GUN GRUB界面(对此界面的操作可看界面下面的说明),如图 1所示:如果进入图 2 所示的界面则此步骤的操作失败,不要着急再试一下. 图 1 图 2 3.在GNU GRUB界面中选中ubuntu 高级选项,回车 ,进入图 3所示界面
-
Python安装模块的常见问题及解决方法
1.error: command 'x86_64-linux-gnu-gcc' failed with exit status 解决办法: # Python 3 $ sudo apt-get install python3 python-dev python3-dev \ build-essential libssl-dev libffi-dev \ libxml2-dev libxslt1-dev zlib1g-dev \ python-pip # Python 2 $ sudo apt-ge
-
基于python 处理中文路径的终极解决方法
1 .据说python3就没有这个问题了 2 .u'字符串' 代表是unicode格式的数据,路径最好写成这个格式,别直接跟字符串'字符串'这类数据相加,相加之后type就是str,这样就会存在解码失误的问题. 别直接跟字符串'字符串'这类数据相加 别直接跟字符串'字符串'这类数据相加 别直接跟字符串'字符串'这类数据相加 unicode类型别直接跟字符串'字符串'这类数据相加 说四遍 3 .有些读取的方式偏偏是要读取str类型的路径,不是unicode类型的路径,那么我们把这个str.enco
-
python Spyder界面无法打开的解决方法
Spyder本来还用得好好的,能正常使用,后来再关闭打开时,出现下面的蜘蛛网界面后,就无法显示操作界面了: 后来在网上搜索了多种方法,甚至还将Adaconda2重装了都没有用. 后来找到一个方法,说删除C:\Users\Administrator路径下的.spyder文件夹(你的有可能是.spyder2或.spyder3),再重启spyder即可. 不过我尝试了一下,没什么用,后来结合了之前的搜索方法,将.matplotlib和.spyder一起删掉再重启,就能正常显示了. 以上这篇python
-
无法使用pip命令安装python第三方库的原因及解决方法
再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面.我们可以把dos切换到对应的文件夹,再使用pip命令就可以了. 如果你在使用pip命令安装Python第三方库时也出现下面这样. 这是我在安装requests库时 我们发现pip命令无法使用,这时我们看一下python文件夹下的Scripts文件,如下 我发现我里面有pip和easy_install,也就是我可以使用pip命令所以我们要在这个文件夹下使用pip命令
随机推荐
- 匹配模式 - XSL教程 - 4
- MySQL Order By用法分享
- java实现Object和Map之间的转换3种方式
- iOS中UIActivityIndicatorView的用法及齿轮等待动画实例
- Python操作SQLite简明教程
- Windows下用py2exe将Python程序打包成exe程序的教程
- 海量数据处理系列之:用C++实现Bitmap算法
- Android实现图片轮播切换实例代码
- 完美实现八种js焦点轮播图(下篇)
- jQuery 3.0十大新特性
- JSON创建键值对(key是中文或者数字)方式详解
- javascript时间函数大全
- 基于C++实现的各种内部排序算法汇总
- 基于java Files类和Paths类的用法(详解)
- 详谈python在windows中的文件路径问题
- 基于Linux中vnc配置端口号的修改方法
- Python实现蒙特卡洛算法小实验过程详解
- 在python 中split()使用多符号分割的例子
- C++排序算法之插入排序
- ASP.NET Core2静默获取微信公众号的用户OpenId实例代码