欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python基礎(chǔ)之停用詞過(guò)濾詳解

 更新時(shí)間:2021年04月20日 15:55:19   作者:一無(wú)所知的程序員  
這篇文章主要介紹了python基礎(chǔ)之停用詞過(guò)濾詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下

一、什么是停用詞

在漢語(yǔ)中,有一類沒(méi)有多少意義的詞語(yǔ),比如組詞“的”,連詞“以及”、副詞“甚至”,語(yǔ)氣詞“吧”,被稱為停用詞。一個(gè)句子去掉這些停用詞,并不影響理解。所以,進(jìn)行自然語(yǔ)言處理時(shí),我們一般將停用詞過(guò)濾掉。

而HanLP庫(kù)提供了一個(gè)小巧的停用詞字典,它位于Lib\site-packages\pyhanlp\static\data\dictionary目錄中,名字為:stopwords.txt。該文本收錄了常見(jiàn)的中英文無(wú)意義的詞匯,每行一個(gè)詞語(yǔ)。示例如下:

示例

我們?cè)谶M(jìn)行自然語(yǔ)言處理時(shí),可以用BinTrie、DoubleArrayTrie和AhoCorasickDoubleArrayTrie中的任意一個(gè)來(lái)存儲(chǔ)詞典。考慮到該詞典中都是短語(yǔ)且比較多,用雙數(shù)組字典樹(shù)更劃算,處理時(shí)間更快。

二、加載停用詞字典

通過(guò)前文的介紹,我們知道了使用雙數(shù)組字典樹(shù)加載停用詞字典更劃算。下面,我們來(lái)加載其停用詞,并返回鍵值對(duì)結(jié)構(gòu)。代碼如下:

def load_dictionary(path):
    map=JClass('java.util.TreeMap')()
    with open(path,encoding='utf-8') as src:
        for word in src:
            word=word.strip()
            map[word]=word
    return JClass('com.hankcs.hanlp.collection.trie.DoubleArrayTrie')(map)

三、刪除停用詞

通過(guò)上面的停用詞加載,我們獲取了DoubleArrayTrie樹(shù)結(jié)構(gòu)的詞匯。如果要?jiǎng)h除停用詞,可以直接使用分詞后的結(jié)果剔除停用詞即可。剔除的方法如下:

def remove_stopwords(termlist,trie):
    return [term.word for term in termlist if not trie.containsKey(term.word)]

四、分詞以及刪除停用詞

在前面的博文中,我們已經(jīng)學(xué)會(huì)了如何分詞,現(xiàn)在我們又學(xué)會(huì)了如何剔除停用詞。這里,我們將兩者結(jié)合起來(lái),實(shí)現(xiàn)分詞效果。代碼如下:

if __name__ == "__main__":
    HanLP.Config.ShowTermNature=False
    trie=load_dictionary(HanLP.Config.CoreStopWordDictionaryPath)
    text="今天就這樣吧!明天我們?cè)谡f(shuō)可以嗎?"
    segment=DoubleArrayTrieSegment()
    termlist=segment.seg(text)
    print("分詞結(jié)果",termlist)
    print("去掉停用詞",remove_stopwords(termlist,trie))

運(yùn)行之后,得到如下結(jié)果:

結(jié)果

五、直接刪除停用詞(不分詞)

對(duì)應(yīng)上面的結(jié)果,我們先分詞在刪除停用詞。但是,有時(shí)候我們也喜歡先刪除停用詞在進(jìn)行分詞。下面,我們來(lái)實(shí)現(xiàn)直接刪除停用詞。

代碼如下:

#直接過(guò)濾方法
def direct_remove_stopwords(text,replacement,trie):
    JString=JClass('java.lang.String')
    searcher=trie.getLongestSearcher(JString(text),0)
    offset=0
    result=''
    while searcher.next():
        begin=searcher.begin
        end=begin+searcher.length
        if begin>offset:
            result+=text[offset:begin]
            result+=replacement
            offset=end
    if offset<len(text):
        result+=text[offset:]
    return result


if __name__ == "__main__":
    HanLP.Config.ShowTermNature = False
    trie = load_dictionary(HanLP.Config.CoreStopWordDictionaryPath)
    text = "今天就這樣吧!明天我們?cè)谡f(shuō)可以嗎?"
    segment = DoubleArrayTrieSegment()
    termlist = segment.seg(text)
    print("分詞結(jié)果", termlist)
    print("去掉停用詞", remove_stopwords(termlist, trie))
    print("不分詞去掉停用詞", direct_remove_stopwords(text, "**", trie))

運(yùn)行之后,效果如下:

運(yùn)行結(jié)果

到此這篇關(guān)于python基礎(chǔ)之停用詞過(guò)濾詳解的文章就介紹到這了,更多相關(guān)python停用詞過(guò)濾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 添加環(huán)境變量及配置方法

    python 添加環(huán)境變量及配置方法

    這篇文章主要介紹了python 添加環(huán)境變量的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • django 快速啟動(dòng)數(shù)據(jù)庫(kù)客戶端程序的方法示例

    django 快速啟動(dòng)數(shù)據(jù)庫(kù)客戶端程序的方法示例

    這篇文章主要介紹了django 快速啟動(dòng)數(shù)據(jù)庫(kù)客戶端程序的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Pytorch中的Broadcasting問(wèn)題

    Pytorch中的Broadcasting問(wèn)題

    這篇文章主要介紹了Pytorch中的Broadcasting問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 詳解PyCharm使用pyQT5進(jìn)行GUI開(kāi)發(fā)的基本流程

    詳解PyCharm使用pyQT5進(jìn)行GUI開(kāi)發(fā)的基本流程

    本文主要介紹了PyCharm使用pyQT5進(jìn)行GUI開(kāi)發(fā)的基本流程,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 一文詳解如何實(shí)現(xiàn)PyTorch模型編譯

    一文詳解如何實(shí)現(xiàn)PyTorch模型編譯

    這篇文章主要為大家介紹了如何實(shí)現(xiàn)PyTorch?模型編譯詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對(duì)換方式

    ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對(duì)換方式

    這篇文章主要介紹了ndarray數(shù)組的轉(zhuǎn)置(transpose)和軸對(duì)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 用python實(shí)現(xiàn)操縱mysql數(shù)據(jù)庫(kù)插入

    用python實(shí)現(xiàn)操縱mysql數(shù)據(jù)庫(kù)插入

    大家好,本篇文章主要講的是用python實(shí)現(xiàn)操縱mysql數(shù)據(jù)庫(kù)插入,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • python 使用pdfminer3k 讀取PDF文檔的例子

    python 使用pdfminer3k 讀取PDF文檔的例子

    今天小編就為大家分享一篇python 使用pdfminer3k 讀取PDF文檔的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • 對(duì)Python3中的print函數(shù)以及與python2的對(duì)比分析

    對(duì)Python3中的print函數(shù)以及與python2的對(duì)比分析

    下面小編就為大家分享一篇對(duì)Python3中的print函數(shù)以及與python2的對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • graphviz 最新安裝教程適用初學(xué)者

    graphviz 最新安裝教程適用初學(xué)者

    Graphviz 是一個(gè)自動(dòng)排版的作圖軟件,可以生成 png pdf 等格式,這篇文章主要介紹了graphviz 2022最新安裝教程適用初學(xué)者,需要的朋友可以參考下
    2023-02-02

最新評(píng)論