第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用NLTK刪除停用詞

使用NLTK刪除停用詞

胡子哥哥 2019-08-31 10:34:03
我試圖通過使用nltk工具包刪除停用詞來處理用戶輸入的文本,但是使用停用詞刪除時(shí),會(huì)刪除“和”,“或”,“不”之類的詞。我希望在禁用詞刪除過程之后出現(xiàn)這些單詞,因?yàn)樗鼈兪巧院髮⑽谋咀鳛椴樵兲幚硭璧倪\(yùn)算符。我不知道哪些是文本查詢中可以成為運(yùn)算符的單詞,我還想從文本中刪除不必要的單詞。
查看完整描述

3 回答

?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

我建議你創(chuàng)建自己的操作詞單列表,你從禁用詞列表中取出。可以方便地減去集合,因此:


operators = set(('and', 'or', 'not'))

stop = set(stopwords...) - operators

然后,你可以簡單地測試一個(gè)字in或not in一組不依賴于你的運(yùn)營商是否停止字列表的一部分。然后,您可以稍后切換到另一個(gè)禁用詞列表或添加運(yùn)算符。


if word.lower() not in stop:

    # use word


查看完整回答
反對 回復(fù) 2019-08-31
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

@ alvas的答案可以完成這項(xiàng)任務(wù),但可以更快地完成。假設(shè)你有documents:一個(gè)字符串列表。


from nltk.corpus import stopwords

from nltk.tokenize import wordpunct_tokenize


stop_words = set(stopwords.words('english'))

stop_words.update(['.', ',', '"', "'", '?', '!', ':', ';', '(', ')', '[', ']', '{', '}']) # remove it if you need punctuation 


for doc in documents:

    list_of_words = [i.lower() for i in wordpunct_tokenize(doc) if i.lower() not in stop_words]

請注意,由于您在這里搜索集合(不在列表中),因此理論上速度會(huì)len(stop_words)/2快一些,如果您需要通過許多文檔操作,則速度很快。


對于5000個(gè)大約300個(gè)單詞的文檔,我的例子為1.8秒,@ alvas為20秒。


PS在大多數(shù)情況下,您需要將文本劃分為單詞以執(zhí)行其他使用tf-idf的分類任務(wù)。所以最有可能的是使用stemmer也會(huì)更好:


from nltk.stem.porter import PorterStemmer

porter = PorterStemmer()

并[porter.stem(i.lower()) for i in wordpunct_tokenize(doc) if i.lower() not in stop_words]在循環(huán)內(nèi)部使用。


查看完整回答
反對 回復(fù) 2019-08-31
  • 3 回答
  • 0 關(guān)注
  • 1505 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)