python停用詞
Ⅰ 如何刪除「使用NLTK或者python停用詞"
Nltk是python下處理語言的主要工具包,可以實現去除停用詞、詞性標注以及分詞和分句等。
安裝nltk,寫python一般使用的是集成環境EPD,其中有包管理,可以在線進行安裝。如果不是集成環境,可以通過pip install nltk安裝。
》pip install nltk #安裝nltk
》nltk.download() #彈出一個選擇框,可以按照自己需要的語義或者是功能進行安裝
一般要實現分詞,分句,以及詞性標注和去除停用詞的功能時,需要安裝stopwords,punkt以及
當出現LookupError時一般就是由於缺少相關模塊所導致的
則是需要安裝punkt,這個模塊主要負責的是分詞功能。同stopwords一樣有兩種方式安裝。
Ⅱ python英文去停用詞,報錯 'str' object has no attribute 'word'
你把w.word改成w就可以了
Ⅲ 以下函數可以實現分詞,但是為什麼去停用詞沒有效果呢問題在哪裡
我覺得可能還是編碼不對吧。我也遇到這種情況,所以搜到了這個問題,查了很多東西也沒有個結果。
我最開始數據都是用GB2312處理的,後來用結巴分詞看文檔上說用好用utf-8編碼,就寫了段代碼把文本改成utf-8了,然後停用詞文件也是用的utf-8保存的,但是不是用代碼保存的,使用Notpad,之後就一直不能停用文件里的詞。
後來,在代碼中加了幾個比較明顯的停用片語成的list,當分出來的詞不在list里的時候,才輸出該詞,結果就成功的停用了list里的所有詞。
建議樓主再調整一下編碼試試吧。
另外,我最開始用的是Python2.7.10,因為停用詞沒反應,我查到一個網頁說他用Python3.4就好了,我又換了Python3.4.3,可是一樣不能用,然後向我上面那麼做的就好了,Python2.7還沒有試,估計問題都差不多了吧...
樓主加油!Python程序猿加油!
Ⅳ python jieba停用詞該如何設置
你把你的停用詞排一下序,然後再給結巴看看。
或者加兩個停用詞,一個河北、一個西南部。
停用詞通常是很短的高頻出現的詞語,真實情況你這樣的不多。
如果你這種情況,不妨先分詞,也不去停用詞。
然後自己再來後續處理。
Ⅳ 請問大佬們,為什麼我python運行程序特別慢啊,我這個程序怎麼改一下可以運行的更快呢
您好,茫茫人海之中,能為君排憂解難實屬朕的榮幸,在下拙見,若有錯誤,還望見諒!。展開全部
yxhtest7772017-07-18
關注
分享
697 2
python運行速度慢怎麼辦?6個Python性能優化技巧
Python是一門非常酷的語言,因為很少的Python代碼可以在短時間內做很多事情,並且,Python很容易就能支持多任務和多重處理。
Python的批評者聲稱Python性能低效、執行緩慢,但實際上並非如此:嘗試以下6個小技巧,可以加快Python應用程序。
關鍵代碼可以依賴於擴展包
Python使許多編程任務變得簡單,但是對於很關鍵的任務並不總是提供最好的性能。使用C、C++或者機器語言擴展包來執行關鍵任務能極大改善性能。這些包是依賴於平台的,也就是說,你必須使用特定的、與你使用的平台相關的包。簡而言之,該解決方案提供了一些應用程序的可移植性,以換取性能,您可以獲得只有通過直接向底層主機編程。
下面這些擴展包你可以考慮添加到你的個人擴展庫中:
Cython
PyInlne
PyPy
Pyrex
這些包有不同的作用和執行方式。例如,Pyrex 讓Python處理一些內存任務變得簡單高效;PyInline可以直接讓你在Python應用程序中使用C代碼,雖然內聯代碼被單獨編譯,但是如果你能高效的利用C代碼,它可以在同一個地方處理每一件事情。
使用關鍵字排序
有很多古老的Python代碼在執行時將花費額外的時間去創建一個自定義的排序函數。最好的排序方式是使用關鍵字和默認的sort()方法。
優化循環
每一種編程語言都強調循環語句的優化,Python也是一樣的。盡管你可以依賴於豐富的技術讓循環運行的更快,然而,開發者經常忽略的一個方法是避免在循環內部使用點拼接字元串。
使用新版本
任何一個在線上搜索Python資料的人都會發現無數關於Python版本遷移的信息。通常,Python每一個版本都針對之前的一個版本做了優化和改進,以讓Python運行的更快。限制因素是你喜歡的函數庫是否也針對Python的新版本做了改進。
當你使用了新的函數庫,獲得了Python的新版本,你需要保證代碼依然能夠運行,檢查應用,修正差異。然後,如果你僅僅是非常感謝您的耐心觀看,如有幫助請採納,祝生活愉快!謝謝!
Ⅵ python數據挖掘——文本分析
作者 | zhouyue65
來源 | 君泉計量
文本挖掘:從大量文本數據中抽取出有價值的知識,並且利用這些知識重新組織信息的過程。
一、語料庫(Corpus)
語料庫是我們要分析的所有文檔的集合。
二、中文分詞
2.1 概念:
中文分詞(Chinese Word Segmentation):將一個漢字序列切分成一個一個單獨的詞。
eg:我的家鄉是廣東省湛江市-->我/的/家鄉/是/廣東省/湛江市
停用詞(Stop Words):
數據處理時,需要過濾掉某些字或詞
√泛濫的詞,如web、網站等。
√語氣助詞、副詞、介詞、連接詞等,如 的,地,得;
2.2 安裝Jieba分詞包:
最簡單的方法是用CMD直接安裝:輸入pip install jieba,但是我的電腦上好像不行。
後來在這里:https://pypi.org/project/jieba/#files下載了jieba0.39解壓縮後 放在Python36Libsite-packages裡面,然後在用cmd,pip install jieba 就下載成功了,不知道是是什麼原因。
然後我再anaconda 環境下也安裝了jieba,先在Anaconda3Lib這個目錄下將jieba0.39的解壓縮文件放在裡面,然後在Anaconda propt下輸入 pip install jieba,如下圖:
2.3 代碼實戰:
jieba最主要的方法是cut方法:
jieba.cut方法接受兩個輸入參數:
1) 第一個參數為需要分詞的字元串
2)cut_all參數用來控制是否採用全模式
jieba.cut_for_search方法接受一個參數:需要分詞的字元串,該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細
注意:待分詞的字元串可以是gbk字元串、utf-8字元串或者unicode
jieba.cut以及jieba.cut_for_search返回的結構都是一個可迭代的generator,可以使用for循環來獲得分詞後得到的每一個詞語(unicode),也可以用list(jieba.cut(...))轉化為list代碼示例( 分詞 )
輸出結果為: 我 愛
Python
工信處
女幹事
每月 經過 下屬 科室 都 要 親口
交代
24 口 交換機 等 技術性 器件 的 安裝
工作
分詞功能用於專業的場景:
會出現真武七截陣和天罡北斗陣被分成幾個詞。為了改善這個現象,我們用導入詞庫的方法。
但是,如果需要導入的單詞很多,jieba.add_word()這樣的添加詞庫的方法就不高效了。
我們可以用jieba.load_userdict(『D:PDM2.2金庸武功招式.txt』)方法一次性導入整個詞庫,txt文件中為每行一個特定的詞。
2.3.1 對大量文章進行分詞
先搭建語料庫:
分詞後我們需要對信息處理,就是這個分詞來源於哪個文章。
四、詞頻統計
3.1詞頻(Term Frequency):
某個詞在該文檔中出現的次數。
3.2利用Python進行詞頻統計
3.2.1 移除停用詞的另一種方法,加if判斷
代碼中用到的一些常用方法:
分組統計:
判斷一個數據框中的某一列的值是否包含一個數組中的任意一個值:
取反:(對布爾值)
四、詞雲繪制
詞雲(Word Cloud):是對文本中詞頻較高的分詞,給與視覺上的突出,形成「關鍵詞渲染」,從而國旅掉大量的文本信息,使瀏覽者一眼掃過就可以領略文本的主旨。
4.1 安裝詞雲工具包
這個地址:https://www.lfd.uci.e/~gohlke/pythonlibs/ ,可以搜到基本上所有的Python庫,進去根據自己的系統和Python的版本進行下載即可。
在python下安裝很方便,在anaconda下安裝費了點勁,最終將詞雲的文件放在C:UsersAdministrator 這個目錄下才安裝成功。
五、美化詞雲(詞雲放入某圖片形象中)
六、關鍵詞提取
結果如下:
七、關鍵詞提取實現
詞頻(Term Frequency):指的是某一個給定的詞在該文檔中出現的次數。
計算公式: TF = 該次在文檔中出現的次數
逆文檔頻率(Inverse Document Frequency):IDF就是每個詞的權重,它的大小與一個詞的常見程度成反比
計算公式:IDF = log(文檔總數/(包含該詞的文檔數 - 1))
TF-IDF(Term Frequency-Inverse Document Frequency):權衡某個分詞是否關鍵詞的指標,該值越大,是關鍵詞的可能性就越大。
計算公式:TF - IDF = TF * IDF
7.1文檔向量化
7.2代碼實戰
Ⅶ python怎麼去除停用詞的
結合jieba分詞,裡面有去停止詞相關模板,自己研究下吧,網上也有相關資料。
Ⅷ python jieba分詞如何去除停用詞
-*- coding: utf-8 -*-
import jieba
import jieba.analyse
import sys
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')
#使用其他編碼讀取停用詞表
#stoplist = codecs.open('../../file/stopword.txt','r',encoding='utf8').readlines()
#stoplist = set(w.strip() for w in stoplist)
#停用詞文件是utf8編碼
stoplist = {}.fromkeys([ line.strip() for line in open("../../file/stopword.txt") ])
#經過分詞得到的應該是unicode編碼,先將其轉成utf8編碼
Ⅸ python 中文切詞使用停用詞表問題
python中最好不要在list遍歷中使用list.remove方法:
remove 僅僅 刪除一個值的首次出現。
如果在 list 中沒有找到值,程序會拋出一個異常
- 最後,你遍歷自己時候對自己的內容進行刪除操作,效率顯然不高,還容易出現各種難debug的問題
建議使用新的list存儲要保留的內容,然後返回這個新list。比如
a_list=[1,2,3,4,5]
needs_to_be_removed=[3,4,5]
result=[]
forvina_list:
ifvnotinneeds_to_be_removed:
result.append(v)
printresult