Python 分词后去停止词,print输出无结果

myname0725 2016-04-18 02:16:23
用结巴分词后,想去停止词,用到以下方法:
①list(set(list1)-set(list2))
②for seg in seg_list :
if seg in stopword :
seg_list.remove(seg)
代码如下:

#!/usr/bin/python
#coding=utf-8
import jieba
import sys
import os

reload(sys)
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()

print os.getcwd()
os.chdir("D:\\temp")
print os.getcwd()
data = open(r'title.txt')
result = open( "title2.txt" , "w+")
stop = open( r'chinese_stopword.txt')
a = stop.readlines()
b = [ ]
print a

for line in data.readlines() :
print line
seg_list = jieba.cut( line )
print ','.join(seg_list)
for elements in seg_list:
if elements not in a:
b.append(elements)
print "|".join(b)
aa = list(set(seg_list)-set(a))
print "|".join(aa)
print "运行结束"
data.close()
result.close()
stop.close()

输出结果如下:
C:\Python27\python.exe D:/4,Python/Scripts/test/测试.py
utf-8
D:\4 Python\Scripts\test
D:\temp
['\xef\xbb\xbf\n', '\xe7\x9a\x84\n', '2016\n', '2015\n', '2017\n', '2009\n', '\xe5\xb9\xb4\n', '$\n', '0\n', '1\n', '2\n', '3\n', '4\n', '5\n', '6\n', '7\n', '8\n', '9\n', '?\n', '_\n', '\xe2\x80\x9c\n', '\xe2\x80\x9d\n', '\xe3\x80\x81\n', '\xe3\x80\x82\n', '\xe3\x80\x8a\n', '\xe3\x80\x8b\n', '\xe4\xb8\x80\n', '\xe7\x9a\x84\n', '\xe5\xb7\xb2\n', '\xe5\xae\x9e\xe7\x8e\xb0\n', '\xe5\xbe\x97\n', '\xe4\xba\x86\n', '\xe4\xb8\xaa\n', '\xe6\x9c\x88\n']
武汉土地流转打开融资门

,武汉,土地,流转,打开,融资,门,



扶绥扎实推进农村土地流转 已流转9.45万亩

扶绥,扎实,推进,农村土地,流转, ,已,流转,9.45,万亩,

问题
① 用自己赋值的简单list,这些方法都可以正常实现,但是在这个里面,都不能
② 求指出问题在哪里,我自己检查了文档,语法等,应该都没有问题,就是不晓得为什么不能输出

拜托大神指点!


a 的内容是:

2016
2015
2017
2009

$
0
1
2
3
4
5
6
7
8
9
?
_









实现






...全文
475 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
竹聿Simon 2016-04-20
  • 打赏
  • 举报
回复
上面的例子里,停用词只有一个“测试”。
竹聿Simon 2016-04-20
  • 打赏
  • 举报
回复
这三行代码:
seg_list = jieba.cut( line )
print ','.join(seg_list)
for elements in seg_list:

由于seg_list类型并不是一个列表,type(seg_list)查看它是一个generator;
然后经过print ','.join(seg_list)这一操作后,seg_list好像就被影响了(具体影响我也不清楚,因为我学python还没学到generator);
然后for elements in seg_list这一句其实已经没有elemens了。
所以,删除第二句。
或者,先把seg_list = jieba.cut( line )的结果存到一个真正的列表里再处理吧。

另外,即使改了上面,还要注意:
(1)注意编码问题;
(2)注意txt文本读入有行末空白符(比如换行符)的问题
这样应该就可以匹配到了。

下载代码方式:https://pan.quark.cn/s/a4b39357ea24 全国计算机等级考试二级教程《Python语言程序设计》(2018年版)被视为针对Python入门者和备考人员的核心学习材料。该资料汇总了教材内的所有编程练习答案,这些答案在Python 3.5.3环境中经过实际执行测试,从而保障了代码的准确性和应用价值。备考人员借助这些答案,能够评估自身的学习进度,并深入理解和熟练掌握Python编程的基础原理与方法。 1. Python基础理论:Python作为一门高级编程语言,因其简明扼要的语法结构和卓越的功能表现而备受推崇。基础内容涵盖了变量、数据种类(例如整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、逻辑控制(比如条件判断if-else,循环控制for、while)、函数的声明及使用、模块的引入等。 2. Python高级应用:Python的进阶内容涉及异常管理(try-except-finally结构),类与实例(面向对象编程的基础,包含类的构造、对象的生成、属性与方法的运用、继承机制、多态表现),装饰器(用于调整函数或类的功能特性),上下文管理器(借助with语句实现资源管理)等。 3. 数据文件处理:Python配备了全面的文件操作功能,涉及文件的开启、数据读写、关闭操作,以及多种操作模式(例如r模式用于读取,w模式用于写入,a模式用于追加内容等)。此外,还包括文本文件与二进制文件的转换处理,以及文件的位置调整、复制和删除等操作。 4. 标准库的运用:Python的标准库资源极为丰富,比如os模块提供操作系统接口,sys模块用于获取系统参数,random模块可用于生成随机数值,datetime模块负责处...

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧