python 怎么向textblob中加停用词

python 怎么向textblob中加停用词,第1张

把语料从数据库提取出来以后就要进行分词啦,我是在linux环境下做的,先把jieba安装好,然后找到内容是build jieba PKG-INFO setup.py test的那个文件夹(我这边是jieba-0.38),把自己的自定义词典(选用,目的是为了分出原始词库中没有的词以及优先分出一些词),停用词词典(选用),需要分词的语料文件,调用jieba的python程序都放到这个文件夹里,就可以用啦。至于词典要什么样的格式,在网上一查就可以了。

之前有看到别的例子用自定义词典替换掉jieba本身词典,但是我试了一下好像效果不行,假设原始词典中有’云‘,’计算‘而没有’云计算‘,我想要分出’云计算‘这个词,加载自定义词典可以成功,但替换原始词典就不一定成功了。(当然我说的也不一定对)

还有停用词词典,我之前是把停用词在程序里存入一个列表,然后分每个词时都循环一遍列表,这样特别浪费时间。后来把停用词做成字典就很快了。

for eachline in fin可避免memory error。如果还是报memory error,那应该就是输入语料文件单行数据多长了。

#!/usr/bin/python  #-*- encoding:utf-8 -*-  import jieba                                           #导入jieba模块import re

jieba.load_userdict("newdict.txt")                     #加载自定义词典  import jieba.posseg as pseg

def splitSentence(inputFile, outputFile):    #把停用词做成字典

stopwords = {}

fstop = open('stop_words.txt', 'r')    for eachWord in fstop:

stopwords[eachWord.strip().decode('utf-8', 'ignore')] = eachWord.strip().decode('utf-8', 'ignore')

fstop.close()

fin = open(inputFile, 'r')                                  #以读的方式打开文件

fout = open(outputFile, 'w')                                #以写得方式打开文件

jieba.enable_parallel(4)                                    #并行分词

for eachLine in fin:

line = eachLine.strip().decode('utf-8', 'ignore')       #去除每行首尾可能出现的空格,并转为Unicode进行处理

line1 = re.sub("[0-9\s+\.\!\/_,$%^*()?;:-【】+\"\']+|[+——!,:。?、~@#¥%……&*()]+".decode("utf8"), "".decode("utf8"),line)

wordList = list(jieba.cut(line1))                        #用结巴分词,对每行内容进行分词

outStr = ''

for word in wordList:            if word not in stopwords:

outStr += word

outStr += ' '

fout.write(outStr.strip().encode('utf-8') + '\n')       #将分词好的结果写入到输出文件    fin.close()

fout.close()

splitSentence('ss.txt', 'tt.txt')

你把你的停用词排一下序,然后再给结巴看看。

或者加两个停用词,一个河北、一个西南部。

停用词通常是很短的高频出现的词语,真实情况你这样的不多。

如果你这种情况,不妨先分词,也不去停用词。

然后自己再来后续处理。

Nltk是python下处理语言的主要工具包,可以实现去除停用词、词性标注以及分词和分句等。

安装nltk,写python一般使用的是集成环境EPD,其中有包管理,可以在线进行安装。如果不是集成环境,可以通过pip install nltk安装。

》pip install nltk #安装nltk

》nltk.download() #d出一个选择框,可以按照自己需要的语义或者是功能进行安装

一般要实现分词,分句,以及词性标注和去除停用词的功能时,需要安装stopwords,punkt以及

当出现LookupError时一般就是由于缺少相关模块所导致的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11549754.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存