怎么在python中停用词过滤
这篇文章将为大家详细讲解有关怎么在python中停用词过滤,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
python有哪些常用库
python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
一、什么是停用词
在汉语中,有一类没有多少意义的词语,比如组词“的”,连词“以及”、副词“甚至”,语气词“吧”,被称为停用词。一个句子去掉这些停用词,并不影响理解。所以,进行自然语言处理时,我们一般将停用词过滤掉。
而HanLP库提供了一个小巧的停用词字典,它位于Lib\site-packages\pyhanlp\static\data\dictionary目录中,名字为:stopwords.txt。该文本收录了常见的中英文无意义的词汇,每行一个词语。示例如下:
我们在进行自然语言处理时,可以用BinTrie、DoubleArrayTrie和AhoCorasickDoubleArrayTrie中的任意一个来存储词典。考虑到该词典中都是短语且比较多,用双数组字典树更划算,处理时间更快。
二、加载停用词字典
通过前文的介绍,我们知道了使用双数组字典树加载停用词字典更划算。下面,我们来加载其停用词,并返回键值对结构。代码如下:
defload_dictionary(path):
map=JClass('java.util.TreeMap')()
withopen(path,encoding='utf-8')assrc:
forwordinsrc:
word=word.strip()
map[word]=word
returnJClass('com.hankcs.hanlp.collection.trie.DoubleArrayTrie')(map)三、删除停用词
通过上面的停用词加载,我们获取了DoubleArrayTrie树结构的词汇。如果要删除停用词,可以直接使用分词后的结果剔除停用词即可。剔除的方法如下:
defremove_stopwords(termlist,trie): return[term.wordfortermintermlistifnottrie.containsKey(term.word)]
四、分词以及删除停用词
在前面的博文中,我们已经学会了如何分词,现在我们又学会了如何剔除停用词。这里,我们将两者结合起来,实现分词效果。代码如下:
if__name__=="__main__":
HanLP.Config.ShowTermNature=False
trie=load_dictionary(HanLP.Config.CoreStopWordDictionaryPath)
text="今天就这样吧!明天我们在说可以吗?"
segment=DoubleArrayTrieSegment()
termlist=segment.seg(text)
print("分词结果",termlist)
print("去掉停用词",remove_stopwords(termlist,trie))运行之后,得到如下结果:
五、直接删除停用词(不分词)
对应上面的结果,我们先分词在删除停用词。但是,有时候我们也喜欢先删除停用词在进行分词。下面,我们来实现直接删除停用词。
代码如下:
#直接过滤方法
defdirect_remove_stopwords(text,replacement,trie):
JString=JClass('java.lang.String')
searcher=trie.getLongestSearcher(JString(text),0)
offset=0
result=''
whilesearcher.next():
begin=searcher.begin
end=begin+searcher.length
ifbegin>offset:
result+=text[offset:begin]
result+=replacement
offset=end
ifoffset运行之后,效果如下:
关于怎么在python中停用词过滤就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
推荐阅读
-
一文教你Python如何快速精准抓取网页数据
本文将使用requests和beautifulsoup这两个流行的库来实现。1.准备工作首先安装必要的库:pipinst...
-
使用Python实现IP地址和端口状态检测与监控
-
基于Python打造一个智能单词管理神器
-
Python实现微信自动锁定工具
-
使用Python创建一个功能完整的Windows风格计算器程序
python实现windows系统计算器程序(含高级功能)下面我将介绍如何使用python创建一个功能完整的windows风格计...
-
Python开发文字版随机事件游戏的项目实例
随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型。在这类游戏中,玩家必须应对随机发生的情况,这些情况可能会影响他们的资...
-
使用Pandas实现Excel中的数据透视表的项目实践
引言在数据分析中,数据透视表是一种非常强大的工具,它可以帮助我们快速汇总、分析和可视化大量数据。虽然excel提供了内置的数据透...
-
Pandas利用主表更新子表指定列小技巧
一、前言工作的小技巧,利用pandas读取主表和子表,利用主表的指定列,更新子表的指定列。案例:主表:uidname0...
-
Pandas中统计汇总可视化函数plot()的使用
-
Python中tensorflow的argmax()函数的使用小结
在tensorflow中,argmax()函数是一个非常重要的操作,它用于返回给定张量(tensor)沿指定轴的最大值的索引。这个...
