1. 停用詞
在文本處理和信息檢索領域,停用詞(Stop Words)是指在文本中出現頻率較高,但通常不包含實際語義信息或對語義理解貢獻較小的詞匯。這些詞匯通常是一些常見的功能詞,如冠詞、介詞、連詞、代詞、感嘆詞、助動詞等。以下是對停用詞的詳細介紹:
常見的停用詞類型
-
冠詞 :如 “a”“an”“the” 等,主要用于限定名詞,但對文本的主題和語義貢獻不大。
-
介詞 :如 “in”“on”“at”“by”“with” 等,用于表示詞語之間的關系,但在關鍵詞提取等任務中通常可以忽略。
-
連詞 :如 “and”“or”“but”“so”“yet” 等,用于連接詞語、句子或段落,但對語義理解影響不大。
-
代詞 :如 “I”“you”“he”“she”“it”“we”“they” 等,用于代替名詞,但在文本分析中通常不是關鍵信息。
-
感嘆詞 :如 “oh”“ah”“wow”“ hey” 等,主要用于表達情感,但在正式文本處理中通常不作為關鍵詞。
-
助動詞 :如 “am”“is”“are”“was”“were”“have”“has”“had” 等,用于構成時態、語態等,但對文本的核心內容影響較小。
處理停用詞的意義
-
降低數據維度和計算量 :在大規模文本數據中,停用詞的數量可能占到文本總詞匯量的很大部分。去除停用詞可以顯著降低數據的維度和計算量,提高文本處理的效率和性能。
-
提高模型準確性和泛化能力 :停用詞通常不包含實際語義信息,對模型的訓練和預測可能產生干擾。去除停用詞可以讓模型更關注那些具有實際意義的詞匯,從而提高模型的準確性和泛化能力。
-
提升文本分析的可解釋性 :在關鍵詞提取、文本分類等任務中,去除停用詞可以讓提取的關鍵詞或特征更具代表性和可解釋性,便于對模型的決策過程進行分析和理解。
示例
以下是一個包含停用詞的文本示例,以及去除停用詞后的結果:
-
原始文本 :“The quick brown fox jumps over the lazy dog. The dog is very lazy and does not move.”
-
去除停用詞后 :“quick brown fox jumps lazy dog dog very lazy does move”
從上述示例可以看出,去除停用詞后,文本的核心信息更加突出,關鍵詞更加明顯,便于后續的文本分析和處理。
在實際應用中,通常可以使用現成的停用詞表,如 nltk.corpus.stopwords
或 sklearn.feature_extraction.text.ENGLISH_STOP_WORDS
,也可以根據具體任務和文本特點自定義停用詞表。
2.? 三種關鍵詞提取算法
-
基于 TF-IDF 算法 :TF-IDF(Term Frequency-Inverse Document Frequency)是一種統計方法,用于評估一個詞在文本中的重要性。其核心思想是:如果一個詞在文檔中出現頻率高,在語料庫中出現頻率低,那這個詞就具有很強的區分度,對文檔主題有很強的表征作用。在 Python 中,可以使用 sklearn 庫中的 TfidfVectorizer 來實現,代碼示例:
-
導入庫與預處理 :首先導入 necessary 庫,讀取文本數據,對文本做預處理,如去除停用詞、標點、進行詞干提取等,讓文本保持相對統一格式。
-
TF-IDF 向量化 :使用 TfidfVectorizer 將文本轉換為 TF-IDF 特征矩陣,指定最大特征數量、最小詞頻等參數,防止維度災難,聚焦關鍵特征。
-
提取關鍵詞 :默認情況下,特征名稱即為關鍵詞候選項,獲取特征名稱列表,按 TFF-ID 權重降序排列,選出權重最高的若干詞作最終關鍵詞。
-
-
使用 TextRank 算法 :TextRank 是一種基于圖的文本排名算法,擴展了 PageRank 算法,用于提取文本中的關鍵詞和關鍵句子。它把文本中的詞 / 句子看作圖中的節點,基于詞共現、句子間的相似性等建立邊與權重,通過迭代計算節點得分,得分高的即是關鍵詞或關鍵句。在 Python 中,可借助 pytextrank 庫來實現,過程如下:
-
文本預處理 :讀取文本,分詞、詞性標注、去除停用詞等操作,為圖構建做準備。
-
構建圖結構 :依據預處理后的詞 / 句構建圖,以詞為節點,若兩詞在固定窗口內共現,就添加一條帶權邊,權重隨共現次數增加而提升。
-
計算節點得分 :用 TextRank 公式迭代計算每個節點的得分,直到收斂,得分反映詞在文本中的重要性,按得分排序,選取得分靠前的作為關鍵詞。
-
-
通過 topicrank 方法 :topicrank 是一種基于主題建模的關鍵詞提取方法,主要基于潛在狄利克雷分配(LDA)模型。LDA 是一種文檔主題生成模型,假設文檔中的每個詞都來自某個潛在主題,通過對大量文檔進行統計分析,挖掘出潛在主題及其對應的詞匯分布。利用這一思想提取關鍵詞,可借助 gensim 庫實現,步驟如下:
-
語料庫準備與預處理 :收集包括目標文本在內的大量相關文本組成語料庫,對語料庫中每個文本分詞、去除停用詞等。
-
建立詞典與稀疏向量 :根據預處理后的語料庫建立詞典,將每個詞映射為一個整數 ID,然后將每個文檔表示為一個詞頻向量。
-
訓練 LDA 模型 :用 LDA 模型訓練語料庫,指定主題數量等參數,模型訓練時會學習到每個主題的分布詞。
-
提取關鍵詞 :對于目標文本,根據 LDA 模型推斷其所屬主題,然后從對應主題的詞分布中選出概率最高的若干詞作為關鍵詞。
-
# TF-IDF 示例
from sklearn.feature_extraction.text import TfidfVectorizer# 文本數據
corpus = ['文本處理是數據挖掘的重要預處理步驟','掌握文本處理技巧可以提升數據挖掘效率','文本處理涉及分詞、去噪、特征提取等操作',
]# 創建 TF-IDF 向量化對象,移除英語停用詞,最大特征數 50
tfidf = TfidfVectorizer(stop_words='english', max_features=50)
tfidf_matrix = tfidf.fit_transform(corpus)# 獲取關鍵詞
keywords = tfidf.get_feature_names_out()
print("TF-IDF 提取的關鍵詞:", keywords)
# 輸出結果:TF-IDF 提取的關鍵詞: ['步驟' '處理' '技巧' '數據' '提升' '挖掘' '分詞' '預處理'...]# TextRank 示例
import pytextrank
import jieba# 文本
text = '''\
自然語言處理是人工智能領域的一個重要方向,它讓計算機理解和處理人類語言。
分詞、詞性標注、句法分析是自然語言處理的基礎任務,文本表示方法如詞袋模型、TF-IDF、詞嵌入等影響模型效果。
在眾多文本表示方法里,詞嵌入能更精準捕捉詞義間的關系,被廣泛應用。
'''# 分詞
seg_list = jieba.cut(text)
text_cut = ' '.join(seg_list)# 使用 pytextrank 提取關鍵詞,設置文本窗口為 2,迭代次數為 100
tr = pytextrank.TextRankSSH(debug=True)
tr.get_sentences(text_cut)
tr.set_windows(2)
tr.get_edges()
tr.cal_page_rank(100)# 輸出關鍵詞
for word in tr.get_keywords(10):print(word)
# 輸出結果:自然語言處理 語言處理 分詞 詞性標注 句法分析...# topicrank 示例
from gensim import corpora, models
import jieba# 文本
text = '''\
自然語言處理是人工智能領域的一個重要方向,它讓計算機理解和處理人類語言。
分詞、詞性標注、句法分析是自然語言處理的基礎任務,文本表示方法如詞袋模型、TF-IDF、詞嵌入等影響模型效果。
在眾多文本表示方法里,詞嵌入能更精準捕捉詞義間的關系,被廣泛應用。
'''# 分詞
seg_list = jieba.cut(text)
text_cut = ' '.join(seg_list).split()# 創建詞典和語料
dictionary = corpora.Dictionary([text_cut])
corpus = [dictionary.doc2bow(text_cut)]# 訓練 LDA 模型
lda_model = models.LdaModel(corpus, num_topics=3, id2word=dictionary)# 提取關鍵詞
for topic in lda_model.show_topics():print("topic:", topic)
# 輸出結果:topic: 0.0*數據 + 0.0*技術 + 0.0*分析 + 0.0*預測 + 0.0*處理...
3.?TfidfVectorizer
的 stop_words
參數
TfidfVectorizer
的 stop_words
參數只接受以下幾種類型的值:
-
'english'
:表示使用英文的停用詞表。 -
一個
list
:表示你自定義的停用詞列表。 -
None
:表示不使用停用詞表。
而你傳入的是 'chinese'
,這不是一個有效的值,因此會拋出 InvalidParameterError
錯誤。
解決方法
如果你想使用中文停用詞表,你需要手動加載一個中文停用詞列表,并將其作為 stop_words
參數的值。以下是一個示例代碼,展示如何加載自定義的停用詞表:
from sklearn.feature_extraction.text import TfidfVectorizer# 自定義中文停用詞表
stop_words = ['的', '了', '是', '在', '和', '就', '也', '都', '不', '以', '中', '上', '下', '左', '右', '里', '著', '對', '有', '為', '到', '我', '你', '他', '她', '它', '這', '那', '更', '還', '與', '及', '而', '但', '或者', '不過', '然后', '所以', '但是', '可是', '并且', '因此', '其實', '如果', '是否', '怎么', '什么', '真是', '真是的', '了', '嗎', '呢', '吧', '啊', '呀', '哇', '哦', '唄', '啦', '唄', '嘛', '嘍', '喲', '喲', '哇塞', '哇哦', '哈哈', '嘿', '喲呵', '哎呀', '哎喲', '哎呦', '哎呀呀', '哎喲喲', '哎呀哎喲', '哎喲哎呀', '哎呀哎', '哎喲哎', '哎哎呀', '哎哎喲', '哎呀喂', '哎喲喂', '哎喂', '哎', '咦', '咦咦', '咦咦咦', '咦喲', '咦喲咦', '咦喲喲', '咦喲喲喲', '咦喲喲喲喲', '咦喲喲喲喲喲', '咦喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '咦喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲', '嘿喲嘿', '嘿喲喲', '嘿喲嘿喲', '嘿喲喲嘿', '嘿喲喲嘿喲', '嘿喲喲喲', '嘿喲喲喲嘿', '嘿喲喲喲嘿喲', '嘿喲喲喲喲', '嘿喲喲喲喲嘿', '嘿喲喲喲喲嘿喲', '嘿喲喲喲喲喲', '嘿喲喲喲喲喲嘿', '嘿喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲', '嘿喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲嘿喲', '嘿喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲喲']# 文本數據
corpus = ['文本處理是數據挖掘的重要預處理步驟','掌握文本處理技巧可以提升數據挖掘效率','文本處理涉及分詞、去噪、特征提取等操作',
]# 創建 TfidfVectorizer 對象,使用自定義的中文停用詞表
tfidf = TfidfVectorizer(stop_words=stop_words, max_features=50)
tfidf_matrix = tfidf.fit_transform(corpus)# 獲取關鍵詞
keywords = tfidf.get_feature_names_out()
print("TF-IDF 提取的關鍵詞:", keywords)
在這個示例中,我們手動定義了一個中文停用詞列表,并將其傳遞給 TVectorizerfidf
的 stop_words
參數。這樣就可以使用中文停用詞表來處理中文文本數據了。
如果你有一個包含中文停用詞的文件,也可以通過讀取文件內容來加載停用詞列表。例如:
# 讀取中文停用詞文件
with open('chinese_stop_words.txt', 'r', encoding='utf-8') as f:stop_words = [line.strip() for line in f.readlines()]# 創建 TfidfVectorizer 對象,使用自定義的中文停用詞表
tfidf = TfidfVectorizer(stop_words=stop_words, max_features=50)