【python 走进NLP】利用jieba技术中文分词并写入txt

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013421629/article/details/82461505

简单介绍:

近年来,随着NLP自然语言处理技术的日益成熟,开源实现的分词工具也越来越多,比如NLTK:其在英文分词较为成熟,分词效果较好,在处理中文分词方面则显得力不足;在处理中文分词时,Jieba这一工具普遍为大家所接受,很多企业也都是利用这一工具来处理涉及中文分词的项目;其他的开源分词工具比如Ansj、盘古分词等,感兴趣的小伙伴可以去搜索一下,下面重点介绍Jieba分词工具。

使用Jieba分词工具主要基于以下几点:

  • 1、社区活跃。GitHub上Jieba社区活跃度高,表明该项目会一直得到维护并持续更新,适合长期使用。
  • 2、功能丰富。其不仅可以进行分词处理,还可以进行词性标注,关键词提取等。
  • 3、使用简单。基于Python语言来说,其配置非常简单,方便上手。

Jieba分词工具的安装
作为Python的第三方库,和其他库的安装方式一样,打开cmd命令窗口,执行以下命令,等待一段时间即可完成安装:

pip install jieba

jieba分词支持三种分词模式:

  • 精确模式, 试图将句子最精确地切开,适合文本分析:
  • 全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;
  • 搜索引擎模式,在精确模式的基础上,对长词再词切分,提高召回率,适合用于搜索引擎分词。

jieba学习链接:

https://github.com/fxsjy/jieba

jieba中文分词 代码:

# -*- encoding=utf-8 -*-

import jieba.analyse
import  jieba
import  pandas as pd

# 载入自定义词典
jieba.load_userdict('F:\\标签库\\第一类赛事主体标签.txt')
jieba.load_userdict('F:\\标签库\\第二类网络主体标签.txt')

## 载入自定义停止词
jieba.analyse.set_stop_words('C:\\Users\\xiaohu\\Desktop\\文本挖掘\\赛事主题内容标签\\excel\\stop_words.txt')



#  去掉中英文状态下的逗号、句号

def clearSen(comment):
    comment = comment.strip(' ')
    comment = comment.replace('、','')
    comment = comment.replace('~','。')
    comment = comment.replace('~','')
    comment = comment.replace('…','')
    comment = comment.replace('\r', '')
    comment = comment.replace('\t', ' ')
    comment = comment.replace('\f', ' ')
    comment = comment.replace('/', '')
    comment = comment.replace('、', ' ')
    comment = comment.replace('/', '')
    comment = comment.replace(' ', '')
    comment = comment.replace(' ', '')
    comment = comment.replace('_', '')
    comment = comment.replace('?', ' ')
    comment = comment.replace('?', ' ')
    comment = comment.replace('了', '')
    comment = comment.replace('➕', '')
    comment = comment.replace(':', '')
    return comment





# 读取数据
tl_dongli_comment_content=pd.read_table('F:/下载/content/tl_dongli_reply_content.txt',sep=',')

# 数据重命名
tl_dongli_comment_content.columns=['content']

# 取前5条
# tl_dongli_comment_content=tl_dongli_comment_content.head()

# 文件读写
outputfile = open('F:/下载/content/comment.replay.weibo.txt', 'a+',encoding="utf-8")


for each in tl_dongli_comment_content['content']:
    # 清除标点符号
    kk = clearSen(each)
    # 精确模式切词
    seg_list = jieba.cut(kk)
    comment=" ".join(seg_list)
    print(comment)
    # 写出数据
    outputfile.write(comment + '\n')

# 关闭文件
outputfile.close()

猜你喜欢

转载自blog.csdn.net/u013421629/article/details/82461505