Python使用jieba实现中文分词与去停用词示例
本文介绍如何使用Python的jieba库进行中文分词,涵盖精确模式、全模式和搜索引擎模式三种用法。通过示例代码演示如何结合停用词表过滤无意义词汇,实现高效的文本预处理流程,适用于NLP基础场景。
前言
jieba 是一款基于 Python 的中文分词工具,安装便捷,通过 pip 即可直接获取,兼容 Python 2 和 Python 3。该工具功能强大,值得推荐。
中文分词(Chinese Word Segmentation)是指将连续的汉字序列切割为独立的词语单元。
jieba 模块是 Python 中较为优秀的分词组件。待分词的字符串支持 Unicode 或 UTF-8 编码的 GBK 字符串。需注意:不建议直接输入 GBK 字符串,因为这可能导致不可预料的 UTF-8 解码错误。
jieba 支持三种分词模式。
1. 精确模式:旨在将句子最精确地切开,适用于文本分析场景;
2. 全模式:扫描句子中所有可能成词的词语,速度极快,但无法解决歧义问题;
3. 搜索引擎模式:在精确模式基础上,对长词进行二次切分,以提高召回率,适合搜索引擎的分词需求。
# 精确模式 seg_list = jieba.cut("我去过清华大学和北京大学。")
# 全模式 seg_list = jieba.cut("我去过清华大学和北京大学。", cut_all=True)
# 搜索引擎模式 seg_list = jieba.cut_for_search("我去过清华大学和北京大学。")
#精确模式: 我/ 去过/ 清华大学/ 和/ 北京大学/ 。
#全模式: 我/ 去过/ 清华/ 清华大学/ 华大/ 大学/ 和/ 北京/ 北京大学/ 大学/ /
#搜索引擎模式: 我/ 去过/ 清华/ 华大/ 大学/ 清华大学/ 和/ 北京/ 大学/ 北京大学/
#coding=utf-8
import jieba. analyse
stopwords=[]
for word in open('stopwords.txt','r'):
stopwords.append(word.strip())
article=open('1.txt','r').read()
words=jieba.cut(article,cut_all=False)
stayed_line=""
for word in words:
if word.encode("utf-8")not in stopwords:
stayed_line+=word+" "
print stayed_line
w=open('2.txt','w')
w.write(stayed_line.encode('utf-8'))
总结
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对本站的支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













